1. What Is an LLM Crawler?

An LLM crawler is an automated web agent operated by an AI lab or AI search product that traverses the public web to collect content for one of two fundamental purposes: building large language model training corpora, or performing real-time content retrieval to source answers for live AI search queries. The two purposes are distinct, but an increasing number of crawlers now serve both simultaneously.

LLM crawlers arrived en masse in 2023, following the public deployment of ChatGPT and the rapid acceleration of the generative AI search market. Before that year, a site's crawler management obligations were essentially binary: manage Googlebot and manage everything else. Today, an enterprise site may receive crawl traffic from eleven or more distinct AI agents in a single month — each operating under a different user-agent string, serving a different pipeline stage, and requiring independent robots.txt configuration.

Definition Lock

LLM crawler — an automated HTTP client operated by an AI organization that retrieves web content for inclusion in one or both of: (1) a large language model training dataset used to update model weights, or (2) a real-time retrieval-augmented generation (RAG) pipeline that sources passages to answer live user queries. LLM crawlers are distinct from traditional search indexing crawlers and must be managed as an independent category in any enterprise crawl access policy.

The emergence of this crawler class carries a direct commercial implication. The content your site makes accessible to LLM crawlers determines your brand's representation inside the AI systems that now answer millions of user queries per day. Content that is blocked, technically inaccessible, or poorly structured for machine parsing is absent from those answers — regardless of how well it ranks in traditional search.

This handbook is the complete field reference for understanding and managing every LLM crawler active in 2026.

2. Training Crawlers vs. Inference Crawlers

The single most important conceptual distinction in LLM crawler management is the difference between training crawlers and inference crawlers. Conflating the two leads to misconfigured access policies that either over-expose proprietary content or under-expose citation-worthy content.

Training Crawlers

Operate on a scheduled batch basis. Collect content that will be incorporated into the next LLM model training run — updating the model's internalized knowledge base. The content ingested influences what the model "knows" at a static level.

Crawl cycles range from days to weeks. Content changes between crawls are not reflected in model outputs until the next training update. Strategic IP risk: training crawlers ingest content into model weights that may reproduce it across many future queries.

Inference Crawlers

Operate on a query-triggered, real-time basis. Fetch content at the moment a user's query requires live web retrieval to generate an answer. The content surfaces in a specific AI response, typically with a citation link, then is not stored persistently.

Server response time is critical: slow TTFB causes source abandonment. Citation display is direct — users see your URL in the response. High commercial value for brand awareness. Lower IP risk: content is retrieved and returned, not baked into model weights.

Dimension Training Crawler Inference Crawler
Crawl TriggerScheduled batch runLive user query
Content DestinationLLM training dataset → model weightsRAG retrieval → single query response
Crawl FrequencyDays to weeksReal-time, on-demand
IP Risk LevelHigher — content absorbed into modelLower — content returned, not retained
Citation DisplayIndirect — influences model knowledgeDirect — URL shown to user in response
Server Speed SensitivityModerateCritical — timeout = source abandonment
Block ConsequenceBrand absent from model's trained knowledgeBrand absent from live AI search answers
Primary ExamplesGPTBot (training), ClaudeBot, Meta-ExternalAgentPerplexityBot, OAI-SearchBot, YouBot
Dual-Purpose Crawlers

Several crawlers now serve both training and inference functions under a single user-agent. GPTBot is the most prominent example: it collects training data on a batch schedule and also powers ChatGPT's real-time web browsing feature under the separate agent OAI-SearchBot. When configuring access, treat these as distinct agents requiring separate robots.txt directives, even when they originate from the same organization.

3. How LLM Crawlers Fit the Generative Search Pipeline

To manage LLM crawler access strategically, teams need to understand exactly where in the generative answer pipeline each crawler operates. The pipeline has four distinct stages, and crawler access at each stage determines a different kind of visibility.

Stage 1 — Web Corpus Collection (Training Crawlers)

Web Crawl
GPTBot / ClaudeBot
Content Filter
quality / dedup
Training Dataset
tokenized corpus
Model Training
weight updates
LLM Knowledge
static until retrain

Training crawlers ingest content into model weights. Brands present in the training corpus are represented in the model's internalized world-knowledge — the baseline the LLM draws from when answering questions without live retrieval. Exclusion from training corpora means the model is less likely to reference your brand or cite your claims even when it has the opportunity.

