Tag: Google-Extended

  • robots.txt for AI Crawlers (2026): Which Bots to Allow or Block — GPTBot, ClaudeBot, Google-Extended & More

    robots.txt for AI Crawlers (2026): Which Bots to Allow or Block — GPTBot, ClaudeBot, Google-Extended & More

    Short answer: In 2026 the big AI companies split their bots by job. One set crawls pages for model training (GPTBot, ClaudeBot, CCBot, and the Google-Extended and Applebot-Extended control tokens). Another set fetches pages so AI search and answer engines can cite and link you (OAI-SearchBot, Claude-SearchBot, PerplexityBot, plus regular Googlebot, bingbot and Applebot). Most publishers who want traffic should allow the search bots and decide separately on the training bots. Blocking everything with one wildcard rule usually removes you from AI answers and does nothing about training data that was already collected.

    This guide covers each major AI user agent, what it does according to the vendor’s own documentation, copy-paste robots.txt templates for three common policies, how to apply them on WordPress (AIOSEO or a filter), and how to confirm the rules work by checking your server logs. If you are new to generative engine optimization, start with our GEO guide and come back here for the technical setup.

    Why robots.txt matters more for AI search in 2026

    A robots.txt file is a plain-text file at the root of your host (for example, https://example.com/robots.txt) that tells crawlers which paths they may fetch. The format is standardised in RFC 9309 (Robots Exclusion Protocol): a crawler follows the group that names its product token, otherwise it follows the User-agent: * group, and the most specific (longest) matching path rule wins.

    Three things changed the stakes:

    • Training and search are now separate switches. OpenAI, Anthropic and Perplexity each document a search crawler that is distinct from any training crawler. Blocking one does not block the other.
    • AI answers send real visitors. ChatGPT search, Claude, Perplexity, Copilot and Google’s AI Overviews and AI Mode all show source links. If a search bot cannot fetch your page, it cannot cite it. You can measure that traffic in GA4. See our guide to tracking AI referral traffic.
    • Blocking is common at the top of the web. A ContextFetch scan of the 10,000 most-linked domains (October 19, 2026) found that 13.6% of sites with readable rules block GPTBot site-wide and 20.3% block at least one of 17 AI crawlers. Search-focused bots were blocked much less often: 5.2% for OAI-SearchBot and 4.6% for Claude-SearchBot.

    The takeaway: large publishers mostly block training bots and leave the citation bots alone. Small and mid-size sites that depend on discovery have even more reason to take the same approach.

    AI crawler cheat sheet: what each bot does

    The table below covers the user-agent tokens you are most likely to see in logs or want to control. The “Purpose” column is a summary of each vendor’s documentation, which is linked in the sections that follow.

    robots.txt tokenCompanyPurposeHonors robots.txt?Typical choice for a traffic-driven site
    OAI-SearchBotOpenAISurfaces sites in ChatGPT search answersYes (changes take ~24h)Allow
    GPTBotOpenAICrawls content that may train OpenAI foundation modelsYesYour choice
    ChatGPT-UserOpenAIFetches a page when a ChatGPT user or GPT action asks“robots.txt rules may not apply”Allow
    Claude-SearchBotAnthropicIndexes content to improve Claude search resultsYesAllow
    ClaudeBotAnthropicCollects content that may be used for model trainingYes (also honors Crawl-delay)Your choice
    Claude-UserAnthropicFetches pages for user-initiated Claude requestsYesAllow
    PerplexityBotPerplexitySurfaces and links sites in Perplexity search; not for trainingYes (up to 24h)Allow
    Perplexity-UserPerplexityUser-triggered fetches inside PerplexityGenerally ignores robots.txtAllow
    GooglebotGoogleGoogle Search, including AI Overviews and AI ModeYesAllow (never block)
    Google-ExtendedGoogleControl token for Gemini training and grounding; not a separate crawlerYesYour choice
    ApplebotAppleSpotlight, Siri and Safari search; data may also feed Apple AIYesAllow
    Applebot-ExtendedAppleControl token: opt out of Apple foundation-model trainingYesYour choice
    bingbotMicrosoftBing search and Copilot grounding (controlled with meta tags)YesAllow
    CCBotCommon CrawlOpen web dataset widely used to train AI modelsYesYour choice

    OpenAI: OAI-SearchBot vs GPTBot vs ChatGPT-User

    OpenAI’s crawler documentation describes the settings as independent. Sites that block OAI-SearchBot will not be shown in ChatGPT search answers, although they can still appear as navigational links. Blocking GPTBot signals that your content should not be used to train OpenAI’s generative AI foundation models. If both are allowed, OpenAI may reuse one crawl for both purposes to avoid duplicate crawling. Search changes take roughly 24 hours to take effect. ChatGPT-User handles fetches that a user starts, and OpenAI says robots.txt rules may not apply to it. OpenAI publishes IP ranges for each bot (for example openai.com/searchbot.json) so you can check whether a request really came from OpenAI.

    Anthropic: ClaudeBot, Claude-SearchBot, Claude-User

    Anthropic’s help-center article lists three bots. Restricting ClaudeBot signals that future content should be excluded from training datasets. Disabling Claude-SearchBot or Claude-User “may reduce your site’s visibility” in Claude’s user-directed search. Anthropic honors the non-standard Crawl-delay directive and says that blocking by IP address may not reliably opt you out, because it can stop the bot from reading your robots.txt in the first place. Older tokens such as anthropic-ai and Claude-Web still appear in many robots.txt files, but the current documentation lists only the three bots above.

    Google: Googlebot and the Google-Extended token

    This is the bot people misunderstand most. In Google’s list of common crawlers, Google-Extended is “a standalone product token” with no user-agent string of its own. It controls whether content Google crawls can be used to train future Gemini models and for grounding in Gemini Apps and Vertex AI. Google states that it “does not impact a site’s inclusion in Google Search nor is it used as a ranking signal.”

    AI Overviews and AI Mode are part of Google Search, so they rely on regular Googlebot. Disallowing Google-Extended will not remove you from AI Overviews. If you block Googlebot, you lose all of Google Search, not just the AI features. To limit how Google shows your content, use page-level controls such as nosnippet, data-nosnippet, max-snippet or noindex. Google covers these in its AI features documentation, and our summary of Google’s official AI search optimization guide explains what they mean for publishers.

    Perplexity, Apple and Microsoft

    Perplexity’s bot documentation says PerplexityBot surfaces and links websites in search results and “is not used to crawl content for AI foundation models.” Perplexity-User handles user-requested fetches and “generally ignores robots.txt rules.” Perplexity also publishes IP lists and sample WAF allow rules.

    Apple’s Applebot page explains that Applebot powers search in Spotlight, Siri and Safari. Applebot-Extended does not crawl at all. It only tells Apple whether Applebot-crawled data may train its foundation models, and Apple says Applebot-Extended rules are not considered in Search ranking. One detail to watch: if your robots.txt mentions Googlebot but not Applebot, Applebot follows your Googlebot rules.

    Microsoft has no separate Copilot crawler. Copilot draws on the Bing index that bingbot builds. Instead of robots.txt tokens, Bing uses robots meta tags: noarchive keeps a page out of Copilot answers and out of Microsoft’s model training, while nocache limits Copilot to the URL, title and snippet. Pages with either tag still appear in normal Bing search results.

    Three robots.txt templates you can copy

    Choose the policy that matches your business model. Each template keeps the default WordPress rules and adds AI-specific groups. A crawler obeys only the most specific group that names it, so any bot listed in its own group ignores the * rules. That is why every template repeats Disallow: /wp-admin/ where it matters.

    Policy A: Maximum AI visibility (allow everything)

    This is the right default for most blogs, SaaS marketing sites and affiliate or AdSense publishers whose growth depends on being discovered. You do not have to name AI bots at all. A standard WordPress file already allows them:

    User-agent: *
    Disallow: /wp-admin/
    Allow: /wp-admin/admin-ajax.php
    
    Sitemap: https://example.com/sitemap.xml

    Policy B: Allow AI search, block AI training (most popular)

    With this policy you can still be cited in ChatGPT, Claude, Perplexity and Google AI features, while opting out of the main training crawlers:

    # AI training crawlers / tokens: opt out
    User-agent: GPTBot
    User-agent: ClaudeBot
    User-agent: CCBot
    User-agent: Google-Extended
    User-agent: Applebot-Extended
    Disallow: /
    
    # AI search & citation crawlers: allow
    User-agent: OAI-SearchBot
    User-agent: Claude-SearchBot
    User-agent: PerplexityBot
    Disallow: /wp-admin/
    Allow: /wp-admin/admin-ajax.php
    
    # Everyone else (Googlebot, bingbot, Applebot...)
    User-agent: *
    Disallow: /wp-admin/
    Allow: /wp-admin/admin-ajax.php
    
    Sitemap: https://example.com/sitemap.xml

    RFC 9309 allows several User-agent lines to share one group, so you do not need to repeat the rules for every bot. Keep in mind that Google-Extended here affects only Gemini training and grounding, not AI Overviews.

    Policy C: Block AI except classic search engines

    Paywalled publishers and sites with licensing deals sometimes choose this. Expect to lose citations in ChatGPT search, Claude and Perplexity:

    User-agent: GPTBot
    User-agent: OAI-SearchBot
    User-agent: ClaudeBot
    User-agent: Claude-SearchBot
    User-agent: Claude-User
    User-agent: PerplexityBot
    User-agent: CCBot
    User-agent: Google-Extended
    User-agent: Applebot-Extended
    Disallow: /
    
    User-agent: *
    Disallow: /wp-admin/
    Allow: /wp-admin/admin-ajax.php

    Even under Policy C, user-triggered fetchers such as ChatGPT-User and Perplexity-User may still reach your pages, because their vendors say robots.txt may not apply to them. If you need a hard block, you have to enforce it at the server or firewall, as described below.

    Which policy should you choose?

    Site typeRecommended policyWhy
    Ad-supported blog / niche publisherA or BDiscovery drives revenue; AI citations add a new referral channel
    SaaS, agency or developer docsAYou want AI assistants to recommend and quote your product accurately
    E-commerceA or BProduct pages benefit from AI shopping and answer surfaces
    Paywalled news / premium researchB or CProtect licensable content; consider Bing nocache instead of a full block
    Private, staging or intranet sitesBlock everything + authrobots.txt is not security; use passwords or IP allowlists

    How to edit robots.txt for AI crawlers on WordPress

    WordPress does not ship a physical robots.txt file. It generates one dynamically. You have three clean ways to change it:

    Option 1: All in One SEO (AIOSEO) robots.txt editor

    1. Go to All in One SEO → Tools → Robots.txt Editor and switch on Enable Custom Robots.txt.
    2. Use Add Rule to create a group for each user agent (for example GPTBot, directive Block, value /), or use Import to paste one of the templates above.
    3. AIOSEO also offers a Block AI Crawlers setting with per-crawler checkboxes. Review it carefully: an “All AI Crawlers” selection can include search and citation bots you may want to keep.
    4. Click Save Changes, then open /robots.txt in a private window to confirm the output.

    AIOSEO’s robots.txt documentation walks through the rule builder screen by screen. Yoast, Rank Math and SEOPress include similar editors.

    Option 2: A small robots_txt filter

    If you prefer code, add a must-use plugin or a snippet in your child theme. This version adds Policy B’s training block:

    add_filter( 'robots_txt', function ( $output, $public ) {
        if ( ! $public ) {
            return $output; // site set to discourage search engines
        }
        $block = "User-agent: GPTBot\nUser-agent: ClaudeBot\nUser-agent: CCBot\n"
               . "User-agent: Google-Extended\nUser-agent: Applebot-Extended\nDisallow: /\n\n";
        return $block . $output;
    }, 10, 2 );

    Option 3: A static file

    A physical robots.txt in your web root overrides the virtual file WordPress generates. This works, but plugin rule editors stop affecting the output, so document the change for your team.

    Caching layers can serve an old copy of robots.txt for a while. If the live file does not change, clear your page cache (WP Rocket, LiteSpeed Cache and similar plugins), then fetch the file again.

    Verify the rules: logs, testers and spoofed bots

    robots.txt is a request, not an enforcement mechanism. After you deploy a policy, check what is actually happening:

    • Parse the live file. Use the robots.txt report in Google Search Console (Settings → robots.txt) to confirm Google fetched the latest version without errors.
    • Grep your access logs. On a typical Nginx or Apache server, grep -Ei "gptbot|oai-searchbot|claudebot|claude-searchbot|perplexitybot|ccbot" access.log | awk '{print $1, $7, $9}' shows which bots hit which URLs and with what status codes.
    • Verify identity. Anyone can fake a user-agent string. Check the requesting IP against the vendor’s published ranges (OpenAI, Perplexity and Apple publish JSON lists) or confirm it with reverse DNS, as Google and Apple document.
    • Watch for 403s on bots you allowed. Firewalls and bot-fight modes sometimes block allowed AI search crawlers, so robots.txt says yes while the server says no. Perplexity’s docs include sample WAF allow rules for this reason.

    Hard blocking at the server (optional)

    For bots that ignore robots.txt, or for aggressive scrapers that pretend to be AI bots, return a 403 at the web server. In Nginx, for example:

    map $http_user_agent $block_ai_training {
        default        0;
        ~*GPTBot       1;
        ~*ClaudeBot    1;
        ~*CCBot        1;
    }
    server {
        # ...
        if ($block_ai_training) { return 403; }
    }

    Be careful with this approach. Anthropic warns that IP or server blocks can stop its bot from reading robots.txt, and user-agent matching cannot detect spoofed requests. If you already run Nginx in front of WordPress, our Nginx reverse proxy guide for WordPress shows where server-level rules like this belong.

    Common robots.txt mistakes with AI bots

    • Blocking Google-Extended and expecting to leave AI Overviews. It does not work that way. AI Overviews and AI Mode use Googlebot. Use nosnippet or noindex if you really want out.
    • Blocking OAI-SearchBot or PerplexityBot by accident with a broad “block all AI” preset, then wondering why ChatGPT and Perplexity stopped citing you.
    • Forgetting group precedence. Once a bot has its own group, it ignores the * group, including your /wp-admin/ rules.
    • Expecting robots.txt to delete past training data. The rules apply to future crawling. Vendors describe them as signals about future use.
    • Using robots.txt to hide private content. A disallowed URL can still be indexed if other sites link to it, and the file itself is public. Use authentication instead.
    • Never re-checking. Vendors add new tokens over time. Review your AI rules every quarter, when you check your AI Mode and Preferred Sources visibility.

    FAQ

    Should I block GPTBot?

    Only if you object to your content being used to train OpenAI’s models. Blocking GPTBot does not remove you from ChatGPT search answers. That is controlled by OAI-SearchBot, according to OpenAI’s documentation. Most traffic-focused sites allow OAI-SearchBot, and many allow GPTBot as well.

    Does blocking Google-Extended remove my site from AI Overviews?

    No. Google says Google-Extended does not affect inclusion in Google Search and is not a ranking signal. It covers Gemini model training and grounding in Gemini Apps and Vertex AI. AI Overviews and AI Mode rely on Googlebot and respect snippet controls such as nosnippet.

    What is the difference between ClaudeBot and Claude-SearchBot?

    ClaudeBot collects content that may be used for model training. Claude-SearchBot indexes content to improve Claude’s search results, and Claude-User fetches pages when a person asks Claude something. Anthropic says disabling the search and user bots may reduce your visibility in Claude.

    Do AI crawlers actually obey robots.txt?

    The automated crawlers from OpenAI, Anthropic, Google, Apple, Perplexity and Common Crawl say they do. User-triggered fetchers are the exception: OpenAI says robots.txt rules may not apply to ChatGPT-User, and Perplexity says Perplexity-User generally ignores them. Unknown or spoofed scrapers can ignore robots.txt completely, so check your logs and use server rules where needed.

    How long until robots.txt changes take effect?

    OpenAI and Perplexity both say about 24 hours for their search systems. Google generally caches robots.txt for up to 24 hours. Clear any page cache first so crawlers fetch the new version.