---
title: "The GEO Checklist: 30 Checks for AI Search Visibility"
date: 2026-07-12T06:00:00Z
modified: 2026-09-15T17:32:17Z
permalink: "https://suparank.io/geo-checklist/"
type: post
status: publish
excerpt: 30 generative engine optimization checks in five groups, each with why it matters, how to verify it and a priority, plus the eight to do first if you only have a day.
wpid: 29
categories:
  - Get Cited by AI
tags:
  - Get Cited by AI
  - AI Citations
  - GEO
  - Google AI Overviews
  - Schema Markup
author: Chase Allen
timestamp: 2026-09-15T17:32:17Z
---

A GEO checklist is a list of technical, content and entity checks that make your pages easy for AI engines to retrieve, understand and cite. This one has 30 checks in five groups. Each check says what to do, why it matters in one line, how to verify it with a tool or command, and how much it matters. It is engine-agnostic: the same checks apply to ChatGPT, Gemini, Claude, Perplexity and Google’s AI features.

It exists because generative engine optimization works but is uneven. The research paper that named GEO found that optimization can boost visibility by up to 40% in generative engine responses, and that what works varies by domain. [1](#sprk-src-1) A checklist keeps you from skipping the boring checks that decide whether an engine can see your page at all. If you are new to the term, start with [what is GEO](/generative-engine-optimization/).

## How to use this checklist



| Priority | Meaning | When to do it |
| --- | --- | --- |
| High | Blocks retrieval or citation outright if it fails | This week |
| Med | Makes citation noticeably more likely | This month |
| Low | Marginal, situational or unproven | When the rest is done |

Priority key used for all 30 checks.Work top to bottom. Crawl and access checks come first because nothing else matters if a bot gets a 403. Run the list quarterly and after any redesign, CMS migration, CDN or firewall change. For the Google-specific version of this work (AI Overviews, AI Mode, Search Console controls), use the [AI Overviews checklist](/google-ai-overviews-optimization/); this page does not repeat it.

## 1. Crawl and access (checks 1–8)

![Blueprint diagram of a technical readiness pipeline for AI crawlers, covering robots.txt, server-side HTML, JSON-LD, sitemap and canonical basics, CDN bot rules, and server log verification.](https://media.suparank.io/uploads/2026/07/sprk-geo-checklist-0.webp)

1. **AI search and user bots are allowed in robots.txt**
    _What:_ Allow the bots that fetch pages for answers: OAI-SearchBot, Claude-SearchBot, Claude-User, PerplexityBot, Perplexity-User, and Googlebot.
    _Why:_ A site opted out of OAI-SearchBot will not be shown in ChatGPT search answers. [2](#sprk-src-2) Disabling Claude-SearchBot or Claude-User may reduce your visibility in Claude’s search results. [3](#sprk-src-3)
    _Verify:_ `curl -s https://yoursite.com/robots.txt`, then build or fix the file with the [robots.txt for AI crawlers](/tools/robots-for-ai-generator/) generator.
    _Priority:_ High
2. **Training bots are a separate, deliberate decision**
    _What:_ Decide on GPTBot, ClaudeBot and Google-Extended on their own, instead of blocking every AI user agent in one rule.
    _Why:_ OpenAI treats OAI-SearchBot and GPTBot as independent settings, so you can appear in search while opting out of training. [4](#sprk-src-2) Google-Extended does not affect inclusion in Google Search. [5](#sprk-src-4)
    _Verify:_ Read each `User-agent` group in robots.txt and write down why each training bot is allowed or blocked.
    _Priority:_ Med
3. **The firewall or CDN is not blocking verified bots**
    _What:_ Make sure bot management, rate limits or country blocks do not return 403 or a challenge page to allowed crawlers.
    _Why:_ A robots.txt allow means nothing if the WAF blocks the request; OpenAI and Perplexity both publish IP ranges for their bots and recommend allowing requests from them. [6](#sprk-src-2) [7](#sprk-src-5)
    _Verify:_ Search server or CDN logs for those user agents and check the status codes you returned in the last 30 days.
    _Priority:_ High
4. **Main content is in the server-rendered HTML**
    _What:_ The text you want quoted is present in the initial HTML response, not injected by client-side JavaScript.
    _Why:_ Vercel’s 2024 crawler analysis found that none of the major AI crawlers it tested rendered JavaScript, including OpenAI’s and Anthropic’s. [8](#sprk-src-6)
    _Verify:_ `curl -s https://yoursite.com/page | grep -c "a sentence from your body copy"` should return at least 1.
    _Priority:_ High
5. **The XML sitemap is current**
    _What:_ Every indexable URL is listed with an accurate lastmod, and retired URLs are removed.
    _Why:_ Crawlers use sitemaps to discover new and updated pages faster than links alone.
    _Verify:_ Open `/sitemap.xml`, confirm your newest post is listed and its lastmod matches the last real update.
    _Priority:_ Med
6. **Canonicals point at the version you want cited**
    _What:_ One canonical URL per piece of content, with parameter, print and duplicate versions pointing to it.
    _Why:_ Duplicates split signals, and Google’s own AI reporting assigns most data to the canonical URL. [9](#sprk-src-7)
    _Verify:_ View source for `rel="canonical"` on a sample of pages, and compare with Google’s chosen canonical in URL Inspection.
    _Priority:_ Med
7. **Status codes are clean**
    _What:_ Live pages return 200, moved pages return a single 301, and deleted pages return 404 or 410, never a soft 404.
    _Why:_ Redirect chains and soft 404s waste crawls and can leave an engine citing a dead URL.
    _Verify:_ `curl -sI https://yoursite.com/old-url` for your top 20 URLs and any recently moved ones.
    _Priority:_ Med
8. **Pages load fast enough for a fetcher**
    _What:_ Core Web Vitals pass on key templates and the HTML responds quickly.
    _Why:_ Google lists good page experience among the practices that still matter for its generative AI features. [10](#sprk-src-8)
    _Verify:_ Test key templates with the [Core Web Vitals checker](/tools/core-web-vitals-checker/).
    _Priority:_ Med

One more access check people ask about is llms.txt. It stays optional, and it sits outside the 30 because the evidence cuts both ways. Google says Google Search does not use llms.txt and that it neither helps nor harms visibility there. [11](#sprk-src-8) The proposal’s August 2026 revision reports that thousands of sites publish one and that Chrome’s Lighthouse checks for it in its agentic browsing audits. [12](#sprk-src-9) If you want one, the [llms.txt generator](/tools/llms-txt-generator/) takes a few minutes, and the [agent-readiness checker](/tools/agent-readiness/) tests it alongside robots.txt.

## 2. Page structure (checks 9–16)

![Checklist of content changes that improve citation likelihood, including direct answers, question-style headings, specific numbers, and quotable phrasing.](https://media.suparank.io/uploads/2026/07/sprk-geo-checklist-1.webp)

9. **The intro answers the page’s main question**
    _What:_ The first 40 to 60 words give a complete, quotable answer to the query the page targets.
    _Why:_ Engines pull passages; an answer buried in paragraph four is harder to extract than one at the top.
    _Verify:_ Read only the first paragraph. Would it make sense quoted on its own?
    _Priority:_ High
10. **H2s are phrased the way people ask**
    _What:_ Section headings mirror real questions and sub-questions, and the first sentence under each one answers it.
    _Why:_ Engines break a prompt into sub-queries; a heading that matches one makes the section easy to retrieve.
    _Verify:_ Compare your H2s with People Also Ask and the follow-up questions an AI assistant suggests for the topic.
    _Priority:_ Med
11. **Comparisons are tables**
    _What:_ Anything with options, criteria or specs is an HTML table, not a paragraph.
    _Why:_ Tables keep facts attached to the right row, which makes them easier to quote accurately.
    _Verify:_ Search each post for “vs”, “compared” or “differences” and confirm there is a `<table>` nearby.
    _Priority:_ Med
12. **Steps and criteria are lists**
    _What:_ Processes use ordered lists, sets of criteria use bulleted lists.
    _Why:_ Lists survive extraction with their order and boundaries intact.
    _Verify:_ Skim for paragraphs that contain “first… then… finally” and convert them.
    _Priority:_ Low
13. **A visible, accurate date**
    _What:_ Show a labelled “Last updated” date and keep dateModified in Article markup consistent with it.
    _Why:_ Google recommends a prominent, labelled date that matches the structured data. [13](#sprk-src-10)
    _Verify:_ Compare the visible date with `dateModified` in the page’s JSON-LD.
    _Priority:_ Med
14. **A named author or clear owner**
    _What:_ Each article names who wrote or reviewed it, with a short bio or an about page.
    _Why:_ Readers and engines both weigh who stands behind a claim.
    _Verify:_ Open three posts at random and check each names a real person or team and links to more about them.
    _Priority:_ Med
15. **Internal links connect the cluster**
    _What:_ Every post links to its pillar and to closely related posts with descriptive anchors, and nothing is orphaned.
    _Why:_ Links help crawlers find related pages and give context about what each page covers.
    _Verify:_ Run the [internal link checker](/tools/internal-link-checker/) on each pillar page.
    _Priority:_ Med
16. **Images have useful alt text**
    _What:_ Charts and diagrams that carry information have alt text that states what they show.
    _Why:_ Text-only fetchers cannot see an image; the alt text is the only version they get.
    _Verify:_ Scan pages with the [alt text checker](/tools/alt-text-checker/).
    _Priority:_ Low

## 3. Content substance (checks 17–22)

17. **Something original on every important page**
    _What:_ Your own data, a first-hand test, an expert opinion or a worked example that exists nowhere else.
    _Why:_ Google’s 2026 guidance says a unique point of view stands out because its AI systems look at a variety of sources, and it contrasts this with commodity content. [14](#sprk-src-8)
    _Verify:_ Name the one thing on the page a competitor could not copy from another article. If you can’t, add one.
    _Priority:_ High
18. **Claims link to their sources**
    _What:_ Every statistic, date and quoted rule links to the page that states it.
    _Why:_ A sourced claim is easier for an engine to trust and for a reader to check.
    _Verify:_ Search the page for numbers and percentages; each should have a link or footnote next to it.
    _Priority:_ High
19. **Content is refreshed on a schedule**
    _What:_ Priority pages are reviewed at least quarterly and updated when facts, prices or products change.
    _Why:_ Stale facts get corrected by newer sources, and those sources get cited instead.
    _Verify:_ List your top 20 pages by traffic with their last real update date; anything older than six months goes on the review list.
    _Priority:_ Med
20. **Key terms have one clear definition**
    _What:_ Each concept you want to be cited for has a short definition in a sentence that starts with the term.
    _Why:_ “X is…” sentences are the easiest kind of passage to quote.
    _Verify:_ Search for your three core terms and check each has a standalone definition on its pillar page.
    _Priority:_ Med
21. **Comparisons state their criteria**
    _What:_ When you compare tools, methods or options, say what you compared them on and when.
    _Why:_ Engines answering “which is best” prompts need the criteria as much as the verdict.
    _Verify:_ Every comparison table has a caption with the criteria and a date.
    _Priority:_ Med
22. **No filler sections**
    _What:_ Remove generic intros, repeated summaries and “key takeaways” that restate the page.
    _Why:_ Google warns that pages created mainly to manipulate AI responses can fall under its scaled content abuse policy, and length for its own sake adds nothing. [15](#sprk-src-8)
    _Verify:_ Delete a paragraph as a test. If the page loses no information, keep it deleted.
    _Priority:_ Low

## 4. Entity and authority (checks 23–27)

![Parts diagram showing the components of entity and authority signals: consistent facts, third-party mentions, credible sources, and structured identity.](https://media.suparank.io/uploads/2026/07/sprk-geo-checklist-2.webp)

23. **Organization structured data on the home or about page**
    _What:_ Name, URL, logo, description and contact details in Organization JSON-LD.
    _Why:_ Google says Organization markup helps it understand your administrative details and disambiguate your organization. [16](#sprk-src-11)
    _Verify:_ Generate it with the [schema markup generator](/tools/schema-markup-generator/), then validate in the Rich Results Test.
    _Priority:_ Med
24. **sameAs links to your real profiles**
    _What:_ List the social, review and directory profiles that are definitely yours in the sameAs property.
    _Why:_ sameAs points to pages on other sites with more information about your organization. [17](#sprk-src-11)
    _Verify:_ Open every sameAs URL and confirm it resolves to your profile, not a 404 or a lookalike.
    _Priority:_ Med
25. **Authentic third-party mentions**
    _What:_ Earn coverage, reviews, community discussion and list inclusions on sites your audience reads.
    _Why:_ Engines summarize what is said about you across the web, but Google notes that seeking inauthentic mentions isn’t as helpful as it might seem. [18](#sprk-src-8)
    _Verify:_ Search your brand name plus your category on Reddit, review sites and industry publications, and log where you are missing.
    _Priority:_ High
26. **Reviews on the platforms your category uses**
    _What:_ Maintain profiles on the review sites buyers in your market check, and ask real customers to review.
    _Why:_ Review sites are frequent sources for recommendation-style prompts.
    _Verify:_ List the top three review sites that appear when you search “best \[your category\]” and check you have a current profile on each.
    _Priority:_ Med
27. **Consistent name and facts everywhere**
    _What:_ Company name, product names, pricing and founding facts match across your site, profiles and listings.
    _Why:_ Conflicting facts make it harder for an engine to be confident which version is right.
    _Verify:_ Put your 10 core facts in a sheet and check them against your top five external profiles.
    _Priority:_ Med

## 5. Measurement (checks 28–30)

28. **A fixed prompt set, run repeatedly**
    _What:_ 20 to 50 real buyer questions, run across the engines your audience uses, several times each.
    _Why:_ AI answers vary from run to run, so one check proves little; repeated runs give you a mention and citation rate.
    _Verify:_ Track the same prompts over time with [AI visibility tracking](/product/ai-visibility/), or a spreadsheet if you are starting out.
    _Priority:_ High
29. **AI referrals and AI impressions are in your reports**
    _What:_ Segment referral sessions from AI assistants in GA4, and add Google’s AI feature impressions from Search Console.
    _Why:_ Search Console’s Generative AI performance report shows AI Overviews and AI Mode impressions, and has been available to all sites since August 31, 2026. [19](#sprk-src-7)
    _Verify:_ Build a GA4 segment for referrers such as chatgpt.com, gemini.google.com, claude.ai and perplexity.ai, and view it next to Search Console in [connected analytics](/product/connected-analytics/).
    _Priority:_ High
30. **A repeat cadence**
    _What:_ Re-run this checklist quarterly and your prompt set at least monthly.
    _Why:_ Crawler rules, CDN settings and competitors change without telling you.
    _Verify:_ Put both on a calendar with an owner, and note the date and result of each run.
    _Priority:_ Med

Measurement here means mentions and citations, not positions. AI answers don’t have stable rankings, which is why Suparank measures citations and does no rank tracking. Paid plans run the prompt set on a weekly schedule across ChatGPT, Google AI Overviews and AI Mode, and Growth and Enterprise add Gemini and Claude.

## Priority order if you only have a day

Not everyone can run 30 checks this week. If you have one day, do these eight in this order:

1. Check 3: confirm the firewall isn’t blocking AI crawlers (30 minutes in your logs).
2. Check 1: fix robots.txt for search and user bots.
3. Check 4: curl your five most important pages and confirm the body text is in the HTML.
4. Check 9: rewrite the first paragraph of those five pages to answer the question.
5. Check 18: add sources to every number on those pages.
6. Check 17: add one original example or data point to your best page.
7. Check 29: set up the GA4 AI referral segment and look at the Generative AI report.
8. Check 28: write your first 20 prompts and run them once to get a baseline.

If you would rather not do checks 1 to 8 and 23 by hand across every page, a [GEO audit](/product/geo-audit/) crawls the site and returns them as a ranked fix list, so you can automate this checklist and spend your day on checks 17 to 22.

You can also copy the robots.txt starting point below and adjust it to your own training-bot decision:


```
# Search and user-triggered AI fetchers: allow
User-agent: OAI-SearchBot
User-agent: Claude-SearchBot
User-agent: Claude-User
User-agent: PerplexityBot
User-agent: Perplexity-User
Allow: /

# Training crawlers: your decision (check 2)
User-agent: GPTBot
User-agent: ClaudeBot
User-agent: Google-Extended
Disallow: /

Sitemap: https://yoursite.com/sitemap.xml
```

## Sources

1. [Aggarwal et al., KDD 2024](https://arxiv.org/abs/2311.09735?utm_source=suparank.io) [1](#sprk-fnref-1)
2. [OpenAI crawler documentation](https://developers.openai.com/api/docs/bots?utm_source=suparank.io) [2](#sprk-fnref-2) [4](#sprk-fnref-4) [6](#sprk-fnref-6)
3. [Anthropic Help Center, 2026](https://support.claude.com/en/articles/8896518-does-anthropic-crawl-data-from-the-web-and-how-can-site-owners-block-the-crawler?utm_source=suparank.io) [3](#sprk-fnref-3)
4. [Google crawler documentation, 2026](https://developers.google.com/search/docs/crawling-indexing/google-common-crawlers?utm_source=suparank.io) [5](#sprk-fnref-5)
5. [Perplexity crawler documentation](https://docs.perplexity.ai/guides/bots?utm_source=suparank.io) [7](#sprk-fnref-7)
6. [Vercel, 2024](https://vercel.com/blog/the-rise-of-the-ai-crawler?utm_source=suparank.io) [8](#sprk-fnref-8)
7. [Search Console Help, 2026](https://support.google.com/webmasters/answer/16984139?utm_source=suparank.io) [9](#sprk-fnref-9) [19](#sprk-fnref-19)
8. [Google Search Central, 2026](https://developers.google.com/search/docs/fundamentals/ai-optimization-guide?utm_source=suparank.io) [10](#sprk-fnref-10) [11](#sprk-fnref-11) [14](#sprk-fnref-14) [15](#sprk-fnref-15) [18](#sprk-fnref-18)
9. [llmstxt.org, 2026](https://llmstxt.org/?utm_source=suparank.io) [12](#sprk-fnref-12)
10. [Google Search Central, 2025](https://developers.google.com/search/docs/appearance/publication-dates?utm_source=suparank.io) [13](#sprk-fnref-13)
11. [Google Search Central, 2026](https://developers.google.com/search/docs/appearance/structured-data/organization?utm_source=suparank.io) [16](#sprk-fnref-16) [17](#sprk-fnref-17)

## Topics

**Categories:** [Get Cited by AI](https://media.suparank.io/uploads/wp-mfa-exports/taxonomy/category/get-cited-by-ai.md)

**Tags:** [AI Citations](https://media.suparank.io/uploads/wp-mfa-exports/taxonomy/post_tag/ai-citations.md), [GEO](https://media.suparank.io/uploads/wp-mfa-exports/taxonomy/post_tag/geo.md), [Google AI Overviews](https://media.suparank.io/uploads/wp-mfa-exports/taxonomy/post_tag/google-ai-overviews.md), [Schema Markup](https://media.suparank.io/uploads/wp-mfa-exports/taxonomy/post_tag/schema-markup.md)