Stage 2 — Retrieval-Augmented Generation (Inference Crawlers)

User Query
live intent
Query Embedding
vector transform
Live Crawl
PerplexityBot etc.
Passage Retrieval
top-k chunks
Answer + Citations
URL displayed

Inference crawlers retrieve content at query time, inserting it into the LLM's context window to ground the response in current web content. This is the pipeline stage that produces visible source citations in Perplexity, ChatGPT web search, and Google AI Overviews. Real-time server response, clean HTML parsing, and structured passage organization all directly affect whether your content is selected and surfaced.

Stage 3 — Vector Index Pre-Computation (Hybrid)

Some AI search products maintain a pre-computed vector index of the web — crawling on a rolling schedule to embed content into a searchable vector database, then querying that index at inference time rather than performing live crawls per query. This hybrid approach is used by Google AI Overviews (which draws from an already-indexed corpus) and is increasingly adopted by other large-scale AI search products. Access to this pipeline requires clean crawling, proper schema markup, and freshness signaling through sitemap <lastmod> dates.

4. Complete LLM Crawler Profiles

The following profiles cover every major LLM crawler active as of July 2026. Each entry documents the crawler's operator, pipeline role, user-agent strings, crawl behavior characteristics, and the strategic access consideration relevant to enterprise GEO.

GPTBot

User-Agent: GPTBot
Training
OpenAI
ChatGPT / GPT model training corpus
openai.com/gptbot
Yes — openai.com/gptbot
No — raw HTML only
Yes (voluntary)
OpenAI's primary batch-schedule training crawler. Separate from OAI-SearchBot, which handles ChatGPT's live web browsing. Blocking GPTBot removes content from OpenAI's training pipeline but does not disable ChatGPT's real-time web search — configure both agents independently. High strategic priority: GPT model family has the largest generative AI user base globally.

OAI-SearchBot

User-Agent: OAI-SearchBot
Inference
OpenAI
ChatGPT real-time web search & browsing
openai.com/searchbot
Yes
Partial — varies by query type
Yes (voluntary)
The inference counterpart to GPTBot, powering ChatGPT's live web search feature. Query-triggered; operates on user search intent rather than a crawl schedule. Server TTFB under 300ms is critical — live inference crawls that timeout source from the next available result. Citations from OAI-SearchBot appear directly in ChatGPT responses with URL attribution.

Google-Extended

User-Agent: Google-Extended
Training + Inference
Google / Alphabet
Gemini training + Google AI Overviews
developers.google.com/search/docs/crawling-indexing/google-common-crawlers
Yes — Google search console
Yes — full rendering capability
Yes (enforced)
The highest-priority LLM crawler for most enterprise brands. Google-Extended is separate from Googlebot — blocking it has zero effect on traditional Google Search rankings but directly controls inclusion in Google AI Overviews and Gemini responses. The only LLM crawler with verified JavaScript execution capability. Source of the most commercially significant generative citation surface globally.

ClaudeBot

User-Agent: ClaudeBot / anthropic-ai
Training
Anthropic
Claude model training corpus
anthropic.com/policies/crawlers
Yes
No — raw HTML only
Yes (voluntary)
Anthropic operates two user-agent strings for their crawler: ClaudeBot and anthropic-ai — both must be addressed independently in robots.txt. Primarily a training data crawler; Claude's live web retrieval in products operates through separate infrastructure. As Claude adoption grows in enterprise knowledge-worker workflows, training corpus inclusion becomes increasingly relevant for brand citation in AI-assisted research.

PerplexityBot

User-Agent: PerplexityBot
Inference
Perplexity AI
Perplexity.ai real-time answer engine
perplexity.ai/perplexitybot
Yes
Partial
Yes (voluntary) — historical controversy
A primarily inference-mode crawler powering Perplexity's source-attributed answer interface. Every Perplexity response includes visible source URLs — PerplexityBot citation is among the most commercially direct forms of AI search visibility. Note: Perplexity faced scrutiny in 2024 for alleged robots.txt non-compliance; their public position is full compliance as of 2025. Verify access logs to confirm actual behavior against declared policy.

