seo-crawlability
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.
适合你,如果你需要确保网站能被搜索引擎正确抓取和索引。
用别的 agent?下载 .zip 解压,把文件夹放进它的技能目录
~/.claude/skills/(项目级 .claude/skills/)~/.codex/skills/npx oh-my-skill add hainrixz/claude-seo-ai/seo-crawlabilitycurl -fsSL https://oh-my-skill.com/install.sh | bash -s -- hainrixz/claude-seo-ai/seo-crawlabilitynpx oh-my-skill verify hainrixz/claude-seo-ai/seo-crawlability怎么用
技能原文 SKILL.md
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 TODO placeholder 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.observed quotes the offending robots.txt line (or the resolved verdict) verbatim; verification.reproduce is the runnable command above; expected_impact is 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.