跳到正文
原文
Google AI:DEV 作者专属(RSS)· Hay Equipos·· 5 小时前AI 评分37

如何用 On Page SEO Audit 批量审计一组 URL 的页面 SEO

How to run an on page SEO audit for a list of URLs

AI 导读

Hay Equipos 的 On Page SEO Audit 已在 Apify Store 上线,输入一组 URL 或一个起始页即可抓取整站,每页返回评分、问题清单(error/warning/notice)和修复建议。

正文

Checking titles, meta descriptions, headings, canonicals and noindex tags page by page in a browser is fine for one landing page. For a site with two hundred pages, or a client list of competitor pages, you want one table: every page, a score, and a list of what to fix.

On Page SEO Audit by Hay Equipos does that. Give it a list of URLs, or one start page and let it crawl the site, and it returns one row per page with a score, every issue it found (error, warning or notice) and a fix hint for each.

What it checks

Title, meta description, H1 and heading structure, canonical, indexability (noindex, the X-Robots-Tag header and robots.txt), hreflang, language, mobile viewport, Open Graph and Twitter cards, structured data (JSON-LD and microdata), image alt text, thin content, text to HTML ratio, server response time, page weight, redirects, HTTPS and mixed content, favicon, empty links and, optionally, broken links.

What you get back

One row per page. Trimmed example with illustrative values:

{
  "url": "https://www.example.com/pricing",
  "finalUrl": "https://www.example.com/pricing",
  "success": true,
  "statusCode": 200,
  "responseTimeMs": 380,
  "htmlBytes": 48210,
  "score": 71,
  "errorCount": 1,
  "warningCount": 3,
  "noticeCount": 2,
  "title": "Pricing",
  "titleLength": 7,
  "metaDescription": null,
  "h1Count": 2,
  "canonical": "https://www.example.com/pricing",
  "isIndexable": true,
  "hasViewport": true,
  "wordCount": 412,
  "imagesMissingAlt": 3,
  "issues": [
    { "severity": "warning", "code": "title_too_short", "message": "The title is only 7 characters.", "fix": "Use 30 to 60 characters with the main keyword first." },
    { "severity": "warning", "code": "description_missing", "message": "The page has no meta description.", "fix": "Add a meta description of 70 to 160 characters that summarizes the page." }
  ],
  "auditedAt": "2026-09-27T06:14:02.518Z"
}

Every row also has fields such as metaRobots, xRobotsTag, hreflang, openGraph, twitterCard, structuredDataTypes, textToHtmlRatio, internalLinkCount, externalLinkCount, mixedContentCount and hasFavicon. With the link check on, you also get linksChecked and brokenLinks.

How the score works: each page starts at 100 and loses 12 points per error, 5 per warning and 1 per notice, with a floor of 0. Broken links count as one error per page.

At the end of each run, a site summary is saved in the run's key value store under SUMMARY: pages audited, average score, how often each issue appeared, duplicate titles and duplicate meta descriptions across the pages audited.

Step by step in the Apify Console

  1. Open the actor on the Apify Store (link at the end) and click Try for free.
  2. Add your pages to Page URLs. To audit a whole site, add the home page and turn on Crawl the site. The crawl follows links on the same site (www and non www count as one) and skips images, PDFs, scripts and other files.
  3. Set Maximum pages (default 20, up to 2,000 per run).
  4. Optionally turn on Check for broken links, plus Also check external links, and set Links to check per page (default 50).
  5. Keep Respect robots.txt on unless the site is your own. Skipped pages are free.
  6. Set Parallel requests (default 3). Requests to any one site are always spaced one second apart.
  7. Click Start. Use the "Audit by page" table view, or export to CSV or Excel. Open the key value store to read SUMMARY.

To monitor a site weekly, save the input as a task and add a schedule.

Calling it from code

With curl (the synchronous endpoint suits small audits; use the Python client for big crawls):

curl -X POST \
  "https://api.apify.com/v2/acts/pistachio_implementation~on-page-seo-audit/run-sync-get-dataset-items" \
  -H "Authorization: Bearer $APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "urls": ["https://www.example.com/", "https://www.example.com/pricing"],
    "crawlSite": false,
    "checkLinks": true
  }'

With Python and the apify-client package:

import os
from apify_client import ApifyClient

client = ApifyClient(os.environ["APIFY_TOKEN"])

run = client.actor("pistachio_implementation/on-page-seo-audit").call(
    run_input={
        "urls": ["https://www.example.com/"],
        "crawlSite": True,
        "maxPages": 100,
        "checkLinks": True,
    }
)

for page in client.dataset(run["defaultDatasetId"]).iterate_items():
    errors = [i["code"] for i in page.get("issues", []) if i["severity"] == "error"]
    print(page.get("score"), page["url"], errors)

summary = client.key_value_store(run["defaultKeyValueStoreId"]).get_record("SUMMARY")["value"]
print("Average score:", summary["averageScore"])
print("Duplicate titles:", len(summary["duplicateTitles"]))

Every issue has a stable code, a severity, a readable message and a fix, so you can route them into a ticketing system or an AI agent without parsing text.

Pricing

Pay per event, with no subscription and no platform usage charge on top:

Event Price
Actor start (Apify's standard start event) $0.00005 per run
Page audited $0.003 per page ($3 per 1,000 pages)

Only pages that answered with a status below 400 and were not a bot check are charged. Unreachable pages, bot checks, non HTML files and robots.txt skips are free. The broken link check is included in the page price, though it makes runs slower. You can set a maximum charge per run and the actor stops cleanly when it is reached.

Limits and what it does not do

  • Plain HTTP only. It audits the HTML the server sends. Content added later by JavaScript is not seen.
  • No Core Web Vitals or lab speed scores. It reports server response time and page weight, not browser rendering metrics. Use a browser based tool for those.
  • Sites behind a bot check return a free error row instead of a misleading audit.
  • One request per second per site, so a 500 page crawl takes about 8 to 9 minutes.
  • The crawl stays on the start site, and a run audits at most 2,000 pages.
  • Duplicate detection covers only the pages audited in that run.

Audit sites you own or have permission to test, and use the results in line with each site's terms.

Try it on the Apify Store: https://apify.com/pistachio_implementation/on-page-seo-audit

来源:Google AI:DEV 作者专属(RSS) · dev.to