Meta-ExternalAgent

User-Agent: Meta-ExternalAgent / FacebookBot
Training
Meta Platforms
Llama model training / Meta AI
developers.facebook.com/docs/sharing/webmasters/crawler
Partial
No
Yes (voluntary)
Meta operates multiple crawlers; Meta-ExternalAgent is the primary AI training agent, distinct from FacebookBot (used for social graph crawling and Open Graph metadata) and the separate crawler for Instagram link previews. Configure all three independently. Meta AI's deployment across Facebook, Instagram, and WhatsApp creates meaningful surface area for citation visibility despite lower individual crawl priority.

Applebot-Extended

User-Agent: Applebot-Extended
Training + Inference
Apple Inc.
Apple Intelligence / Siri / Safari summaries
developer.apple.com/applebot
Yes
Unknown — not publicly disclosed
Yes
Entirely separate from Applebot, which crawls for Apple Search (Spotlight and Safari suggestions). Applebot-Extended specifically governs Apple Intelligence features — on-device AI summaries in iOS 18+, enhanced Siri responses, and Safari reading mode AI summaries. Growing strategic relevance as Apple Intelligence expands across the iOS install base. Configure independently from standard Applebot directives.

Amazonbot

User-Agent: Amazonbot
Training
Amazon Web Services / Alexa
Alexa / Amazon Q / AWS AI services
developer.amazon.com/amazonbot
Yes
No
Yes
Lower crawl frequency than OpenAI, Google, or Perplexity crawlers at present. Relevant for brands with significant presence in Alexa-enabled environments, AWS enterprise customers using Amazon Q, or voice commerce use cases. Expected to increase in strategic priority as Amazon integrates AI more deeply into product search and Alexa interactions.

YouBot

User-Agent: YouBot
Inference
You.com
You.com AI search engine
you.com/policies/crawler
Partial
No
Yes
You.com operates a source-attributed AI search interface popular in researcher and developer audiences. YouBot's inference crawls produce direct citation links in search responses, similar to Perplexity's model. Relevant for B2B and technology brands targeting knowledge-worker queries. Lower total query volume than Perplexity but higher per-user engagement quality.

Brave Leo / BraveBot

User-Agent: BraveBot / Mozilla (Brave Leo)
Training + Inference
Brave Software
Brave Search + Leo AI assistant
brave.com/privacy/browser/#brave-ai
No
Partial
Yes
Brave's integrated AI assistant Leo uses both a pre-indexed Brave Search corpus and live retrieval. The Brave browser's AI summarization of open web pages — triggered by user action, not a background crawl — does not follow the same robots.txt model. Browser-level AI summarization is an emerging access policy consideration not yet addressed by standard robots.txt frameworks.

cohere-ai

User-Agent: cohere-ai
Enterprise RAG
Cohere Inc.
Enterprise RAG pipelines / Command R training
cohere.com/crawlerbot
No
No
Yes
Cohere's crawler primarily serves enterprise customers building private RAG pipelines on top of Cohere's Command R models. Lower consumer citation visibility than GPTBot or PerplexityBot. Relevant for brands targeting enterprise software buyers and B2B decision-makers who use Cohere-powered internal knowledge tools.

5. User-Agent String Quick Reference

The following table consolidates every confirmed user-agent string for active LLM crawlers as of July 2026. Use this as a configuration reference when drafting or auditing robots.txt directives.

Crawler Name User-Agent String(s) Pipeline Type Operator
GPTBotGPTBotTrainingOpenAI
OAI-SearchBotOAI-SearchBotInferenceOpenAI
Google-ExtendedGoogle-ExtendedBothGoogle
ClaudeBotClaudeBot / anthropic-aiTrainingAnthropic
PerplexityBotPerplexityBotInferencePerplexity AI
Meta-ExternalAgentMeta-ExternalAgent / FacebookBotTrainingMeta
Applebot-ExtendedApplebot-ExtendedBothApple
AmazonbotAmazonbotTrainingAmazon
YouBotYouBotInferenceYou.com
BraveBotBraveBotBothBrave Software
cohere-aicohere-aiEnterprise RAGCohere
Verification Required

