Seo crawlability
The SEO + AI-search (GEO/AEO) optimization toolkit for Claude Code — two-score audit + opt-in fixer. Built for 2026-2027.
npx -y skills add Hainrixz/claude-seo-ai --skill seo-crawlabilityAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
What its author says it does
Copied from the file, not written here
Audit and generate robots.txt and general crawl access for a page — verify robots.txt reachability and syntax, detect Disallow rules that block CSS/JS or important content, sanity-check crawl-delay, confirm a Sitemap directive, and assert overall crawl access for Googlebot/Bingbot. Module M1. Feeds the Search SEO score.
SKILL.md
4.3 KB, as published. Nobody here has run it
seo-crawlability (M1)
Crawl access is the precondition for every other search signal: if Googlebot/Bingbot can't fetch the page and its assets, nothing else ranks. This module covers general-purpose crawl access only. AI-specific bot directives (GPTBot, Claude-SearchBot, etc.) and llms.txt live in seo-ai-crawlers (M14/M21); see references/ai-crawlers.md for that boundary.
Audits
Working from the PageSnapshot (rendered_dom if present, else raw_html) plus a fetch of /robots.txt:
- Reachability:
/robots.txtreturns 200 (a 404 means "allow all" but is worth flagging; a 5xx can suspend crawling). - Syntax: each line is a valid directive (
User-agent,Disallow,Allow,Sitemap,Crawl-delay); flag unknown tokens, missingUser-agentgroup headers, and BOM/encoding issues. - Asset blocking: any
Disallowthat blocks CSS/JS, fonts, or/wp-includes/-style paths — this breaks rendering and is a leading cause of "page looks broken to Google" (cross-check with M-render). - Content blocking:
Disallowrules that hide important indexable paths fromGooglebot/Bingbot. - Crawl-delay sanity: a large
Crawl-delay(or one applied to the global group) can starve crawl budget; note that Googlebot ignoresCrawl-delaybut Bingbot honors it. - Sitemap directive: presence of at least one absolute
Sitemap:URL. - Overall access: resolve the effective ruleset for
GooglebotandBingbotagainst the audited URL — does it end up allowed?
Fixes
Generated edits are a diff for fix, mapped to the schema fixable field:
- AUTO: remove an accidental
Disallowof CSS/JS or a key content path (additive un-block, verifiable); add a missing absoluteSitemap:line; repair malformed syntax (e.g.Dissallowtypo, missing colon, group with noUser-agentheader). - PROPOSED: tightening
Crawl-delayor restructuringUser-agentgroups — drafted, requires per-item accept because intent may be deliberate. - ADVISORY: changing what is intentionally disallowed (private/staging paths) — never written by the tool.
Never fabricate a sitemap URL or path: if the canonical sitemap location is unknown, emit a clearly-marked
TODOplaceholder for the user to fill, or ask.
Verification
node ${CLAUDE_SKILL_DIR}/../../scripts/parse-robots-sitemap.mjs --url <u>— fetches and parses/robots.txt, resolves the effective allow/deny for the named agent + URL, and checks for theSitemap:directive (methodrobots_parse).- When
/robots.txtcannot be fetched (network/auth/edge block) the status isneeds_api, never a falsepass.
Findings
Emit findings per schema/finding.schema.json. Examples:
M1.robots.blocks_css_js— aDisallowmatches CSS/JS the rendered page loads (severity 5, fail,fixable: auto, axissearch, confidenceestablished).M1.robots.blocks_googlebot— effective ruleset disallows the audited URL forGooglebot(severity 5, fail,fixable: proposed, axissearch, confidenceestablished).M1.sitemap.missing_directive— noSitemap:line in robots.txt (severity 5, warn,fixable: auto, axissearch, confidencedirectional). Each finding:evidence.observedquotes the offending robots.txt line (or the resolved verdict) verbatim;verification.reproduceis the runnable command above;expected_impactis banded + confidence-tagged (no naked %).
Honesty
robots.txtcontrols crawling, not indexing: aDisallow-ed page can still be indexed (URL-only) from external links. To keep a page out of the index use anoindexmeta tag and do not alsoDisallowit, or the crawler can't see thenoindex.- A missing or 404
robots.txtis not a defect — it means "crawl everything." Don't report it as a fail; flag only as informational. Crawl-delayis ignored by Googlebot; recommending it as a Google ranking/crawl lever is a myth — scope advice to Bingbot and other honoring agents.