Skip to content

SOP 004: Making Sites AI-Crawlable

Fresh
Document Control
SOP IDSOP-004
Version1.0
CategoryTechnical Foundation
ComplexityLow
SourceThe New Structure of AI Era SEO

Purpose

If AI crawlers cannot fetch your content cleanly, LLMs cannot rely on it. This procedure ensures your site is accessible to AI systems.

The Foundation Layer

┌─────────────────────────────────────────────────────────────────────┐
│                    CRAWLABILITY STACK                                │
├─────────────────────────────────────────────────────────────────────┤
│                                                                      │
│   Without AI Crawlability     With AI Crawlability                  │
│   ───────────────────────     ────────────────────                  │
│   Content hidden in JS    ──► Static HTML available                 │
│   AI bots blocked         ──► AI bots welcomed                      │
│   No structured data      ──► Rich schema markup                    │
│   Slow page load          ──► Fast, clean responses                 │
│                                                                      │
│   Result: Invisible           Result: Indexed & retrievable         │
│                                                                      │
└─────────────────────────────────────────────────────────────────────┘

Procedure

Step 1: Audit Current Crawl Access

Check which AI bots can currently access your site:

bash
# Check your robots.txt
curl https://yoursite.com/robots.txt

# Look for blocks on these user-agents:
# - GPTBot
# - Google-Extended
# - CCBot
# - anthropic-ai
# - PerplexityBot

Step 2: Review robots.txt Configuration

Problematic Configuration:

txt
User-agent: *
Disallow: /

# This blocks everything including AI crawlers

AI-Friendly Configuration:

txt
# Allow all crawlers by default
User-agent: *
Allow: /

# Specifically welcome AI crawlers
User-agent: GPTBot
Allow: /

User-agent: Google-Extended
Allow: /

User-agent: CCBot
Allow: /

User-agent: anthropic-ai
Allow: /

User-agent: PerplexityBot
Allow: /

# Block only what's necessary
Disallow: /admin/
Disallow: /private/

Step 3: Ensure Content is Not JavaScript-Dependent

AI crawlers have limited JavaScript execution. Test your pages:

  1. Disable JavaScript in browser

    • Chrome: DevTools → Settings → Debugger → Disable JavaScript
    • View your pages—can you see the content?
  2. View page source

    • Right-click → View Page Source
    • Is your main content visible in the HTML?
  3. Use server-side rendering (SSR) if content is hidden

Step 4: Avoid Content in Problematic Formats

FormatIssueSolution
PDFLimited extractionProvide HTML version
Images of textCannot be readUse actual text
IframesOften ignoredEmbed content directly
Heavy JS frameworksMay not renderUse SSR or static generation

Step 5: Optimize Page Structure

Ensure clean, semantic HTML:

html
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="description" content="Clear description">
  <title>Clear, descriptive title</title>
</head>
<body>
  <header>
    <nav><!-- Navigation --></nav>
  </header>

  <main>
    <article>
      <h1>Main Heading</h1>
      <p>Content in semantic tags...</p>
    </article>
  </main>

  <footer><!-- Footer --></footer>
</body>
</html>

Step 6: Verify Crawl Success

Use these tools to verify:

ToolPurposeURL
Google Search ConsoleCheck indexing statussearch.google.com/search-console
Screaming FrogCrawl simulationscreamingfrog.co.uk
Fetch as GoogleSee what Google seesIn Search Console

Step 7: Monitor AI Bot Traffic

Check server logs for AI crawler activity:

# Common AI bot user-agents to look for:
GPTBot
ChatGPT-User
Google-Extended
CCBot/2.0
anthropic-ai
PerplexityBot

Verification Checklist

  • [ ] robots.txt allows AI crawlers
  • [ ] Content is visible without JavaScript
  • [ ] No critical content in PDFs only
  • [ ] No text in images
  • [ ] Semantic HTML structure in place
  • [ ] Page loads in under 3 seconds
  • [ ] Server returns 200 status for main pages
  • [ ] No redirect loops

Troubleshooting

IssueDiagnosisSolution
Content not indexedCheck robots.txtRemove blocking rules
Pages render blankJavaScript dependencyImplement SSR
Slow crawlingPoor performanceOptimize page speed
Partial contentLazy loadingPre-render critical content

See Also

Based on insights from Duane Forrester Decodes Substack