User-agent strings are versioned and updated as AI products evolve. The strings listed here reflect confirmed deployments as of July 2026. Always verify against each operator's official crawler documentation before deploying robots.txt changes — an outdated or incorrect user-agent string in a Disallow directive will silently fail to block the intended crawler. Check server access logs post-deployment to confirm the directive is intercepting the correct traffic.

6. llms.txt — The Emerging Standard for LLM Content Discovery

llms.txt is a Markdown-formatted file placed at the root of a website that provides LLM crawlers and AI agents with a structured, human-readable index of a site's most LLM-relevant content. It was proposed by Jeremy Howard in 2024 and has gained meaningful adoption among AI search products through 2025–2026.

The file is analogous to — but distinct from — robots.txt and sitemap.xml. Where robots.txt governs access control and sitemap.xml governs crawl discovery, llms.txt governs content relevance signaling: it tells AI agents which pages are the most valuable for retrieval, summarization, and citation, without requiring the crawler to traverse the full site architecture to discover them.

robots.txt
Access control — defines what crawlers are allowed or denied permission to fetch. Operates at the crawler permission layer.
sitemap.xml
Crawl discovery — lists all indexable URLs with freshness metadata. Operates at the URL discovery layer for all crawlers.
llms.txt
Content relevance — curated index of highest-value LLM-readable content with human-readable context. Operates at the AI retrieval prioritization layer.
Schema.org (JSON-LD)
Entity metadata — machine-readable structured data embedded in page HTML. Operates at the in-page content classification layer for each individual URL.
Adoption Status — July 2026

llms.txt is confirmed as a supported discovery signal by Perplexity AI and Anthropic. OpenAI and Google have acknowledged the standard without formal adoption commitments. The file is additive — crawlers that do not yet read it are unaffected by its presence, making implementation a zero-risk, positive-return GEO action for any enterprise site. Thousands of domains including major tech companies, publishers, and SaaS platforms had implemented llms.txt by Q1 2026.

7. llms.txt Implementation Guide

The llms.txt specification defines a simple Markdown document structure. The file lives at https://yourdomain.com/llms.txt — served as text/plain — and follows a consistent format of headings, page links, and one-line descriptions.

File Format Specification

llms.txt # [Your Site Name] > One-paragraph summary of what the site is, what it covers, and who it serves. > This is the first thing an LLM reads. Write it as you would a well-crafted entity description. ## Core Documentation - [Page Title](https://yourdomain.com/page-url/): One-sentence description of what this page covers and why it is authoritative. - [Page Title](https://yourdomain.com/page-url/): One-sentence description. ## Definitions & Glossary - [What is GEO?](https://yourdomain.com/what-is-geo/): Complete definition of Generative Engine Optimization — the technical process of optimizing content for LLM citation and AI Overview inclusion. - [What is AEO?](https://yourdomain.com/what-is-aeo/): Definition of Answer Engine Optimization and its role within the GEO framework. ## Guides & How-Tos - [AI Crawler Budgets](https://yourdomain.com/ai-crawler-budgets/): Technical guide to managing crawl budget across GPTBot, Google-Extended, ClaudeBot, and PerplexityBot. - [LLMs Crawler Handbook](https://yourdomain.com/llms-crawler-handbook/): Complete field reference for every major LLM crawler — architecture, user-agents, pipeline roles, and access strategy. ## Research & Data - [2026 AI Search Visibility Report](https://yourdomain.com/2026-report/): Benchmark data on LLM citation rates, AI Overview inclusion, and enterprise GEO performance. ## Optional: llms-full.txt - [Full Site LLM Index](https://yourdomain.com/llms-full.txt): Extended version of llms.txt including all secondary content, product pages, and supplementary reference material.

