Website SEO Audit Scraper
Pricing
from $2.49 / 1,000 results
Website SEO Audit Scraper
SEO Audit Scraper SD - SEO Audit Scraper is an on-page SEO tool that extracts titles, meta descriptions, headings, canonicals, indexability, hreflang, Open Graph, structured data, image alt and link data per URL, with issues and a score.
Pricing
from $2.49 / 1,000 results
Rating
0.0
(0)
Developer
Neuro Scraper
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
15 days ago
Last modified
Categories
Share
SEO Audit Scraper — on-page SEO checks for URLs or whole sites
SEO Audit Scraper audits each page you give it (or every page of a site it crawls) and returns one row per page with the on-page SEO facts, a list of issues with severity and a 0–100 score:
status code and redirect chain, response time, page size, HTTPS · title and meta description with lengths · H1–H6 counts and outline · canonical (self-referencing?), meta robots, X-Robots-Tag and robots.txt for Googlebot → indexable or not, and why · hreflang (x-default, self reference), html lang, viewport, charset, favicon · Open Graph and Twitter card tags · JSON-LD types (with parse errors) and microdata · images without alt · internal, external and nofollow links, links without text · mixed content · word count and text-to-HTML ratio · optional broken link check.
Input
| Field | Type | Default | Meaning |
|---|---|---|---|
startUrls | URL list | python.org/about/, crawlee.dev/python/ (prefill) | Pages to audit (crawl starting points in crawl mode) |
crawl | boolean | false | Also audit same-domain pages linked from them |
maxPages | integer | 20 | Pages audited |
maxCrawlDepth | integer | 2 | Crawl depth (crawl mode) |
checkLinks | boolean | false | Check each page's links (404/410/5xx/unreachable = broken; 401/403/429 = blocked) |
maxLinksToCheckPerPage | integer | 30 | Links checked per page (each link once per run) |
slowResponseMs | integer | 2000 | SLOW_RESPONSE threshold |
respectRobotsTxt | boolean | true | Do not fetch pages robots.txt disallows |
requestDelayMs | integer | 1000 | Pause between requests to one host |
proxyConfiguration | proxy | Apify datacenter | RESIDENTIAL for sites that block datacenter IPs |
Output (one row per page) — main fields
| Field | Meaning |
|---|---|
url, finalUrl, statusCode, redirectChain, redirectCount, responseTimeMs, pageSizeBytes, isHttps | Fetch facts |
indexable, indexabilityIssues, metaRobots, xRobotsTag, robotsTxtAllowsGooglebot, canonicalUrl, canonicalIsSelf | Indexability |
title, titleLength, metaDescription, metaDescriptionLength | Snippet |
h1, h1Count, headingCounts, headingOutline | Headings |
lang, viewport, charset, hreflang, favicon | Locale / mobile |
openGraph, twitterCard, structuredDataTypes, jsonLdBlocks, jsonLdParseErrors, microdataTypes | Social + structured data |
imagesCount, imagesWithoutAlt, imagesWithEmptyAlt, imagesWithoutAltSamples | Images |
internalLinks, externalLinks, nofollowLinks, linksWithoutText, mixedContentResources | Links (unique URLs) |
brokenLinks, linksBlockedOrUnauthorized, linksChecked | With checkLinks |
wordCount, textToHtmlRatio | Content |
score, issueCounts, issues | [{severity, code, message}], e.g. TITLE_TOO_LONG, MISSING_H1, NOINDEX, BROKEN_LINKS |
Measured (2026-10-03, see TEST_REPORT.md)
- 15-page crawl with link checking (43 links) in 24 s; a BBC article's title, description, headings, hreflang and structured data matched an independent audit of the same page.
Limits
- Pages are audited as served, before JavaScript; the score is a transparent heuristic, not Google's ranking.
- Response times are measured from the crawler's location. No Core Web Vitals / Lighthouse.
- Sites behind anti-bot pages return the challenge page's status; use a RESIDENTIAL proxy.
Example
{"startUrls": [{"url": "https://books.toscrape.com/"}], "crawl": true, "maxPages": 50, "checkLinks": true}