Free GEO audit checklist: 36 checks to see if AI can read and use your website
A GEO audit checks whether AI crawlers and agents can reach your pages, understand them and act on them. The checklist below has the 36 checks our AI-Ready Kit runs, in six areas: content semantics, structured data, navigability, actionability, AI promptability and agent collaboration. Fix access first, then structure, then content.

- 36 checks, 6 areas: these are the rules the Web2Agents AI-Ready Kit runs on up to 25 pages of a site, scoring each area 0–5 for a total out of 30.
- Access comes first: OpenAI says sites opted out of OAI-SearchBot "will not be shown in ChatGPT search answers", though they can still appear as navigational links.
- Many AI crawlers don't run JavaScript: a December 2024 Vercel and MERJ analysis found that none of the major AI crawlers it studied rendered JavaScript, including GPTBot, OAI-SearchBot, ClaudeBot and PerplexityBot.
- Google doesn't need special AI files: Google says llms.txt and similar files neither help nor harm visibility in Google Search, and that structured data isn't required for its generative AI features.
- The thresholds are ours: limits like "15–65 characters" or "at least 150 words" are our working rules, not official limits from Google, OpenAI or anyone else.
How to use this checklist
Work through the six tables in order. Each row has the check, the rule we use to call it a pass, and why it matters. For checks that look at many pages, run them on your homepage plus your 10–25 most important pages (services, products, pricing, contact, top articles).
Mark each check pass, warning or fail. Then fix the fails in the access-related areas first (navigability and agent collaboration): if a crawler can't get in, nothing else on the page counts.
A few honest caveats before you start:
- Passing every check doesn't guarantee you'll be cited or recommended by any AI assistant. Nobody can promise that.
- Some checks matter more for AI agents and assistants than for Google. Google says foundational SEO practices, such as a clear technical structure and unique, valuable content, are the foundation for visibility in its generative AI features, so good SEO still does most of the work there.
- Two checks (form labels and button text) only apply if your site has forms. Without forms, they're replaced by one check: does the site offer any action at all?
1. Content semantics (7 checks)
Can a machine tell what each page is about and how it's organised?
| # | Check | Pass when | Why it matters |
|---|---|---|---|
| 1 | Exactly one H1 per page | At least 90% of pages have one H1, and the homepage does | The H1 is the clearest statement of what the page is |
| 2 | Logical heading order | At least 90% of pages go H1 → H2 → H3 without skipping levels | Headings are the outline an AI uses to split and quote your page |
| 3 | Semantic landmarks | The homepage uses <main> plus at least two of <nav>, <header>, <footer> |
Separates the real content from menus and footers |
| 4 | Language declared | Every page has <html lang="…"> |
Tells crawlers which language the text is in |
| 5 | Unique, descriptive titles | At least 90% of pages have a unique title of 15–65 characters | Titles are often the first thing an AI search tool sees in results |
| 6 | Unique meta descriptions | At least 90% of pages have a unique description of 50–160 characters | A short summary that search tools and assistants can show |
| 7 | Image alt text | At least 95% of images have an alt attribute |
Crawlers can't see images; alt text says what they show |
Google's title link guidelines ask for a title on every page that is "descriptive and concise", and warn against vague titles like "Home".
2. Structured data (7 checks)
Does the site describe itself in a machine-readable format?
| # | Check | Pass when | Why it matters |
|---|---|---|---|
| 8 | JSON-LD present | At least 80% of pages have a JSON-LD block | The standard way to state facts in code |
| 9 | JSON-LD is valid | No block has a syntax error | One broken bracket and the whole block is ignored |
| 10 | Organization described | An Organization or LocalBusiness block exists (name, logo, URL, contact, sameAs) |
Says who is behind the site |
| 11 | WebSite entity | The homepage has a WebSite block | Names the site and links it to the organisation |
| 12 | Absolute URLs in schema | url, @id, logo and item values use full https:// URLs |
Relative URLs often break when the data is read elsewhere |
| 13 | Open Graph tags | At least 90% of pages have og:title, og:description and og:image |
Used when links are shared and previewed |
| 14 | Breadcrumbs on inner pages | At least 80% of inner pages have BreadcrumbList data | Shows where each page sits in the site |
Google says it uses structured data "to understand the content of the page" and to gather information about things like companies (intro to structured data). But in its guide to optimizing for generative AI features it also says structured data "isn't required for generative AI search, and there's no special schema.org markup you need to add". So treat this area as clarity, not a magic switch. Validate your blocks with the Schema Markup Validator.
3. Navigability (7 checks)
Can a crawler find and fetch your pages?
| # | Check | Pass when | Why it matters |
|---|---|---|---|
| 15 | HTTPS and one host | The site uses HTTPS, and www/non-www redirects to one version | Avoids duplicate copies of every page |
| 16 | robots.txt with explicit rules | /robots.txt returns 200 with at least one user-agent group and no syntax problems |
Crawlers read it before anything else |
| 17 | XML sitemap | A sitemap exists and is listed in robots.txt with a Sitemap: line |
Lists every page you want found |
| 18 | Absolute canonical URLs | At least 90% of pages have <link rel="canonical"> with a full URL |
Says which version of a page is the real one |
| 19 | Pages return 200 | Every crawled page responds with HTTP 200 | Broken pages and redirect chains waste crawls |
| 20 | Real links from the homepage | The homepage has at least 5 internal <a href> links |
Crawlers follow links, not buttons wired up with JavaScript |
| 21 | No accidental noindex | No important page has noindex |
One leftover tag can hide a page |
Two details catch people out. Google says robots.txt "is not a mechanism for keeping a web page out of Google" (robots.txt introduction); use noindex for that. And if a page is blocked in robots.txt, a crawler never sees its noindex tag (block indexing with noindex).
4. Actionability (5 checks)
Could an AI agent acting for a customer contact you, book or buy?
| # | Check | Pass when | Why it matters |
|---|---|---|---|
| 22 | Form fields have labels | Every field has a <label> or aria-label (placeholder text alone counts against you) |
An agent needs to know what each field is for |
| 23 | Buttons have clear text | No submit button without text | "Request a quote" says what happens; an empty icon doesn't |
| 24 | No hard CAPTCHA wall | No form is blocked by a CAPTCHA (a warning, not a fail) | CAPTCHAs stop spam, but also agents acting for real users; this is a business choice |
| 25 | Machine-readable contact | A mailto: or tel: link, or a ContactPoint in your schema |
The simplest action an agent can take is to reach you |
| 26 | Actions in schema | Schema describes an Offer, SearchAction, ContactPoint or similar | States what people can do on the site |
The W3C's forms tutorial says to "provide labels to identify all form controls", which helps screen readers and AI agents alike.
5. AI promptability (5 checks)
Is the content written and delivered so an AI can quote it?
| # | Check | Pass when | Why it matters |
|---|---|---|---|
| 27 | Readable without JavaScript | The raw HTML has at least 80% of the words you see in a browser | Many AI crawlers only read the raw HTML |
| 28 | Enough text per page | At least 85% of pages have 150+ words of readable text | Thin pages give an AI nothing to quote |
| 29 | Question-and-answer content | The site has FAQ-style questions and answers, or FAQPage data for a visible FAQ | Matches the way people ask AI assistants |
| 30 | Clear sentences | Average sentence length of 22 words or fewer | Short sentences are easier to quote correctly |
| 31 | Descriptive link text | No more than 5% of links say "click here", "read more" and the like | Link text tells crawlers what's on the other side |
Check 27 is the one most sites fail without knowing. Vercel and MERJ's analysis found none of the major AI crawlers they studied rendered JavaScript, naming OpenAI's GPTBot, OAI-SearchBot and ChatGPT-User, Anthropic's ClaudeBot and PerplexityBot, among others. Google's Gemini was the exception, because it uses Googlebot's infrastructure. To test it yourself, open a page with JavaScript turned off, or view the page source and search for a sentence from the middle of the page.
6. Agent collaboration (5 checks)
Does the site make its AI policy explicit and actually let the bots in?
| # | Check | Pass when | Why it matters |
|---|---|---|---|
| 32 | llms.txt published | /llms.txt returns 200 and starts with a Markdown # title |
A short guide to your site for AI tools that read it |
| 33 | llms-full.txt published | /llms-full.txt returns 200 (a warning if missing, not a fail) |
The longer, full-text version, used by some tools |
| 34 | Explicit AI-bot policy | robots.txt names at least 5 AI bots | Shows the choice is deliberate, not an accident of User-agent: * |
| 35 | AI search and assistant bots allowed | OAI-SearchBot, ChatGPT-User, Claude-SearchBot, PerplexityBot and similar can fetch / |
Blocking them keeps you out of their answers |
| 36 | Server and CDN let the bots in | Requests sent with AI bots' user-agents get the same page as a browser | A firewall can block bots that robots.txt allows |
Be realistic about llms.txt. It's a proposal from llmstxt.org for "a /llms.txt markdown file" that gives LLMs "LLM-friendly content". Google says it doesn't use these files for Search, and that creating one "will neither harm nor help" your Google visibility. We still include it because it's cheap and some AI tools and agents do read it. For the difference between bots that train models and bots that fetch answers, see how to allow AI search bots but block AI training.
Check 36 matters more than it looks. robots.txt is a request, but firewalls and CDNs enforce rules before a bot ever reaches your page. Our guide on how to check which AI crawlers can access your website walks through testing it.
What to fix first
If you only have an afternoon, do these in this order:
- Let the right bots in (checks 16, 35, 36). Nothing else matters if crawlers get a 403.
- Make the text visible without JavaScript (check 27). This is usually a developer or platform setting, so ask early.
- Fix titles, H1s and meta descriptions (checks 1, 5, 6). Quick to do in any CMS.
- Add Organization and WebSite JSON-LD (checks 10, 11), with your real name, logo, contact details and profiles.
- Publish a sitemap, canonicals and an llms.txt (checks 17, 18, 32).
- Add a short FAQ on key pages (check 29), answering the questions customers actually ask.
How long does a manual audit take?
For a small site, about an hour with a browser and a text editor. The slow parts are the per-page checks (titles, headings, word counts, alt text) and the bot test in check 36, which needs a command-line tool such as curl to send requests with different user-agents.
What this checklist doesn't cover
- Whether AI assistants already mention you. Check that by asking them and noting the sources they cite. Our checklist for getting cited by ChatGPT covers that side: search rankings, quotable answers and mentions on other sites.
- Content quality and accuracy. A technically perfect page with thin or outdated facts still won't be recommended.
- Off-site signals such as reviews, directories and press.
Run it automatically
You can do all of this by hand with the tables above. If you'd rather not, the free Web2Agents AI check scores your homepage across the same six areas, with results on screen in real time. The €19 AI-Ready Kit runs all 36 checks on up to 25 pages, shows the evidence for each, ranks the fixes, and includes ready-to-upload robots.txt, llms.txt and schema files. More guides are in our agent-ready websites section.
FAQ
What is a GEO audit?
A GEO (generative engine optimisation) audit checks whether AI search tools and assistants can reach, understand and quote your website. It covers crawler access, page structure, structured data and how readable your content is without JavaScript.
Is a GEO audit different from an SEO audit?
They overlap a lot. Google says foundational SEO best practices are the foundation for visibility in its generative AI search features. A GEO audit adds checks that matter more for other AI tools: whether AI bots are allowed in robots.txt and by your firewall, whether text is visible without JavaScript, and whether you publish an llms.txt.
Do I need llms.txt to pass a GEO audit?
No. It's one check out of 36. Google says it doesn't use llms.txt for Search, and llms.txt is still a proposal, not a standard. It's cheap to publish and some AI tools read it, which is why we include it.
Which check should I fix first?
Crawler access. If robots.txt or your firewall blocks OAI-SearchBot, PerplexityBot or similar bots, those services can't read your pages, so nothing else on the list makes a difference to them.
Will passing all 36 checks get my site cited by ChatGPT?
No one can guarantee that. Passing the checks removes the technical barriers; whether an AI assistant cites you also depends on your search rankings, the quality of your answers and what other sites say about you.
Sources
- Overview of OpenAI crawlers, OpenAI
- Google's guide to optimizing for generative AI features on Google Search, Google Search Central
- Introduction to structured data markup in Google Search, Google Search Central
- Organization structured data, Google Search Central
- Influencing your title links in search results, Google Search Central
- Introduction to robots.txt, Google Search Central
- Block search indexing with noindex, Google Search Central
- The rise of the AI crawler, Vercel and MERJ, 17 December 2024
- The /llms.txt file, llmstxt.org
- Labeling controls in forms, W3C Web Accessibility Initiative
- Schema Markup Validator, Schema.org
- AI-Ready Kit: what's included, Web2Agents


