Implementation Checklist

  1. Create the file at /llms.txt

    Place the file at your domain root: https://yourdomain.com/llms.txt. Serve it as Content-Type: text/plain; charset=utf-8. The file must be publicly accessible without authentication and without redirect chains that could break crawler fetch.

  2. Write the site description block first

    The opening summary paragraph is the most important content in the file — it is the first text an LLM processes when reading your llms.txt. Write a tight 2–4 sentence description of your organization, its domain expertise, its primary content focus, and the audience it serves. Use the language of entity description, not marketing copy.

  3. Organize sections by content type, not site structure

    Section headings should reflect content category (Definitions, Guides, Research, Case Studies, Product Documentation) — not your site navigation hierarchy (Services, About, Blog). LLM crawlers use section headings to classify content by purpose, not by site architecture.

  4. Write one-line descriptions for every listed URL

    Every entry must include a colon-separated one-sentence description after the link. This is the retrieval label — the description tells the LLM what query types this page is authoritative for. Write it as a factual statement of what the page contains, not a promotional teaser.

  5. List only high-value LLM-readable content

    Include definition pages, FAQ pages, how-to guides, original research, entity overview pages, and comprehensive pillar content. Exclude: thin pages under 500 words, promotional landing pages without informational value, paginated archives, gated content, and any page you would also exclude from a GEO-optimized sitemap.

  6. Reference llms.txt from robots.txt

    Add a pointer in your robots.txt file so crawlers that check that file also discover your llms.txt: LLMs-txt: https://yourdomain.com/llms.txt. This is an unofficial convention gaining adoption but not yet part of the formal robots.txt specification.

  7. Create llms-full.txt for comprehensive coverage

    The primary llms.txt should be concise — ideally under 100 entries. For sites with extensive content libraries, create a companion llms-full.txt that lists secondary content, and reference it from the bottom of the primary file. This allows crawlers with higher ingestion capacity to access the full content index without cluttering the primary signal.

  8. Update llms.txt when significant content is published

    The file is not static documentation — it is an active crawl signal. Add new high-value content pages as they are published. Remove pages that have been significantly revised downward, merged into other content, or deprecated. Freshness of the file itself signals active content maintenance to crawlers that monitor it.

8. robots.txt Configuration for All LLM Crawlers

The following is the complete annotated robots.txt template covering all active LLM crawlers as of July 2026. Each agent is addressed by its confirmed user-agent string with inline commentary on the strategic rationale for the default access policy.

robots.txt — full LLM crawler reference # ═══════════════════════════════════════════════════════ # TRADITIONAL SEARCH — manage separately from AI agents # ═══════════════════════════════════════════════════════ User-agent: Googlebot Allow: / Disallow: /admin/ Disallow: /private/ Disallow: /staging/ # ═══════════════════════════════════════════════════════ # OPENAI — training crawler (batch schedule) # Block specific directories to protect proprietary content # ═══════════════════════════════════════════════════════ User-agent: GPTBot Allow: /blog/ Allow: /guides/ Allow: /resources/ Allow: /glossary/ Disallow: /proprietary/ Disallow: /client-reports/ Disallow: /private/ # OPENAI — inference crawler (ChatGPT real-time web search) # Generally allow broadly — inference = live citation opportunity User-agent: OAI-SearchBot Allow: / Disallow: /private/ # ═══════════════════════════════════════════════════════ # GOOGLE AI — controls AI Overviews + Gemini ONLY # Does NOT affect Google Search rankings (Googlebot is separate) # ═══════════════════════════════════════════════════════ User-agent: Google-Extended Allow: / Disallow: /private/ Disallow: /client-reports/ # ═══════════════════════════════════════════════════════ # ANTHROPIC — two user-agent strings, configure both # ═══════════════════════════════════════════════════════ User-agent: ClaudeBot Allow: / Disallow: /private/ User-agent: anthropic-ai Allow: / Disallow: /private/ # ═══════════════════════════════════════════════════════ # PERPLEXITY — inference crawler, direct citation surface # ═══════════════════════════════════════════════════════ User-agent: PerplexityBot Allow: / Disallow: /private/ # ═══════════════════════════════════════════════════════ # META — two crawlers, different purposes # ═══════════════════════════════════════════════════════ User-agent: Meta-ExternalAgent # AI training Allow: / Disallow: /private/ User-agent: FacebookBot # Open Graph / social sharing Allow: / # ═══════════════════════════════════════════════════════ # APPLE — separate from Applebot (which handles Apple Search) # ═══════════════════════════════════════════════════════ User-agent: Applebot-Extended Allow: / Disallow: /private/ User-agent: Applebot # Standard Apple Search — manage separately Allow: / # ═══════════════════════════════════════════════════════ # AMAZON # ═══════════════════════════════════════════════════════ User-agent: Amazonbot Allow: / Disallow: /private/ # ═══════════════════════════════════════════════════════ # YOU.COM # ═══════════════════════════════════════════════════════ User-agent: YouBot Allow: / # ═══════════════════════════════════════════════════════ # BRAVE # ═══════════════════════════════════════════════════════ User-agent: BraveBot Allow: / # ═══════════════════════════════════════════════════════ # COHERE # ═══════════════════════════════════════════════════════ User-agent: cohere-ai Allow: / Disallow: /private/ # ═══════════════════════════════════════════════════════ # SITEMAPS — declare both standard and AI-priority sitemaps # ═══════════════════════════════════════════════════════ Sitemap: https://yourdomain.com/sitemap.xml Sitemap: https://yourdomain.com/sitemap-ai-priority.xml LLMs-txt: https://yourdomain.com/llms.txt

