On Page SEO Audit: Score, Issues and Fixes per URL avatar

On Page SEO Audit: Score, Issues and Fixes per URL

Pricing

Pay per event

Go to Apify Store
On Page SEO Audit: Score, Issues and Fixes per URL

On Page SEO Audit: Score, Issues and Fixes per URL

Audit any list of pages or crawl a site and get a 0 to 100 SEO score per page with issues and fix hints: title, meta description, H1, canonical, indexability, hreflang, Open Graph, schema, alt text, thin content, speed, mixed content and optional broken links. $3 per 1,000 pages.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Hay Equipos

Hay Equipos

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 hours ago

Last modified

Share

Audit a list of pages, or crawl a whole site, and get one row per page with a 0 to 100 SEO score, every issue found (error, warning or notice) and a plain fix hint for each. The actor checks the things that decide whether a page can rank and how it looks in search and social previews: title, meta description, H1 and heading structure, canonical, indexability (noindex, X Robots Tag, 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.

It runs on plain HTTP with no browser, so it is fast and costs $3 per 1,000 pages audited, plus a start fee of $0.00005 per run. At the end of each run a site summary (average score, the most common issues, duplicate titles and duplicate meta descriptions) is saved to the run's key value store as SUMMARY.

What you can use it for

  • A quick technical SEO health check of your site or a client's site.
  • Weekly monitoring: schedule the actor and watch scores and issue counts over time.
  • Competitor comparison: audit their top landing pages side by side with yours.
  • Pre launch checks on a staging list of URLs.
  • Feed issues and fix hints into an AI agent or a ticketing system.

Input

FieldWhat it doesDefault
Page URLsPages to audit, or start pages when crawlingrequired
Crawl the siteFollow links to other pages on the same siteoff
Maximum pagesTotal pages to audit20
Check for broken linksTest every internal link on each pageoff
Also check external linksInclude links to other sites in the checkoff
Links to check per pageUpper limit per page50
Respect robots.txtSkip pages robots.txt closes to crawlers (skipped pages are free)on
Parallel requestsPages worked on at once; one site always gets one request per second3

Example input:

{
"urls": ["https://books.toscrape.com/"],
"crawlSite": true,
"maxPages": 50,
"checkLinks": true
}

Output

One row per page. The dataset has a ready made "Audit by page" table view; download as JSON, CSV or Excel, or read it through the API.

{
"url": "https://quotes.toscrape.com/",
"finalUrl": "https://quotes.toscrape.com/",
"success": true,
"statusCode": 200,
"responseTimeMs": 412,
"htmlBytes": 11054,
"score": 76,
"errorCount": 0,
"warningCount": 4,
"noticeCount": 4,
"title": "Quotes to Scrape",
"titleLength": 16,
"metaDescription": null,
"metaDescriptionLength": 0,
"h1": ["Quotes to Scrape"],
"h1Count": 1,
"headingCounts": { "h2": 1, "h3": 0, "h4": 0, "h5": 0, "h6": 0 },
"canonical": null,
"isIndexable": true,
"indexabilityReasons": [],
"language": "en",
"hasViewport": false,
"structuredDataTypes": [],
"wordCount": 279,
"imageCount": 0,
"imagesMissingAlt": 0,
"internalLinkCount": 47,
"externalLinkCount": 2,
"issues": [
{ "severity": "warning", "code": "title_too_short", "message": "The title is only 16 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." },
{ "severity": "warning", "code": "viewport_missing", "message": "No mobile viewport meta tag.", "fix": "Add <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">." },
{ "severity": "warning", "code": "thin_content", "message": "Only 279 words of visible text.", "fix": "Add useful content; pages under about 300 words rarely rank." }
],
"linksChecked": 15,
"brokenLinks": [],
"auditedAt": "2026-09-27T06:14:02.518Z"
}

Some fields are trimmed above; every row also carries metaRobots, xRobotsTag, charset, hreflang, openGraph, twitterCard, textToHtmlRatio, imagesEmptyAlt, nofollowLinkCount, mixedContentCount and hasFavicon.

Score. 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.

Pricing

Pay per event, no subscription, no charge for platform usage on top.

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

Only pages that answered with a status below 400 and real content 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. You can set a maximum charge per run in Apify and the actor stops cleanly when it is reached.

Limits

  • Plain HTTP only: it audits the HTML the server sends. Content added later by JavaScript is not seen, and it does not measure Core Web Vitals (use a browser based tool for those).
  • Sites behind a bot check return an error row for free rather than a misleading audit.
  • One request per second per site, so a 500 page crawl takes about 8 to 9 minutes.
  • Crawling stays on the start site (www and non www count as one) and skips images, PDFs, scripts and other files.
  • Up to 2,000 pages per run.

FAQ

Is it only for my own site? It audits any public page. Robots.txt is respected by default; turn it off only for sites you own.

How is this different from Lighthouse? Lighthouse loads one page in a browser and measures speed. This actor checks on page SEO signals across many pages quickly and cheaply, and flags duplicates across the site.

Where is the site summary? In the run's key value store under the key SUMMARY: pages audited, average score, issue counts, duplicate titles and duplicate descriptions.

Does the broken link check cost more? No. It is part of the page price, but it makes runs slower, so it is off by default.

Can an AI agent use it? Yes. Every issue has a stable code, a severity, a readable message and a fix, which makes the output easy to act on automatically.