site-crawlability

$npx mdskill add kostja94/marketing-skills/site-crawlability

Improves site crawlability and fixes orphan pages for search engines.

  • Fixes broken links, redirect chains, and orphan pages.
  • Depends on robots.txt, X-Robots-Tag, and internal link analysis.
  • Prioritizes fixes based on crawl budget and site structure depth.
  • Delivers actionable recommendations for site architecture and pagination.

SKILL.md

.github/skills/site-crawlabilityView on GitHub ↗
---
name: site-crawlability
description: When the user wants to improve crawlability, fix orphan pages, or optimize site structure for search engines. Also use when the user mentions "crawlability," "crawl budget," "orphan pages," "internal links," "site structure," "site crawlability," "infinite scroll," "pagination," "masonry SEO," "AI crawler optimization," "GPTBot crawlability," "ClaudeBot crawlability," or "content not indexed." For internal links, use internal-links.
metadata:
  version: 1.2.1
---

# SEO Technical: Crawlability

Guides crawlability improvements: robots, X-Robots-Tag, site structure, and internal linking.

**When invoking**: On **first use**, if helpful, open with 1–2 sentences on what this skill covers and why it matters, then provide the main output. On **subsequent use** or when the user asks to skip, go directly to the main output.

## Scope (Technical SEO)

- **Redirect chains & loops**: Fix multi-hop redirects; point directly to final URL
- **Broken links (4xx)**: Fix broken internal/external links; 301 or remove
- **Site architecture**: Logical hierarchy; pages within 3–4 clicks from homepage
- **Orphan pages**: Add internal links to pages with no incoming links
- **Pagination**: Prefer pagination over infinite scroll for crawlability
- **Crawl budget**: Reduce waste on duplicates, redirects, low-value URLs (see below)
- **AI crawler optimization**: SSR for critical content; URL management; reduce 404/redirect waste (see below)

## Initial Assessment

**Check for project context first:** If `.claude/project-context.md` or `.cursor/project-context.md` exists, read it for site structure.

Identify:
1. **Site structure**: Flat vs. deep hierarchy
2. **Framework**: Next.js, static, SPA, etc.
3. **Key paths**: Sitemap, robots.txt, API, static assets

## Best Practices

### Redirect Chains & Loops

- Fix multi-hop redirects; point directly to final URL
- Loops: URLs redirecting back to themselves; break the cycle

### Broken Links (4xx)

- Fix broken internal/external links; 301 or remove
- Audit regularly; update or remove broken links

### Site Architecture

| Principle | Guideline |
|-----------|-----------|
| **Depth** | Important pages within 3–4 clicks from homepage |
| **Orphan pages** | Add internal links to pages with no incoming links; see **internal-links** for link strategy |
| **Hierarchy** | Logical structure; hub pages link to content |

### Pagination vs Infinite Scroll

**Problem**: With infinite scroll, crawlers cannot emulate user behavior (scroll, click "Load more"); content loaded after initial page load is not discoverable. Same applies to masonry + infinite scroll, lazy-loaded lists, and similar patterns.