9. JavaScript Rendering and LLM Crawler Visibility

JavaScript rendering is the most under-acknowledged technical risk in enterprise LLM crawler management. The gap between what Googlebot sees (which executes JavaScript) and what most LLM training crawlers see (which do not) creates a class of content that is indexed for traditional search but invisible to the AI systems that now generate a growing share of user-facing answers.

What Training Crawlers Actually Receive

When GPTBot, ClaudeBot, or Meta-ExternalAgent fetches a page, they perform a standard HTTP GET request and parse the raw HTML response. They do not initiate a headless browser session, do not execute JavaScript, and do not wait for client-side rendering to complete. The content they see is equivalent to what curl https://yourdomain.com/page/ returns.

Critical Risk Pattern

Sites built on React, Next.js (client-side rendering mode), Vue, or other JavaScript frameworks that render page content client-side will have their entire content body absent from LLM training crawler fetches — even if Google indexes the full page correctly. A page showing as fully indexed in Google Search Console is not evidence that LLM training crawlers can access its content. These must be audited and verified separately.

Diagnosing Your JavaScript Exposure

  • Fetch key GEO content pages using curl -A "GPTBot" https://yourdomain.com/page/ and inspect whether the page body, key definitional paragraphs, FAQ content, and JSON-LD schema blocks are present in the raw response.
  • Check whether your JSON-LD structured data is injected via JavaScript (commonly done by CMS plugins and tag managers) or present in the server-rendered HTML. Run curl and search the response for <script type="application/ld+json"> — if it is absent, schema is being injected post-render and is invisible to training crawlers.
  • Audit pages built with headless CMS or Jamstack architectures for static generation configuration. Next.js, Nuxt, and Gatsby can all be configured for SSG or SSR — verify that GEO-priority pages are not defaulting to CSR in production.

Remediation Options

  • Server-Side Rendering (SSR): Configure Next.js getServerSideProps or equivalent for all GEO-critical pages. Ensures full page content is present in the initial HTML response on every fetch.
  • Static Site Generation (SSG): Pre-render all high-priority GEO pages at build time. Lower server load than SSR; appropriate for content that does not change per-request.
  • Dynamic rendering: Deploy a rendering proxy (such as Rendertron or Prerender.io) that detects crawler user-agents and serves pre-rendered HTML specifically to them. Useful as a transitional solution but adds infrastructure complexity.
  • Inline JSON-LD in server response: Move JSON-LD structured data from JavaScript injection to static server-rendered HTML regardless of page rendering mode. This alone materially improves schema visibility to training crawlers.

10. Content Signals LLM Crawlers Prioritize

Within the pages LLM crawlers are permitted to access, they apply an additional layer of selection — evaluating content quality signals to determine which passages to ingest with the highest confidence weighting. Understanding these signals allows enterprise teams to structure content that earns consistent high-confidence inclusion across all crawler types.

