SEO Audit: On-Page, Redirects & AI Crawler Access
Pricing
Pay per usage
SEO Audit: On-Page, Redirects & AI Crawler Access
Audits pages for on-page and technical SEO, and adds four checks general auditors skip: AI crawler access in robots.txt, llms.txt, redirects that drop the path, and noindex sent via X-Robots-Tag.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
Ai-Q Labs
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Give it a list of URLs. Get one row per page with the on-page and technical SEO findings, a score, and an explicit list of what to fix — plus four checks that general SEO auditors leave out.
Free. No API key. No browser, so a few hundred URLs cost almost nothing.
The four checks other auditors skip
1. Which AI crawlers your robots.txt blocks. Twenty-six of them, by name — GPTBot, ClaudeBot, PerplexityBot, Google-Extended, CCBot, Applebot-Extended and the rest — each with the rule that matched. Blocking them may be exactly what you want; not knowing you block them is not.
2. Whether you publish /llms.txt. The emerging convention for telling AI assistants which pages matter. Checked properly: a site that answers 200 with its normal HTML template for any unknown path does not count as having one.
3. Redirects that quietly throw the path away. After a migration, old URLs
often 301 to the front page. Every status checker reports 301 → 200 OK and
calls it healthy. Google calls it a soft 404 and drops the page. This Actor
follows each hop by hand and says so.
4. noindex sent in the X-Robots-Tag header. It is the only standard way to noindex a PDF, and a checker that only parses HTML never sees it. Read from the response headers, so it is caught on files as well as pages.
Everything else it checks
Indexability — HTTP status, full redirect chain, redirect loops, HTTPS downgrades, temporary redirects used for permanent moves, robots.txt disallow, meta robots, nofollow, nosnippet/noarchive, soft 404 detection.
On-page — title and its length, meta description and its length, H1 count,
heading outline and skipped levels, canonical (missing, off-site, pointing at
the home page), html lang, viewport, word count that counts CJK correctly,
internal and external link counts, images without alt text with samples.
International — hreflang entries, invalid language tags, missing
self-reference, missing x-default.
Structured and social — every schema.org @type found in JSON-LD including
nested and @graph entries, JSON-LD blocks that fail to parse, Open Graph
completeness, Twitter Card tags.
Each finding carries a severity (error / warning / notice), a sentence explaining what it means, and often the evidence that triggered it. The score starts at 100 and subtracts by severity, so it is a summary of the findings rather than a number invented separately from them.
Input
{"urls": ["https://example.com/","https://example.com/pricing","example.com/blog/post"],"checkAiCrawlers": true,"respectRobotsTxt": true,"onlyIssues": false,"maxConcurrency": 8}
Bare hosts work. One entry may hold several URLs separated by newlines, commas or spaces, so a pasted column from a spreadsheet is a valid input.
Output
One row per URL. Three views are provided: Overview (score and findings),
Indexing & redirects, and AI crawler access. Totals, the average score
and an issue breakdown are written to the key-value store as SUMMARY.
{"url": "https://example.com/old-guide","finalUrl": "https://example.com/","status": 200,"score": 76,"indexable": true,"errors": 1,"warnings": 1,"redirectHops": 1,"redirectChain": ["301 https://example.com/"],"title": "Example","canonical": "https://example.com/","canonicalIsSelf": false,"aiCrawlersBlocked": ["GPTBot", "CCBot"],"llmsTxt": false,"issues": [{"code": "redirect_to_homepage","severity": "error","message": "The redirect throws the path away and lands on the home page…"}]}
Manners
One robots.txt and one llms.txt request per host, whatever the URL count. The page itself is fetched once, and at most 400 KB of it is read. Pages that robots.txt disallows are reported with the rule that blocked them and not downloaded. No JavaScript is executed and nothing is crawled beyond the URLs you supply.
Limits worth knowing
- Findings come from the HTML as served. A site that builds its
<head>in the browser will look emptier here than it does to a rendering crawler. - hreflang is checked per page. Whether the other side of the pair points back cannot be judged from one document.
- The score is a convenience. Read the issue list.