Open on Apify Examples on GitHub
What it does
Give it a website and it finds the XML sitemap (or crawls internal links if there is none), then audits the most important pages first. Each HTML page gets a score from 0 to 100 and a grade from A to F, plus the issues that hurt the score, written in plain English with why they matter and how to fix them.
The site summary ranks the five fixes that would help the most, counts issues by severity, flags duplicate titles and descriptions, lists broken and noindex pages, and points to the lowest scoring pages. A shareable HTML report is saved with the run. The report and the summary rows are free.
Checks include title and meta description, H1, canonical, noindex, hreflang, Open Graph, schema.org, images without alt text, thin content, mobile viewport, HTTPS and mixed content, redirect chains, slow responses, page size and broken links.
- Public pages only. Plain HTTP, no browser and no login.
- Failed pages are free. 404s, blocks, timeouts and non-HTML files are listed, not billed.
- Works from the API too. Same input in the Apify Store, the API, MCP, or an n8n node.
Who it is for
It is built for people who already do this work by hand, or who want a cheap, repeatable audit they can run on a schedule.
- SEO freelancers and agencies who want a scored audit and a report before a client call.
- Web designers and developers checking a site before or after a launch or migration.
- In-house marketers running a regular health check of every page in the sitemap.
- Anyone pitching new work who wants a homepage score and a short list of real fixes.
Price
$2 per 1,000 audited pages ($0.002 per page). That is the live Apify Store price as of November 11, 2026. There is no start fee. Broken-link checking is included.
Site summary rows, the HTML report and every page that fails are free. A 300-page site costs $0.60. Set a page cap or a maximum charge on the run if you want a hard spend limit.
Example input and output
Input
A short whole-site preview. Raise maxPagesPerSite for a deeper audit, or pass a sitemap URL or a list of pages.
{
"startUrls": [
"https://crawlee.dev"
],
"maxPagesPerSite": 20,
"checkBrokenLinks": true
}
Output
A shortened page row from a real test run of crawlee.dev. The same run also wrote a free site-summary row (site score 88, grade B) and an HTML report.
{
"rowType": "page",
"site": "https://crawlee.dev",
"url": "https://crawlee.dev/blog",
"statusCode": 200,
"score": 88,
"grade": "B",
"topIssue": "No H1 heading",
"titleLength": 107,
"h1Count": 0,
"wordCount": 1108,
"status": "ok"
}
Questions
Can I audit a whole website in one run?
Yes. Give it a homepage, set a page limit, and it finds the sitemap (or follows internal links if there is none) and audits the most important pages first.
Why are failed pages free?
You should pay for audits, not for a page that was blocked, missing, or not HTML. Those rows still appear in the results so you can see what happened.
Does it use a browser or log in?
No. It fetches public pages over plain HTTP. Content that only appears after JavaScript runs may look thin. It never sends cookies or credentials, and it skips login, account, admin, cart and checkout paths.
Does it collect personal data?
No. It only reads public pages you point it at. See our privacy policy for the details.
Is there a Google Sheets version?
Yes. Site Health Kit runs the same kind of checks in a spreadsheet.