Signal 01
Direct Definitional Opens
Sections that open with a complete direct answer to the implied question of their subheading. Training crawlers mark these passages as high-confidence extraction candidates; inference crawlers use them as the primary retrieval target for matching queries.
Signal 02
Verified Numerical Data
Specific percentages, dates, measurements, and counts with named source attribution. LLMs weight factual specificity as a quality signal — precise data-bearing passages rank higher in retrieval confidence than equivalent passages with qualitative-only claims.
Signal 03
Schema.org Entity Declarations
JSON-LD structured data with correct Schema.org types (Article, FAQPage, HowTo, TechArticle, Organization, Product) supplies explicit machine-readable page classification that training crawlers prefer over inferred classification from body text.
Signal 04
Semantic Self-Containment per Chunk
Passages that are complete and coherent when read in isolation from surrounding context — not dependent on information established in a previous section. RAG retrieval operates at the chunk level; passages requiring cross-chunk context are retrieved with lower confidence.
Signal 05
Consistent Internal Entity References
Pages that reference their own key entities (the brand, product names, domain concepts) with consistent terminology across all mentions. Inconsistent naming — using five different labels for the same concept — fragments entity resolution and reduces retrieval precision.
Signal 06
Factual Neutrality of Tone
Training crawlers apply quality filters that flag heavily promotional, emotionally coded, or subjective content as low-reliability. Sections written in objective, declarative prose — stating what something is, how it works, and what evidence supports it — score significantly higher in ingestion confidence than equivalent sections with persuasive framing.

11. The Three-File AI Access Stack

Comprehensive LLM crawler management requires three distinct files operating in coordination. Each serves a different function in the AI access pipeline, and no single file can replace the others.

access stack overview ┌─────────────────────────────────────────────────────────────────┐ │ AI CRAWLER ACCESS STACK │ ├─────────────────────────────────────────────────────────────────┤ FILE 1: /robots.txt Layer: Access Control Purpose: Permit or deny crawler access per URL path Audience: All crawlers — per user-agent directive Enforcement: Voluntary (IP blocking as fallback) FILE 2: /llms.txt Layer: Content Relevance Signal Purpose: Guide AI agents to highest-value LLM-readable pages Audience: LLM crawlers + AI agents that support the standard Enforcement: Adoption-based (Perplexity, Anthropic confirmed) FILE 3: /sitemap-ai-priority.xml Layer: Crawl Discovery Queue Purpose: Supply AI crawlers with URL list + freshness metadata Audience: All crawlers that consume XML sitemaps Enforcement: Standard — universal crawler consumption ├─────────────────────────────────────────────────────────────────┤ All three declared in robots.txt header for cross-discovery └─────────────────────────────────────────────────────────────────┘

Each file complements the others. robots.txt sets the boundaries of what AI crawlers may access. The AI-priority sitemap tells crawlers which allowed pages to visit first. llms.txt tells AI agents — particularly those operating as research assistants rather than web crawlers — which content is most relevant to retrieve for any given information need. Together, the three files constitute a complete LLM access management architecture.

12. GEO Access Decision Framework

The access decision for each LLM crawler should be driven by three variables: the commercial value of citation visibility on that crawler's output surface, the IP risk of contributing content to that crawler's training pipeline, and the organization's competitive differentiation strategy. The following framework maps these variables to access recommendations.

Crawler Citation Surface Value Training IP Risk Default Recommendation
Google-Extended Critical — AI Overviews Moderate Allow broadly
OAI-SearchBot High — ChatGPT citations Low (inference only) Allow broadly
PerplexityBot High — direct URL citations Low (inference only) Allow broadly
GPTBot Moderate — training influence Moderate Allow content; block IP
ClaudeBot / anthropic-ai Moderate — growing enterprise use Moderate Allow content; block IP
Applebot-Extended Growing — iOS install base Moderate Allow — emerging priority
Meta-ExternalAgent Moderate — consumer surfaces Moderate Allow content; block IP
YouBot B2B / researcher audience Low (inference) Allow broadly
Amazonbot Alexa / voice commerce Low Allow broadly
cohere-ai Enterprise RAG pipelines Moderate Context-dependent
Quarterly Review Obligation

The LLM crawler landscape changes faster than any other category in technical SEO. New crawlers launch, existing crawlers update their user-agent strings, and pipeline roles shift as AI products evolve. Review this configuration quarterly — verify each crawler's current user-agent string against official documentation, audit server logs for unrecognized agents, and reassess the commercial value of each crawler's citation surface as AI search market shares shift.

13. Intelligence Briefing: FAQ

Answers to the most common enterprise questions about LLM crawlers, the llms.txt protocol, and AI search access strategy.

