SEO & AI Search Readiness Audit

Audit any web page for classic SEO and for AI search in one pass. You get a 0–100 SEO score, a 0–100 AI-readiness score, and a list of issues, each with a stable code, a severity and a one-line fix.

Run it on ApifyUse it from an agent

What it checks

AreaChecks
On-page SEOTitle, meta description, headings, word count, language, images and alt text, internal and external links, Open Graph and Twitter cards
IndexingCanonical, meta robots, X-Robots-Tag, hreflang, redirects and status codes
AI crawlersWhich AI search crawlers (OAI-SearchBot, ChatGPT-User, PerplexityBot, Claude-SearchBot…) and AI training crawlers (GPTBot, ClaudeBot, Google-Extended, CCBot…) your robots.txt blocks, kept apart so a policy choice isn't mistaken for a mistake
llms.txt and sitemapWhether /llms.txt exists and follows the llmstxt.org format; whether the XML sitemap is found and valid
Structured dataJSON-LD types found, broken JSON-LD, missing @context, missing article dates
JavaScript-only pagesPages whose HTML is an empty app shell, which most AI crawlers can't read (JS_ONLY_CONTENT)
Links (optional)Each link on the audited pages requested once; broken ones reported

Results: one dataset item per page, one per site (robots.txt, AI crawler table, sitemap, llms.txt), a Markdown REPORT and a run summary.

Example

{"urls": ["https://example.com/"],
 "maxPagesPerSite": 50,
 "checkLinks": true}

One page item (shortened):

{"type": "page", "url": "https://example.com/", "status": "ok",
 "seo_score": 70, "ai_score": 93,
 "issues": [{"code": "META_DESCRIPTION_MISSING", "severity": "medium",
             "fix": "Add a meta description of about 70-160 characters."}]}

Use it

In the Apify Console

Open the Actor page on Apify, fill in the input form and click Start. Results land in the run's dataset (JSON, CSV or Excel download).

From an AI agent (MCP)

Apify's hosted MCP server exposes the Actor as a tool to Claude, Cursor, VS Code and other MCP clients. Server URL:

https://mcp.apify.com/?tools=errandkit/seo-ai-readiness-audit

For example, in Claude Code (sign in to Apify when asked, or add --header "Authorization: Bearer YOUR_APIFY_TOKEN"):

claude mcp add --transport http errandkit "https://mcp.apify.com/?tools=errandkit/seo-ai-readiness-audit"

Copy-paste config for Claude Desktop, Cursor, VS Code, Windsurf and ChatGPT →

From code (Apify API)

curl -X POST "https://api.apify.com/v2/acts/errandkit~seo-ai-readiness-audit/run-sync-get-dataset-items" \
  -H "Authorization: Bearer YOUR_APIFY_TOKEN" -H "Content-Type: application/json" \
  -d '{"urls":["https://example.com/"],"checkSite":true}'

Errandkit doesn't run its own hosted API yet. Every way of using this tool goes through your Apify account.

Pricing

EventPricePer 1,000
Page audited (HTML page fetched and analyzed)$0.004$4.00
Site checked (robots.txt, AI crawlers, sitemap, llms.txt; once per site)$0.005$5.00
Link checked (only with checkLinks; each URL once per run)$0.0005$0.50
Actor start (Apify standard)$0.00005$0.05

Examples: one page and its site check cost $0.009. A 50-page crawl of one site costs $0.205. Failed, non-HTML and robots-disallowed pages aren't charged. Set a maximum cost per run and the tool stops before going over it, keeping everything already finished.

Launch prices. The price shown on the Apify Store page is the one you are charged, and Apify shows it before every run.

How it crawls

Questions

Does it run JavaScript?

No. It reads the HTML the server sends, which is what most AI crawlers see. If a page is an empty JavaScript app shell, it reports JS_ONLY_CONTENT.

Am I charged for pages that fail?

No. Pages that time out, return 4xx/5xx, aren't HTML or are blocked by robots.txt are free.

Which crawler does it identify as?

ErrandkitAuditBot. It obeys robots.txt for that name and for *. See errandkit.com/bot/.