SEO Audit Crawler — On-Page SEO Checker for Whole Sites avatar

SEO Audit Crawler — On-Page SEO Checker for Whole Sites

Pricing

from $6.00 / 1,000 page auditeds

Go to Apify Store
SEO Audit Crawler — On-Page SEO Checker for Whole Sites

SEO Audit Crawler — On-Page SEO Checker for Whole Sites

Crawl a whole website and audit every page for technical and on-page SEO: titles, meta descriptions, H1s, canonicals, noindex, duplicates, broken internal links, hreflang, schema, mixed content, alt text, thin content. Issues + a 0-100 score per page, plus a site summary. $6 per 1,000 pages.

Pricing

from $6.00 / 1,000 page auditeds

Rating

0.0

(0)

Developer

ActorForge

ActorForge

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

15 hours ago

Last modified

Share

Crawl a whole website and audit every page for technical and on-page SEO: titles, meta descriptions, H1s, canonicals, noindex, duplicates, broken internal links, hreflang, schema, mixed content, alt text, thin content. Issues + a 0-100 score per page, plus a site summary. $6 per 1,000 pages.

Run a full SEO audit of your website, every page, in one click, for a fraction of what other site audit tools charge. Give it your site's URL and it crawls your pages the way a search engine does (following links and your sitemap, respecting robots.txt) and runs a technical SEO and on-page SEO check on every page: HTTP status and redirect chains, response time, indexability (meta robots and X-Robots-Tag noindex/nofollow, canonical pointing to itself, elsewhere or missing, robots.txt), title and meta description (missing, too long, too short and duplicated across the site), H1 (missing, empty, multiple) and the H2/H3 outline, word count and thin content, images missing alt text (with their URLs), internal, external and nofollow link counts, broken internal links and links that go through redirects, inlinks per page, hreflang (invalid codes, missing self-reference and x-default, alternates that don't link back), Open Graph and Twitter cards, schema.org structured data (JSON-LD types and invalid blocks), mixed content, viewport, lang, charset, HTTPS and URL hygiene (uppercase, underscores, length, query strings). Each page gets a list of issues with severity (error, warning, notice) and a plain message, plus a 0-100 SEO score. The run's summary adds the site-level view: average score, top issues by how many pages they hit, duplicate title and description groups, the most-linked broken URLs, orphan pages (in your sitemap but linked from nowhere) and whether robots.txt and a sitemap exist. A lightweight Screaming Frog alternative that runs in the cloud: no install, no browser, export to JSON, CSV or Excel, schedule it weekly and watch your score. $6 per 1,000 pages audited ($0.60 for a 100-page site); pages that answer an error are reported for free.

What data does it return?

Every run outputs clean, schema-validated rows like these:

urlscorestatusCodeindexabletitleLengthmetaDescriptionLengthh1CountwordCountinlinksissues
https://crawlee.dev/js/docs/guides/motivation83200true68146180meta-description-duplicate, thin-content, title-too-long, orphan-page, structured-data-missing
https://crawlee.dev/js/docs/guides/cheerio-crawler-guide89200true7856162219meta-description-duplicate, title-too-long, meta-description-too-short
https://crawlee.dev/js/docs/guides/custom-http-client94200true9966147419title-too-long, meta-description-too-short
https://crawlee.dev/js/docs/quick-start95200true691181120721title-too-long

How much does it cost?

Transparent pay-per-event pricing — you only pay for what you get, and the actor always respects your run budget: set a maximum total charge and it stops cleanly at the cap instead of overrunning.

EventPriceChargedWorked example
page-audited$0.006per HTML page of your site fetched and audited (one dataset row)100 pages = $0.60; a 1,000-page site = $6.00. Pages that answer 4xx/5xx or time out are reported free
apify-actor-start$0.00005per run per GB of memory (platform start fee)One run at 1 GB = $0.00005

Input options

FieldTypeRequiredDefaultDescription
startUrlsarrayyes—Where to start the audit. The crawl follows links on the same site and stays under each URL's path: https://example.com audits the whole site, https://example.com/blog only the blog.
maxPagesintegerno200Stop after auditing this many HTML pages. Each audited page is one 'page-audited' event; pages that answer an error are reported for free and don't count.
maxDepthintegerno20How many clicks away from a start URL to crawl. 0 = audit only the start pages.
includeSubdomainsbooleannofalseAlso audit subdomains of the start site (e.g. blog.example.com when starting at example.com).
includeGlobsarrayno[]Only audit pages matching one of these, e.g. https://example.com/docs/** (** = anything, * = anything except /). Replaces the default 'stay under the start path' rule.
excludeGlobsarrayno[]Never audit pages matching these, e.g. /tag/ or */page/ (archive and pagination pages).
useSitemapbooleannotrueRead sitemap.xml (and sitemaps listed in robots.txt). After the pages reachable by links, sitemap URLs that no page links to are audited too and reported as orphan pages.
respectRobotsTxtbooleannotrueDon't audit pages that robots.txt disallows. Turn off to audit them anyway (they are then flagged 'blocked-by-robots-txt', since search engines can't crawl them).

Limits & honest notes

  • Pages are fetched as static HTML without a browser: fast and cheap, and it covers almost all websites. Content, links and tags that exist only after JavaScript runs (single-page apps that render client-side) are not seen, which is also how many search engine and AI crawlers see your site. Core Web Vitals and other browser performance metrics are not measured.
  • Thresholds: titles 30-60 characters, meta descriptions 70-160 characters, thin content under 200 words (counted in the page body without navigation, header, footer, sidebars and scripts), URLs over 115 characters, responses slower than 2 seconds.
  • The score starts at 100 and loses 10 points per distinct error, 5 per warning and 1 per notice. Duplicate titles and descriptions are compared across indexable pages only (noindex and canonicalised copies are expected to repeat), case and spacing aside.
  • Broken internal links and links to redirects are found from the pages the crawl fetched; internal links beyond your page limit, and external links, are not checked (use a broken link checker for that). Orphan pages are sitemap URLs no audited page links to, so they are only conclusive when the crawl covered the whole site (orphanCheckComplete in the summary).
  • Crawling respects robots.txt and stays on your site and under the start URL's path, unless you set include globs. Pages behind a login are not supported. Polite by design: at most 3 requests at a time to your site, and a 429 'Too Many Requests' pauses it for its Retry-After. Pages refused by bot protection are reported as 'fetch-blocked' rows, free.
  • Rows are delivered when the crawl finishes, since duplicates, broken links, hreflang return links and inlinks need every page; runs resume after a platform migration without re-charging work already done. Pages larger than 5 MB and non-HTML files are skipped.
  • Links to internal network addresses (localhost, private IPs, cloud metadata) are never requested and never charged.
  • Respects your run budget: set a maximum total charge and the run stops cleanly at the cap and delivers every page audited so far.

Changelog

  • 2026-10-19 — Initial release: same-site crawl with sitemaps, robots.txt and globs; 40+ technical and on-page checks per page with severity and a 0-100 score; duplicate titles and descriptions, broken internal links, links to redirects, hreflang return links, inlinks and orphan sitemap pages across the site; site summary with top issues; migration-safe resume.

Built and maintained by ActorForge. Reliability first: every actor in the portfolio is monitored by an automated nightly self-test, and breakages are typically fixed the same day.