What is an LLM crawler?+
An LLM crawler is an automated web agent operated by an AI lab or AI search product that traverses the public web to collect content for one of two purposes: (1) training large language models on web-scale text corpora, or (2) performing real-time retrieval-augmented generation (RAG) to source answers for live AI search queries. The two crawler types operate on different schedules, serve different pipeline stages, and should be managed with different access policies.
What is llms.txt?+
llms.txt is an emerging web standard — proposed in 2024 and gaining adoption through 2025–2026 — that provides LLM crawlers with a structured, Markdown-formatted index of a website's most LLM-relevant content. Placed at /llms.txt on the domain root, it guides AI agents to the highest-value pages for retrieval, summarization, and citation without requiring crawlers to traverse the entire site architecture. Perplexity AI and Anthropic have confirmed adoption of the standard as a supported discovery signal.
What is the difference between a training crawler and an inference crawler?+
A training crawler (such as GPTBot for OpenAI training data or ClaudeBot for Anthropic) operates on a scheduled batch basis to collect content that will be used to update LLM model weights — building the model's static knowledge base. An inference crawler (such as PerplexityBot or OAI-SearchBot) operates on a query-triggered basis, fetching content in real-time when a user's query requires live web retrieval to generate an answer. Training crawlers build what the model knows; inference crawlers extend it dynamically at query time. The distinction matters for access policy: training crawlers carry higher IP risk; inference crawlers carry higher immediate citation value.
Does Google-Extended affect Google Search rankings?+
No. Google-Extended is a separate crawler from Googlebot and controls only Google's AI products — Gemini and Google AI Overviews. Blocking Google-Extended with a robots.txt Disallow directive has zero effect on a page's inclusion in traditional Google Search results or its organic ranking. However, it will prevent the page from being cited in AI Overviews and used in Gemini responses, directly reducing GEO visibility on Google's AI surfaces. The two agents must be managed entirely independently.
How does ClaudeBot differ from GPTBot in crawl behavior?+
ClaudeBot (Anthropic) operates primarily as a training data crawler on a batch schedule. GPTBot (OpenAI) also operates on a batch schedule for training data, but OpenAI additionally deploys a separate inference crawler — OAI-SearchBot — that powers ChatGPT's real-time web browsing feature. This means OpenAI requires two separate robots.txt directives to manage both pipeline stages, while Anthropic's inference retrieval currently operates through separate mechanisms not governed by the ClaudeBot user-agent. Both ClaudeBot and GPTBot require raw HTML — neither executes JavaScript.
What content should be listed in llms.txt?+
llms.txt should list a site's highest-value LLM-readable content: definition and FAQ pages, how-to and process guides, original data reports, entity overview pages, and comprehensive pillar content with verified factual claims. Each entry should include the URL and a one-sentence description of what the page contains and what queries it addresses. Exclude thin pages, purely promotional content, pages behind authentication, and any content you would exclude from a GEO-optimized sitemap. The file should be curated, not exhaustive — save comprehensive URL coverage for llms-full.txt.
Which LLM crawlers respect llms.txt?+
As of July 2026, llms.txt has confirmed adoption as a discovery signal by Perplexity AI and Anthropic. OpenAI and Google have acknowledged the standard without formal adoption commitments. The file is additive — crawlers that do not yet read it are entirely unaffected by its presence, making implementation a zero-risk GEO action regardless of current adoption breadth. As the standard matures, adoption is expected to expand across the crawler ecosystem.
Can AI crawlers index JavaScript-rendered content?+
Most LLM training crawlers cannot execute JavaScript and index only the raw HTML server response. Google-Extended is the notable exception — it has full JavaScript execution capability inherited from Google's rendering infrastructure. Inference crawlers vary: PerplexityBot has partial JS rendering capability; most others do not. Content that exists exclusively in JavaScript-rendered DOM — including JSON-LD schema injected dynamically, FAQ sections loaded via AJAX, or content inside React components — is invisible to most LLM training crawlers. Server-side rendering (SSR) or static site generation (SSG) is required for reliable AI crawler indexing of JavaScript-heavy sites.

Audit Your LLM Crawler Configuration

Most enterprise sites have incomplete robots.txt coverage for AI crawlers, no llms.txt, and no visibility into which agents are actually reaching their content. The Search Intelligence Hub closes all three gaps with automated crawler auditing and GEO access optimization.

Schedule Technical Briefing