**Solution**: Prefer pagination for key content. If keeping infinite scroll, make it search-friendly per [Google's recommendations](https://developers.google.com/search/blog/2014/02/infinite-scroll-search-friendly):

| Requirement | Practice |
|-------------|----------|
| **Component pages** | Chunk content into paginated pages accessible without JavaScript |
| **Full URLs** | Each page has unique URL (e.g. `?page=1`, `?lastid=567`); avoid `#1` |
| **No overlap** | Each item listed once in series; no duplication across pages |
| **Direct access** | URL works in new tab; no cookie/history dependency |
| **pushState/replaceState** | Update URL as user scrolls; enables back/forward, shareable links |
| **404 for out-of-bounds** | `?page=999` returns 404 when only 998 pages exist |

**Reference**: [Infinite scroll search-friendly recommendations](https://developers.google.com/search/blog/2014/02/infinite-scroll-search-friendly) (Google Search Central, 2014)

### Pagination (Traditional)

- Reference links to next/previous pages; `rel="prev"` / `rel="next"` where applicable
- Avoid dynamic-only loading; ensure links in HTML

### Crawl Budget

Crawl budget is the number of URLs Googlebot will crawl on your site in a given period. Large sites (10,000+ pages) may waste up to 30% of crawl budget on duplicates, redirects, and low-value URLs.

| Waste source | Fix |
|--------------|-----|
| **Duplicate URLs** | Canonical; consolidate; 301 to preferred |
| **Redirect chains** | Point directly to final URL |
| **Parameter proliferation** | Use `rel="canonical"`; consider `Clean-param` (Yandex) |
| **Low-value pages** | noindex for thin/duplicate; see **indexing** |
| **Crawl traps** | Avoid infinite URL generation (e.g. faceted filters) |

**Sitemap**: Include only indexable, canonical URLs. See **xml-sitemap**, **canonical-tag**.

### AI Crawler Optimization

AI crawlers (GPTBot, ClaudeBot, PerplexityBot, etc.) now represent ~28% of Googlebot's crawl volume. Their behavior differs from search engines—optimizing for both improves GEO (AI search visibility). See **generative-engine-optimization** for GEO strategy. [Vercel/MERJ study](https://vercel.com/blog/the-rise-of-the-ai-crawler) (Dec 2024):

| Factor | AI Crawlers (GPTBot, Claude) | Googlebot |
|--------|------------------------------|-----------|
| **JavaScript** | Do not execute JS; cannot read client-side rendered content | Full JS rendering |
| **404 rate** | ~34% of fetches hit 404s | ~8% |
| **Redirects** | ~14% of fetches follow redirects | ~1.5% |
| **Content in initial HTML** | JSON, RSC in initial response can be indexed | Same |

**Recommendations for AI crawlability:**

| Practice | Action |
|----------|--------|
| **Server-side rendering** | Critical content in initial HTML. Use SSR, ISR, or SSG. See **rendering-strategies** for full guide. |
| **URL management** | Keep sitemaps updated; use consistent URL patterns; avoid outdated /static/ assets that cause 404s. AI crawlers frequently hit outdated URLs. |
| **Redirects** | Fix redirect chains; point directly to final URL. AI crawlers waste ~14% of fetches on redirects. |
| **404 handling** | Fix broken links; remove or redirect outdated URLs. High 404 rates suggest AI crawlers may use stale URL lists. |

**Reference**: [The rise of the AI crawler](https://vercel.com/blog/the-rise-of-the-ai-crawler) (Vercel, 2024)

## Common Issues

| Issue | Check |
|-------|-------|
| Redirect chains | Update links to point directly to final URL |
| Broken links | 301 or remove; audit internal and external |
| Orphan pages | Add internal links from hub or navigation; see **internal-links** for strategy |
| Infinite scroll | Provide paginated component pages; or replace with pagination for key content; see above |
| AI crawlers missing content | Ensure critical content in initial HTML; see **rendering-strategies** |

## Output Format

- **Redirect audit**: Chains and loops to fix
- **Broken link audit**: 4xx links to fix
- **Site structure**: Orphan pages, hierarchy
- **Pagination**: Implementation for crawlable content
- **AI crawler**: SSR/URL/redirect checks if GEO or AI visibility is a goal

## Related Skills

- **seo-strategy**: SEO workflow; crawlability is Technical phase (P0)
- **website-structure**: Plan which pages to build, page priority, structure planning; use before or alongside crawlability audit
- **robots-txt**: robots.txt configuration; AI crawler allow/block (GPTBot, ClaudeBot)
- **xml-sitemap**: URL discovery; keep updated to reduce AI crawler 404s
- **google-search-console**: Index status, Coverage report
- **indexing**: Fix indexing issues
- **internal-links**: Internal linking best practices
- **masonry**: Masonry + infinite scroll has same crawl issue; layout skill references this for SEO
- **generative-engine-optimization**: GEO strategy; AI search visibility; crawlability enables AI citation
- **canonical-tag**: Canonical reduces crawl budget waste on duplicates
- **rendering-strategies**: SSR, SSG, CSR; content in initial HTML; crawler visibility

More from kostja94/marketing-skills

SkillDescription
404-page-generatorWhen the user wants to create, optimize, or audit 404 error pages. Also use when the user mentions "404 page," "404 error," "error page," "page not found," "broken link page," "404 design," "custom 404," "404 redirect," "404 page UX," or "404 recovery." For sitewide page planning, use website-structure.
about-page-generatorWhen the user wants to create, optimize, or audit About page content. Also use when the user mentions "about page," "about us," "company story," "our team," "about section," "company overview," "brand story," "team page," or "who we are." For sitewide page planning, use website-structure.
affiliate-marketingWhen the user wants to plan, implement, or optimize affiliate marketing strategy. Also use when the user mentions "affiliate marketing," "affiliate program strategy," "CPS model," "affiliate recruitment," "commission structure," "affiliate partners," "affiliate network," "affiliate tracking," "affiliate commission," or "partner marketing." For affiliate page, use affiliate-page-generator.
affiliate-page-generatorWhen the user wants to create, optimize, or audit affiliate program page content. Also use when the user mentions "affiliate program," "affiliate page," "partner program," "referral program page," "affiliate landing," "partner landing," "commission page," or "affiliate signup." For affiliate program strategy, use affiliate-marketing.
ai-traffic-trackingWhen the user wants to track AI search traffic in GA4 or GSC. Also use when the user mentions "AI traffic," "ChatGPT referral," "Perplexity traffic," "AI Overviews," "GA4 AI sources," "AI search analytics," "track AI referrals," "AI search traffic," "Claude traffic," or "how to track AI traffic." For AI SEO strategy, use generative-engine-optimization.
alternatives-page-generatorWhen the user wants to create, optimize, or audit alternatives or comparison content (page or blog article). Also use when the user mentions "alternatives page," "alternatives listicle," "X alternatives," "competitor comparison," "vs page," "compare page," "best alternatives to X," "switch from X," "competitor brand traffic," "brand keyword ads," or "intercept competitor search." For competitor research, use competitor-research.
api-page-generatorWhen the user wants to create, optimize, or audit the API introduction/overview page. Also use when the user mentions "API page," "API landing page," "/api page," "API overview," "developer landing," "API marketing," or "API for developers." Note: API documentation (endpoint reference) lives in docs; use docs-page-generator.
app-adsWhen the user wants to run app install ads, user acquisition (UA), or promote mobile apps. Also use when the user mentions "app ads," "app install ads," "UA," "user acquisition," "Google App Campaigns," "Apple Search Ads," "ASA," "UAC," "App Store ads," "Play Store ads," "CPI," or "app promotion." For store listings, use distribution-channels.
article-contentWhen the user wants to write, generate, or create article body content—blog post body, long-form content, how-to guide, listicle. Also use when the user mentions "write article," "article content," "blog post content," "article body," "long-form content creation," "generate article," "article draft," "how-to guide content," "listicle content," "information gain," or "content density." For single post page structure, schema, and SEO metadata, use article-page-generator. For blog index/listing page, use blog-page-generator. For short ad, landing, or email copy, use copywriting.
backlink-analysisWhen the user wants to analyze backlinks, audit link profile, or identify link issues. Also use when the user mentions "backlink analysis," "backlink audit," "referring domains," "toxic links," "link profile," or "disavow file." For acquisition, use link-building.