Service
Technical GEO that lets AI crawlers reach and read your site
If an AI crawler cannot reach a page, or cannot read it, nothing else you do will matter. We check and fix crawler access, robots rules, structured data and llms.txt.
Technical fixes are Week 2 of the $999 GEO Pilot. Crawler facts below are as of October 2026.
Mentions and sources beyond your site.
Answer ready pages and FAQs.
Schema, entities and clean markup.
Crawlers can fetch and read.
Most technical problems are invisible to a person browsing your site. A page can look perfect and still be blocked from a crawler by a firewall rule, hidden behind a script, or contradicted by a canonical tag. Engines do not email you about it. They quietly use someone else.
Below we explain the crawlers you will meet, what the official documentation says about each, how to set robots.txt for AI crawlers, what schema and llms.txt do and do not do, and how we deliver the work. It sits inside our wider generative engine optimization services.
The crawlers
The AI crawlers that matter, and what each one is for
Not all AI bots do the same job. The big providers now separate training, search indexing and live user requests into different user agents. That lets you make different choices for each. The details below come from each provider's own documentation, read in October 2026. They change, so confirm before you edit production rules.
OpenAI documents three. OAI-SearchBot is used to surface sites in ChatGPT's search features. GPTBot crawls content that may be used to train OpenAI's generative models. ChatGPT-User handles certain user actions in ChatGPT and Custom GPTs, for example when a user asks a question that makes it visit a page. OpenAI says each setting is independent, so you can allow OAI-SearchBot and disallow GPTBot. It also says robots.txt changes can take about 24 hours to take effect for search, and that for ChatGPT-User, because actions are user initiated, robots.txt rules may not apply.
Anthropic documents three. ClaudeBot collects content that may be used for model training. Claude-User visits pages when a Claude user asks a question that needs web access. Claude-SearchBot indexes content to improve search results. Anthropic says its bots honor standard robots.txt directives and that it supports the non standard crawl delay extension. It says it does not publish IP ranges at present and advises against blocking by IP.
Google is different. Google AI Overviews and AI Mode use Google Search. Google's documentation says a page needs to be indexed and eligible to show a snippet to be a supporting link, and that there are no additional technical requirements. Googlebot rules therefore control access. Google-Extended is a separate robots.txt token that controls whether content is used for Gemini training and grounding in some products. Google states it does not affect inclusion in Google Search and is not a ranking signal.
Perplexity documents PerplexityBot, which crawls and indexes content for its search engine and which you can allow or disallow in robots.txt. Microsoft Copilot relies on Bing's index, so Bingbot access and Bing indexing matter. For Bing's answer features, Microsoft documented in September 2023 that the NOCACHE and NOARCHIVE robots directives control how content is used in its chat answers. Check Microsoft's current guidance for any updates.
Keep a list of the exact user agent names you allow, and the date you checked the vendor docs. It saves hours when something breaks.
Training
Business choice
- GPTBot
- ClaudeBot
- Google-Extended token
Search
Surface your pages
- OAI-SearchBot
- Claude-SearchBot
- PerplexityBot
- Googlebot
- Bingbot
User actions
Live requests
- ChatGPT-User
- Claude-User
Compare
AI crawler reference table (as of October 2026)
| Crawler | Operator | Purpose per official docs | Your control |
|---|---|---|---|
| OAI-SearchBot | OpenAI | Surfaces sites in ChatGPT search features | robots.txt. Changes can take about 24 hours for search |
| GPTBot | OpenAI | Crawls content that may be used to train generative models | robots.txt, independent of OAI-SearchBot |
| OpenAI | Certain user initiated actions in ChatGPT and Custom GPTs | OpenAI says robots.txt rules may not apply | |
| Anthropic | Collects content that may be used for training | robots.txt, crawl delay supported | |
| Anthropic | Fetches pages when a Claude user asks a question needing web access | robots.txt | |
| Anthropic | Indexes content to improve search result quality | robots.txt | |
| Perplexity | Crawls and indexes content for Perplexity search | robots.txt | |
| Token controlling use for Gemini training and grounding | robots.txt token. Does not affect Search inclusion | ||
| Crawls for Google Search, which feeds AI Overviews and AI Mode | robots.txt and snippet controls | ||
| Microsoft | Crawls for Bing, which Copilot answers rely on | robots.txt and robots meta directives |
Blocking a training bot does not block a search bot, and the reverse is also true. Decide each one separately. Our post on AI crawlers and robots.txt: what to allow covers the trade offs.
robots.txt
robots.txt for AI crawlers: how we set it
The right rule depends on what you want from each engine. There is no universal setting.
A common sensible starting point for a business that wants to be found is to allow the search and user facing bots, and then decide on training bots as a separate business choice. Some owners block training crawlers for content or licensing reasons while allowing search crawlers, and that is a legitimate position. We set out the options and you decide.
A rule is written per user agent, for example a User-agent line naming OAI-SearchBot followed by Allow or Disallow lines. A broad Disallow under the wildcard user agent can block AI search bots by accident, which is one of the most common problems we find. So we read the whole file, including old lines from plugins and previous developers. Our AI Crawler Robots.txt Generator helps you draft rules, and the AI Crawler Access Checker tests the result.
- One rule per crawler, matched to a business decision
- No accidental wildcard block on key folders
- robots.txt kept at the root of each subdomain
- Rules retested after the vendor's stated delay
Record what AI engines say today.
Open access and repair the foundation.
Make priority pages answer ready.
Test again and report.
Search and user bots
- Allow them if you want to be found
- Rules are written per user agent
- Retest after the stated delay
Training bots
- A separate business choice
- Some owners block them for licensing reasons
- Blocking one does not block a search bot
Beyond robots.txt
Other reasons a crawler never reaches your page
A permissive robots.txt is only the first gate. These are the others.
Firewall and bot protection
Security tools sometimes challenge or block unfamiliar bots even when robots.txt allows them. We test real requests, not just the file.
CDN and hosting rules
Rate limits, geo blocks and managed bot settings can cut off crawlers. Anthropic notes that it does not publish IP ranges, so allowlisting by IP is not a reliable method for every bot.
Rendering
If key text only appears after heavy scripts run, a simple crawler may see an empty page. See GEO for JavaScript and headless sites.
Canonicals and duplicates
Wrong canonical tags and parameter duplicates point engines at the wrong URL or split signals.
Sitemaps
A clean XML sitemap with accurate dates helps discovery. Dead URLs and redirects weaken it.
Speed and errors
Slow responses, soft errors and long redirect chains make pages harder to fetch reliably.
Structured data
Schema for AI search: useful, but not magic
Structured data is machine readable labelling that sits alongside your visible content, usually as JSON LD using the schema.org vocabulary. It tells a system that a page describes an Organization, a Service, a Product, a Person or a set of questions and answers. That helps with entity clarity, which means making it unmistakable who you are and what you offer.
Be careful with claims. Google's documentation for AI features says no special schema is required to appear in AI Overviews or AI Mode. We do not tell clients that schema forces a citation. We use it because it removes ambiguity, supports rich results where Google offers them, and gives every engine one consistent set of facts.
The rule we follow is simple: markup must match what a visitor can see. Organization details, service descriptions, product data, authors and FAQs are all fair game when they are on the page. Markup for content that is not visible is a risk and a waste. See schema markup for AI search for the longer explanation, and the FAQ Schema Generator for a quick start.
- Organization with name, URL, logo and same as profile links
- Service or Product markup on the matching pages
- FAQ markup only where the FAQ is visible
- Validated, then rechecked after template changes
llms.txt
llms.txt: what it is and when we add one
llms.txt is a proposed convention: a plain text or Markdown file at the root of your site that lists your key pages with short descriptions, written for language models. It is a community proposal, not an official standard of any search engine.
Google's AI features documentation says you do not need new machine readable files or AI text files to appear in AI Overviews and AI Mode. We have not seen the other providers above document that they rely on llms.txt for citations. So we do not sell it as a ranking lever.
We add one when it is cheap and helpful. It can be a useful, tidy map of your best pages for tools and agents that do read it, and it forces you to decide which pages matter. If a client prefers not to publish one, nothing important is lost. The llms.txt Generator creates a draft, and llms.txt: do you need one? gives our full view.
Treat llms.txt as housekeeping with a small upside, not as a strategy.
How we deliver
Technical GEO inside the 30 day Pilot
- 1
Week 1: Find the blockers
We check AI crawler access, review robots.txt, firewall and CDN behaviour, and run a technical and entity audit alongside the baseline test of up to 20 buyer prompts across five engines.
- 2
Week 2: Implement the fixes
We change crawler access and robots rules, sitemap, canonicals and structured data, and add llms.txt if useful. We work in an admin login, a staging site or a Git repo, and you approve changes before they go live.
- 3
Week 3: Support the rewrites
Technical fixes make sure up to 10 rewritten priority pages are crawlable, marked up and consistent.
- 4
Week 4: Verify and hand over
We recheck access, retest the same prompts, and hand over a report with before and after results and a 90 day roadmap.
Quick audit
How do you check whether AI crawlers can reach your website?
- 1
Read your robots.txt
Open yourdomain.com/robots.txt. Look for a blanket Disallow for all user agents, and for rules that name AI crawlers. Note anything inherited from a plugin or a hosting default.
- 2
Test with the free checker
The AI Crawler Access Checker shows which named crawlers your rules allow or block.
- 3
Request a page as a crawler would
From a terminal, send a request with a crawler style user agent and read the status code. A 200 means served. A 403 or a challenge page means a firewall is stopping it, even if robots.txt allows it.
- 4
View the raw HTML
Use view source, not the browser inspector. If your main text is missing from the source, a crawler that does not run scripts will not see it.
- 5
Check the sitemap
Confirm it lists your important canonical pages, returns 200, and is declared in robots.txt.
- 6
Check for noindex and snippet controls
Look for robots meta tags and X-Robots-Tag headers on key pages. A noindex or a nosnippet directive can remove a page from search based answers.
- 7
Write down what you found
List each blocker, the page or rule, the owner and the fix. That list is the start of the work.
Compare
Which robots.txt policy fits which kind of business?
| Business situation | Typical policy | Reason |
|---|---|---|
| Wants to be named in AI answers, comfortable with training use | Allow search and training bots | Maximum reach, simplest rules |
| Wants to be named in AI answers, not comfortable with training use | Allow search and user bots, disallow training bots | Keeps presence in AI search while limiting training collection. Whether this lowers visibility varies by engine |
| Premium or paywalled content | Allow public marketing pages, restrict gated paths | Protect paid material, keep the pages that win customers open |
| Publisher with licensing concerns | Decide per bot with legal input | The choice is commercial and legal, not only technical |
| Not sure | Start from the generator and test | Use the robots.txt generator, then review with the checker |
Policy is a business decision. We implement the choice you make and document it. We do not decide your training policy for you.
Rendering
Why does JavaScript rendering matter for AI search?
Some crawlers run scripts and some do not. Even those that do may run them later or less completely than a browser. If your service descriptions, prices, reviews or FAQs appear only after client side scripts run, a crawler that fetches raw HTML may see an empty shell. This is common on single page apps and on some headless builds.
The fix is not to abandon your framework. It is to make sure the content that matters is in the HTML the server returns. Server side rendering, static generation, or prerendering of key pages usually does this. For a Shopify or WordPress site, the common cause is a page builder or a plugin that loads blocks late, or tabs and accordions that fetch their content on click. Our post on GEO for JavaScript and headless sites covers the options.
The test is quick. Compare the raw source with the rendered page for your top ten pages. Whatever text is in one and not the other is at risk.
- Main answer text present in view source
- Prices, specs and FAQs not injected after load
- Internal links are real anchor links, not click handlers
- Lazy loaded content not required to understand the page
Compare
Which structured data types fit which kind of page?
| Page type | Schema types to consider | What must match the visible page |
|---|---|---|
| Home or About | Organization, WebSite | Legal or trading name, logo, contact details, social profiles you actually run |
| Service page | Service, plus Organization link | Service name, area served, a description that appears in the text |
| Product page | Product with Offer | Name, price, currency, availability. See ecommerce GEO |
| Local page | LocalBusiness or a more specific subtype | Address, phone, hours as shown on the page. See local GEO |
| Article or guide | Article with author and dates | Headline, author, published and modified dates shown on the page |
| FAQ block | FAQPage | Questions and answers exactly as visible. Generate with the FAQ Schema Generator |
Validate with the Schema.org validator and Google's Rich Results Test. Passing a validator means the syntax is right, not that an engine will use it.
Platforms
Platform specific places we look first
The same checks, different likely culprits.
WordPress
SEO plugin settings that noindex pages, robots.txt edited by plugins, caching plugins that serve stale markup, and theme blocks that load text late. See GEO for WordPress.
Shopify
Theme level schema duplicates, app injected markup that conflicts, and limited direct control over robots.txt, which uses a template. See GEO for Shopify.
WooCommerce
Product schema from plugins disagreeing with visible price, variation handling, and filtered URLs creating duplicates. See GEO for WooCommerce.
Custom and headless
Client side rendering, missing canonical logic, and environment specific robots rules left on after launch. See GEO for custom websites.
CDN and firewall
Bot protection that challenges unknown crawlers. Fix by allowing named crawlers by verified method, not by turning protection off.
Hosting and speed
Slow or erroring responses cause crawlers to give up. We look at server errors and timeouts in logs where you can share them.
Canonicals and duplicates
How do canonicals, redirects and duplicate URLs affect AI visibility?
If the same page exists at several URLs, engines have to guess which to trust, and your signals split. Common causes are tracking parameters, trailing slash variants, http and https versions, www and non www, and filtered product listings. A canonical tag tells crawlers the preferred URL. Redirects send old addresses to current ones.
We check that each important page has one preferred URL, that canonicals point to live, indexable pages, and that redirect chains are short. We also check that the sitemap lists canonical URLs only. These fixes are unglamorous and they matter, because every cited link should resolve cleanly to the page you want people to land on.
One more check is language and region. If you publish in Arabic and English, each version needs its own URL and clear hreflang relationships. Our post on GEO for multilingual sites explains the setup.
Verification
How do we verify each technical fix actually worked?
A change is not done when it is published. It is done when it is verified. For crawler rules we retest with the checker and a direct request. For schema we run validators and compare to the rendered page. For sitemaps we confirm submission in Google Search Console and Bing Webmaster Tools. For rendering we compare source and rendered text again.
We then keep a change log: what changed, where, when, who approved it, and how to roll it back. If something breaks, you can undo it. That log is part of the Pilot handover, so your developer or any future provider sees exactly what was done and why.
Recrawling takes time. OpenAI says robots.txt changes can take about 24 hours for search. Other engines vary, and we do not claim a fixed timeline. The week 4 retest records what has changed by then and what is still pending.
The problem
Limits and honest cautions
Allowing a crawler does not buy a citation
Access is a requirement, not a reward. Engines still choose which sources to use.
Vendor behaviour changes
Bot names, purposes and policies get updated. Our facts are dated October 2026. Recheck official documentation before big changes.
Some requests ignore robots.txt
OpenAI states robots.txt rules may not apply to ChatGPT-User, since actions are user initiated. Blocking those needs other controls and a business reason.
Hidden costs of blocking
Blocking a search bot can remove you from that engine's answers. Blocking a training bot may have no immediate visible effect. Know which you are doing.
FAQ
Questions people ask
What is technical GEO?
It is the technical side of generative engine optimization: making sure AI crawlers can reach your pages, that the content is readable in the HTML, and that structured data and signals are consistent. It prepares the ground for content and authority work.
Should I allow GPTBot and ClaudeBot?
That is a business decision. They are described by OpenAI and Anthropic as training related crawlers, separate from the search and user facing bots. You can allow search bots like OAI-SearchBot and Claude-SearchBot and still disallow the training ones.
Will blocking GPTBot remove me from ChatGPT?
According to OpenAI's documentation each crawler setting is independent. OAI-SearchBot is the one tied to ChatGPT search. Disallowing GPTBot signals you do not want your content used for model training. It is not the same as opting out of search.
Do I need llms.txt?
Usually no, and it is not a ranking factor we promise. Google says you do not need AI text files for its AI features. We add one when it is cheap to maintain and gives a clear map of your key pages.
Is Google-Extended needed for AI Overviews?
No. Google says Google-Extended does not affect inclusion in Google Search. AI Overviews and AI Mode depend on Google Search eligibility, meaning pages that are indexed and can show a snippet.
Does schema markup make AI engines cite me?
No. Google states no special schema is required for its AI features. Schema helps make your entity and page facts unambiguous, which is useful, but it is not a guarantee of anything.
Can you do this on Shopify or WordPress?
Yes. We work on WordPress, WooCommerce, Shopify, custom code and headless sites. Some platforms limit robots.txt or header edits, and we work within that or tell you what is possible.
How long do robots.txt changes take to show up?
OpenAI says about 24 hours for its search crawler. Other vendors do not give a fixed time. We recheck access during Week 4 and report what we find.
How do I know if my firewall is blocking AI crawlers?
Robots.txt may allow a crawler while your firewall or CDN still blocks it. Request a page with the crawler's user agent and check for a 403 or a challenge page. Server logs and your CDN's bot reports also show blocked requests. A blocked request is invisible in analytics, which is why this problem lasts so long.
What is the most common technical GEO problem?
Content that crawlers cannot reach or cannot read. That means blocked bots, pages that need scripts to show their text, noindex tags left from a launch, and canonicals that point to the wrong place. They are boring and fixable, and fixing them comes before any content work.
Keep reading
Guides on this topic
AI search traffic in Google Analytics: how to track ChatGPT and AI referrals in GA4
GA4 can show some visits from ChatGPT and other AI tools, but not all. This guide explains how channels and referrers work, how to set up a report, and where the data stops.
Read moreAI visibility metrics: citation share, share of voice and mention rate defined
Mention rate, citation rate, citation share and AI share of voice are often used loosely. This guide defines each one, shows how to compute it from a fixed prompt set, and explains the limits.
Read moreHow to get mentioned in ChatGPT: what to do, what to skip
No one can guarantee a ChatGPT mention, but you can remove blockers, make your facts clear and earn the sources it reads. A practical, honest checklist.
Read moreStart your GEO Pilot
Tell us your website and the five questions your buyers ask. We reply within one working day with a clear next step.
- Fixed $999, one time
- We implement the work for you
- Any platform, delivered in 30 days