Seo indexability
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-indexabilityAssembled 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 a page's indexability and site health — canonical presence/validity (self vs cross-domain vs chain, canonical to redirect/404, the lethal canonical+noindex pair), robots meta and X-Robots-Tag noindex/nofollow, duplicate clusters, pagination signals, plus redirect chains/loops, 4xx/5xx and soft-404 internal links, mixed content, HTTP-to-HTTPS enforcement, orphan pages and click-depth — and generate self-referential canonical / noindex-removal fixes. Module M2 (covers M3 site health). Feeds the Search SEO score.
SKILL.md
4.5 KB, as published. Nobody here has run it
seo-indexability (M2)
If a page can't be crawled, indexed, or canonicalized correctly, every other signal is wasted — this is the floor under the Search score. Schema-side context: references/schema-tier1.md.
Audits
Working from the PageSnapshot (rendered_dom if present, else raw_html) plus response headers:
- Canonical: exactly one
<link rel="canonical">; absolute HTTPS URL; classify self-referential vs cross-domain vs chained (canonical points to a URL that itself canonicalizes elsewhere). Flag canonical that resolves to a redirect or 4xx. - Canonical + noindex: the lethal combination on the same URL (a noindex page used as a canonical target, or a canonicalized page also carrying noindex) — contradictory signals that drop the page.
- Robots directives:
<meta name="robots">and theX-Robots-Tagheader fornoindex/nofollow/none; reconcile header vs meta (header wins). - Duplicate clusters: near-identical title/H1/body across URLs with no consolidating canonical.
- Pagination: paginated series signals (self-canonical per page; do not canonicalize page 2+ to page 1 — that delists deep items).
- Site health (covers M3): redirect chains/loops (>1 hop = warn, >3 hops or loop = fail), internal links returning 4xx/5xx, soft-404 (200 status on an empty/"not found" page), mixed content (HTTP subresources on HTTPS), HTTP-to-HTTPS enforcement, orphan pages (no internal inlinks), and click-depth from the homepage.
Fixes
- AUTO (
fixable: auto): inject a single self-referential absolute-HTTPS<link rel="canonical">when absent; remove an accidentalnoindexon a page the user has confirmed should be indexed. Both are deterministic, additive/removal-only diffs forfix. - ADVISORY (
fixable: advisory): redirect chains/loops, status codes, HTTP-to-HTTPS, and mixed-content origin fixes live in server/CDN config — the tool never writes these; it reports the exact change. - PROPOSED (
fixable: proposed): duplicate-cluster consolidation (which URL is canonical is an editorial call) — draft a per-cluster canonical plan for the user to accept. - Never fabricate which URL "should" win or whether a page is intentionally noindexed — ask the user or leave a clearly-marked TODO placeholder.
Verification
dom_assert: parse the rendered DOM for canonical/robots presence and value.header_check: fetch headers to readX-Robots-Tagand follow the redirect chain (status +Locationper hop).- When the required data tier is unavailable (no live fetch / no crawl graph for orphan & depth), status is
needs_api— never a falsepass.
Findings
Findings conform to schema/finding.schema.json. Each carries evidence.observed quoting the page/header and a runnable verification.reproduce. Examples:
M2.canonical.noindex_conflict— page is both canonical target andnoindex(statusfail, severity 4,fixable: proposed, axissearch, confidenceestablished).M2.canonical.missing— no<link rel="canonical">on an indexable page (statuswarn→failif duplicates exist, severity 4,fixable: auto, axissearch, confidenceestablished).M2.redirect.chain— internal link traverses >1 hop before 200 (statuswarn, severity 4,fixable: advisory, axissearch, confidenceestablished).M2.robots.unintended_noindex—X-Robots-Tag: noindexon a page the user wants indexed (statusfail, severity 4,fixable: auto, axissearch, confidenceestablished).
Honesty
- A canonical is a hint, not a directive — Google may pick a different canonical; report it as strong consolidation, not a guarantee.
rel=next/previs no longer used by Google for pagination; don't recommend adding it as a ranking tactic — keep self-canonical per page instead.- Click-depth and orphan status correlate with crawl priority but are not a documented ranking factor — flag as
directional, never as an established score cap.