AI Index + Access Layer Skill

Illustration · not a resultFrom the TheSmokeDev/geo-skills README — shows the whole collection, not only this skill.source ↗
Index and access layer audit for AI search -- the hard prerequisites.
by TheSmokeDev·MIT license·★ 27 Stars on the repo·GitHub ↗
npx degit TheSmokeDev/geo-skills/skills/geo-ai-index-access#main ~/.claude/skills/geo-ai-index-accessChecked ·commit main
Files of AI Index + Access Layer Skill
Show the full text133 lines
AI Index + Access Layer Skill
Purpose
This skill audits the hard technical prerequisites for AI citation: being in the right index, being crawlable by AI agents, allowing content previews, and serving content in raw HTML. None of the content-level GEO work in this pack matters if these gates are closed. Run this audit FIRST, before skills/geo-citability/, skills/geo-fanout/, or any content strategy work.
Core Insight
ChatGPT's retrieval pipeline runs on the Bing index, not Google's: 87% of ChatGPT citations match Bing top results, and Google appears nowhere in the pipeline (SubscribePR analysis, Jul 2026). A site can rank #1 on Google and be completely invisible to ChatGPT if Bing has not indexed it. Bing Webmaster Tools verification + sitemap submission + IndexNow is therefore the ChatGPT entry ticket -- and it also unlocks Bing WMT's AI Performance / Copilot citation data, one of the few first-party AI-visibility datasets available.
Beyond indexation, three access gates silently kill AI visibility:
- Crawler blocks -- robots.txt or CDN/WAF rules blocking OAI-SearchBot, GPTBot, ChatGPT-User, PerplexityBot, or ClaudeBot. ~27% of B2B sites accidentally block AI agents at the CDN level (⚠️ industry estimate -- verify before quoting publicly).
- Preview restrictions -- legacy
nosnippetor restrictivemax-snippetdirectives suppress AI citations. Scored 9.2/10 as a citation factor (Zyppy meta-analysis of 54 studies via DigitalApplied, Jun 2026). - JavaScript-only content -- ChatGPT-User reportedly performs no JavaScript rendering (⚠️ single source, SubscribePR Jul 2026). Content that only exists after client-side rendering is invisible to it.
Audit Checklist (Execute in Order)
Gate 1: Bing Indexation (ChatGPT Entry Ticket)
- Check whether the site is verified in Bing Webmaster Tools. If not, that is the #1 finding -- verification + sitemap submission is the entry ticket.
- Run
site:example.comon Bing (WebFetchhttps://www.bing.com/search?q=site:example.com) and compare the indexed-page count against the sitemap count. A large gap = indexation problem. - Spot-check 5-10 money pages: is each one indexed on Bing?
- Check whether IndexNow is implemented:
- Look for an IndexNow key file at
[domain]/[key].txt. - Check whether the CMS/build pipeline pings
https://api.indexnow.org/indexnow(or the Bing equivalent) on publish/update. - If absent, recommend IndexNow integration -- it pushes new URLs to Bing (and other participating engines) at publish time instead of waiting for crawl.
- Look for an IndexNow key file at
- Once verified, note that Bing WMT's AI Performance (Copilot) report becomes available -- first-party data on how often the site is cited in Copilot answers. This feeds
skills/geo-measurement/.
Gate 2: AI Crawler Access (robots.txt + CDN)
Full crawler-by-crawler procedure lives in skills/geo-crawlers/. The minimum viable checks for this audit:
- Fetch
[domain]/robots.txtand check for blocks on:OAI-SearchBot,GPTBot,ChatGPT-User,PerplexityBot,ClaudeBot-- plus wildcard (User-agent: *) disallow rules that catch them. - Check the CDN/WAF layer (Cloudflare, Akamai, etc.) -- robots.txt can be clean while the CDN blocks AI agents at the edge. ~27% of B2B sites have this problem accidentally (⚠️ industry estimate). Look for: managed bot-fight rules, AI-bot blocking toggles, WAF rules matching AI user-agents.
- For each blocked Tier-1 crawler, record the exact rule and location (robots.txt line vs CDN config).
Gate 3: Preview Control (nosnippet / max-snippet)
- Fetch 5-10 key pages and check
<meta name="robots">tags andX-Robots-TagHTTP headers for:nosnippet-- suppresses the text preview AI engines quote from. Remove unless there is a specific legal reason.max-snippet: [low number]ormax-snippet: 0-- a restrictive cap truncates what AI can extract. Remove or raise (e.g.,max-snippet: -1for unlimited).noindexon pages that should be cited -- sometimes inherited from staging or legacy SEO configs.
- Also check for
noai/noimageaitags (non-standard but some AI systems honor them). - Template-level check: grep the site's templates/theme for these directives -- one template rule can suppress the whole site. Factor weight: 9.2/10 (Zyppy via DigitalApplied, Jun 2026).
Gate 4: Server-Rendered HTML
- Fetch a key page with a plain HTTP client (curl/Bash) -- no JavaScript execution.
- Check whether the key citable content (headings, answer paragraphs, data tables, prices) exists in the raw HTML response.
- If the raw HTML is an empty shell (
<div id="root">+ script tags), flag it: ChatGPT-User reportedly does no JS rendering (⚠️ single source), and other AI crawlers have limited rendering (seeskills/geo-crawlers/Step 5). - Recommend SSR/SSG or pre-rendering for content pages. App-like interactive pages matter less; content pages must render server-side.
Gate 5: Google Side (AIO / AI Mode / Gemini)
- Confirm the site is indexed on Google (
site:query, Search Console coverage) -- Gemini grounding and AIO retrieval use Google's index. - Confirm no
Google-ExtendedorGooglebotblocks that would limit AI-surface eligibility (seeskills/geo-crawlers/for the nuance: Google-Extended controls training/AIO improvement, Googlebot controls indexing). - Note: llms.txt is NOT a substitute for any of this -- Google officially confirmed no machine-readable files are needed for generative AI search (Search Central, May 2026), and Zyppy scores llms.txt 2.0/10, lowest of 23 factors. Do not report llms.txt as an access fix.
Scoring
| Gate | Weight | Pass Criteria |
|---|---|---|
| Bing indexation + IndexNow | 35% | Verified in Bing WMT, money pages indexed, IndexNow live |
| AI crawler access | 30% | All five Tier-1 AI crawlers allowed at robots.txt AND CDN level |
| Preview control | 20% | No nosnippet / restrictive max-snippet / stray noindex on citable pages |
| Server-rendered HTML | 15% | Key content present in raw HTML of all sampled pages |
Index + Access Score = weighted sum, 0-100. Any Gate 1 or Gate 2 failure caps the score at 40 -- a site that is not indexed or not crawlable cannot be cited regardless of everything else.
Output Format
Generate a file called GEO-INDEX-ACCESS-AUDIT.md:
# AI Index + Access Audit: [Domain]
**Analysis Date:** [Date]
**Index + Access Score:** [X]/100
**Verdict:** [Ready / Blocked at Gate N]
---
## Gate Results
| Gate | Status | Findings |
|---|---|---|
| 1. Bing indexation + IndexNow | [Pass/Fail] | [WMT verified? indexed pages vs sitemap, IndexNow present?] |
| 2. AI crawler access | [Pass/Fail] | [Blocked crawlers + exact rule location: robots.txt line or CDN rule] |
| 3. Preview control | [Pass/Fail] | [nosnippet / max-snippet / noindex findings + template locations] |
| 4. Server-rendered HTML | [Pass/Fail] | [Sampled pages; which key content is missing from raw HTML] |
| 5. Google side | [Pass/Fail] | [Index coverage, Google-Extended status] |
## Fixes in Priority Order
1. [e.g., "Verify in Bing Webmaster Tools + submit sitemap + deploy IndexNow key" -- ChatGPT entry ticket]
2. [e.g., "Remove `User-agent: GPTBot / Disallow: /` at robots.txt line 12"]
3. [e.g., "Remove `nosnippet` from the base template -- suppresses AI citation previews sitewide"]
4. [e.g., "Move article body from client-rendered React into SSR output"]
## Unlocked Data Sources
- [ ] Bing WMT AI Performance (Copilot) report -- feeds geo-measurement panels
- [ ] Bing WMT keyword data -- feeds geo-fanout sub-query mapping
Related Skills
skills/geo-crawlers/-- the full 14-crawler reference, tiering, and robots.txt recommendation matrix. This skill runs the minimum viable subset; run geo-crawlers for the complete access map.skills/geo-fanout/-- once indexed, sub-query coverage determines what the engines retrieve.skills/geo-citability/-- content-level optimization; only worth doing after all five gates pass.skills/geo-measurement/-- Bing WMT's AI Performance data unlocked here feeds the measurement panels.
| 1 | |
| 2 | name geo-ai-index-access |
| 3 | description Index and access layer audit for AI search -- the hard prerequisites. Verifies Bing indexation (the ChatGPT entry ticket), audits robots.txt and CDN-level AI-crawler access, removes legacy nosnippet/max-snippet preview restrictions, and confirms key content is server-rendered. Use before any content-level GEO work, or when a site is invisible to ChatGPT despite good content. |
| 4 | allowed-tools |
| 5 | - Read |
| 6 | - Grep |
| 7 | - Glob |
| 8 | - Bash |
| 9 | - WebFetch |
| 10 | - Write |
| 11 | |
| 12 | |
| 13 | # AI Index + Access Layer Skill |
| 14 | |
| 15 | ## Purpose |
| 16 | |
| 17 | This skill audits the hard technical prerequisites for AI citation: being in the right index, being crawlable by AI agents, allowing content previews, and serving content in raw HTML. None of the content-level GEO work in this pack matters if these gates are closed. Run this audit FIRST, before `skills/geo-citability/`, `skills/geo-fanout/`, or any content strategy work. |
| 18 | |
| 19 | ## Core Insight |
| 20 | |
| 21 | ChatGPT's retrieval pipeline runs on the **Bing index, not Google's**: 87% of ChatGPT citations match Bing top results, and Google appears nowhere in the pipeline (SubscribePR analysis, Jul 2026). A site can rank #1 on Google and be completely invisible to ChatGPT if Bing has not indexed it. Bing Webmaster Tools verification + sitemap submission + IndexNow is therefore the ChatGPT entry ticket -- and it also unlocks Bing WMT's AI Performance / Copilot citation data, one of the few first-party AI-visibility datasets available. |
| 22 | |
| 23 | Beyond indexation, three access gates silently kill AI visibility: |
| 24 | |
| 25 | **Crawler blocks** -- robots.txt or CDN/WAF rules blocking OAI-SearchBot, GPTBot, ChatGPT-User, PerplexityBot, or ClaudeBot. ~27% of B2B sites accidentally block AI agents at the CDN level (⚠️ industry estimate -- verify before quoting publicly). |
| 26 | **Preview restrictions** -- legacy `nosnippet` or restrictive `max-snippet` directives suppress AI citations. Scored 9.2/10 as a citation factor (Zyppy meta-analysis of 54 studies via DigitalApplied, Jun 2026). |
| 27 | **JavaScript-only content** -- ChatGPT-User reportedly performs no JavaScript rendering (⚠️ single source, SubscribePR Jul 2026). Content that only exists after client-side rendering is invisible to it. |
| 28 | |
| 29 | |
| 30 | |
| 31 | ## Audit Checklist (Execute in Order) |
| 32 | |
| 33 | ### Gate 1: Bing Indexation (ChatGPT Entry Ticket) |
| 34 | |
| 35 | Check whether the site is verified in Bing Webmaster Tools. If not, that is the #1 finding -- verification + sitemap submission is the entry ticket. |
| 36 | Run `site:example.com` on Bing (WebFetch `https://www.bing.com/search?q=site:example.com`) and compare the indexed-page count against the sitemap count. A large gap = indexation problem. |
| 37 | Spot-check 5-10 money pages: is each one indexed on Bing? |
| 38 | Check whether IndexNow is implemented: |
| 39 | Look for an IndexNow key file at `[domain]/[key].txt`. |
| 40 | Check whether the CMS/build pipeline pings `https://api.indexnow.org/indexnow` (or the Bing equivalent) on publish/update. |
| 41 | If absent, recommend IndexNow integration -- it pushes new URLs to Bing (and other participating engines) at publish time instead of waiting for crawl. |
| 42 | Once verified, note that Bing WMT's **AI Performance (Copilot) report** becomes available -- first-party data on how often the site is cited in Copilot answers. This feeds `skills/geo-measurement/`. |
| 43 | |
| 44 | ### Gate 2: AI Crawler Access (robots.txt + CDN) |
| 45 | |
| 46 | Full crawler-by-crawler procedure lives in `skills/geo-crawlers/`. The minimum viable checks for this audit: |
| 47 | |
| 48 | Fetch `[domain]/robots.txt` and check for blocks on: `OAI-SearchBot`, `GPTBot`, `ChatGPT-User`, `PerplexityBot`, `ClaudeBot` -- plus wildcard (`User-agent: *`) disallow rules that catch them. |
| 49 | Check the CDN/WAF layer (Cloudflare, Akamai, etc.) -- robots.txt can be clean while the CDN blocks AI agents at the edge. ~27% of B2B sites have this problem accidentally (⚠️ industry estimate). Look for: managed bot-fight rules, AI-bot blocking toggles, WAF rules matching AI user-agents. |
| 50 | For each blocked Tier-1 crawler, record the exact rule and location (robots.txt line vs CDN config). |
| 51 | |
| 52 | ### Gate 3: Preview Control (nosnippet / max-snippet) |
| 53 | |
| 54 | Fetch 5-10 key pages and check `<meta name="robots">` tags and `X-Robots-Tag` HTTP headers for: |
| 55 | `nosnippet` -- suppresses the text preview AI engines quote from. Remove unless there is a specific legal reason. |
| 56 | `max-snippet: [low number]` or `max-snippet: 0` -- a restrictive cap truncates what AI can extract. Remove or raise (e.g., `max-snippet: -1` for unlimited). |
| 57 | `noindex` on pages that should be cited -- sometimes inherited from staging or legacy SEO configs. |
| 58 | Also check for `noai`/`noimageai` tags (non-standard but some AI systems honor them). |
| 59 | Template-level check: grep the site's templates/theme for these directives -- one template rule can suppress the whole site. Factor weight: 9.2/10 (Zyppy via DigitalApplied, Jun 2026). |
| 60 | |
| 61 | ### Gate 4: Server-Rendered HTML |
| 62 | |
| 63 | Fetch a key page with a plain HTTP client (curl/Bash) -- no JavaScript execution. |
| 64 | Check whether the key citable content (headings, answer paragraphs, data tables, prices) exists in the raw HTML response. |
| 65 | If the raw HTML is an empty shell (`<div id="root">` + script tags), flag it: ChatGPT-User reportedly does no JS rendering (⚠️ single source), and other AI crawlers have limited rendering (see `skills/geo-crawlers/` Step 5). |
| 66 | Recommend SSR/SSG or pre-rendering for content pages. App-like interactive pages matter less; content pages must render server-side. |
| 67 | |
| 68 | ### Gate 5: Google Side (AIO / AI Mode / Gemini) |
| 69 | |
| 70 | Confirm the site is indexed on Google (`site:` query, Search Console coverage) -- Gemini grounding and AIO retrieval use Google's index. |
| 71 | Confirm no `Google-Extended` or `Googlebot` blocks that would limit AI-surface eligibility (see `skills/geo-crawlers/` for the nuance: Google-Extended controls training/AIO improvement, Googlebot controls indexing). |
| 72 | Note: llms.txt is NOT a substitute for any of this -- Google officially confirmed no machine-readable files are needed for generative AI search (Search Central, May 2026), and Zyppy scores llms.txt 2.0/10, lowest of 23 factors. Do not report llms.txt as an access fix. |
| 73 | |
| 74 | |
| 75 | |
| 76 | ## Scoring |
| 77 | |
| 78 | | Gate | Weight | Pass Criteria | |
| 79 | |---|---|---| |
| 80 | | Bing indexation + IndexNow | 35% | Verified in Bing WMT, money pages indexed, IndexNow live | |
| 81 | | AI crawler access | 30% | All five Tier-1 AI crawlers allowed at robots.txt AND CDN level | |
| 82 | | Preview control | 20% | No nosnippet / restrictive max-snippet / stray noindex on citable pages | |
| 83 | | Server-rendered HTML | 15% | Key content present in raw HTML of all sampled pages | |
| 84 | |
| 85 | Index + Access Score = weighted sum, 0-100. **Any Gate 1 or Gate 2 failure caps the score at 40** -- a site that is not indexed or not crawlable cannot be cited regardless of everything else. |
| 86 | |
| 87 | |
| 88 | |
| 89 | ## Output Format |
| 90 | |
| 91 | Generate a file called `GEO-INDEX-ACCESS-AUDIT.md`: |
| 92 | |
| 93 | |
| 94 | # AI Index + Access Audit: [Domain] |
| 95 | |
| 96 | **Analysis Date:** [Date] |
| 97 | **Index + Access Score:** [X]/100 |
| 98 | **Verdict:** [Ready / Blocked at Gate N] |
| 99 | |
| 100 | |
| 101 | |
| 102 | ## Gate Results |
| 103 | |
| 104 | | Gate | Status | Findings | |
| 105 | |---|---|---| |
| 106 | | 1. Bing indexation + IndexNow | [Pass/Fail] | [WMT verified? indexed pages vs sitemap, IndexNow present?] | |
| 107 | | 2. AI crawler access | [Pass/Fail] | [Blocked crawlers + exact rule location: robots.txt line or CDN rule] | |
| 108 | | 3. Preview control | [Pass/Fail] | [nosnippet / max-snippet / noindex findings + template locations] | |
| 109 | | 4. Server-rendered HTML | [Pass/Fail] | [Sampled pages; which key content is missing from raw HTML] | |
| 110 | | 5. Google side | [Pass/Fail] | [Index coverage, Google-Extended status] | |
| 111 | |
| 112 | ## Fixes in Priority Order |
| 113 | |
| 114 | 1. [e.g., "Verify in Bing Webmaster Tools + submit sitemap + deploy IndexNow key" -- ChatGPT entry ticket] |
| 115 | 2. [e.g., "Remove `User-agent: GPTBot / Disallow: /` at robots.txt line 12"] |
| 116 | 3. [e.g., "Remove `nosnippet` from the base template -- suppresses AI citation previews sitewide"] |
| 117 | 4. [e.g., "Move article body from client-rendered React into SSR output"] |
| 118 | |
| 119 | ## Unlocked Data Sources |
| 120 | |
| 121 | - [ ] Bing WMT AI Performance (Copilot) report -- feeds geo-measurement panels |
| 122 | - [ ] Bing WMT keyword data -- feeds geo-fanout sub-query mapping |
| 123 | |
| 124 | |
| 125 | |
| 126 | |
| 127 | ## Related Skills |
| 128 | |
| 129 | `skills/geo-crawlers/` -- the full 14-crawler reference, tiering, and robots.txt recommendation matrix. This skill runs the minimum viable subset; run geo-crawlers for the complete access map. |
| 130 | `skills/geo-fanout/` -- once indexed, sub-query coverage determines what the engines retrieve. |
| 131 | `skills/geo-citability/` -- content-level optimization; only worth doing after all five gates pass. |
| 132 | `skills/geo-measurement/` -- Bing WMT's AI Performance data unlocked here feeds the measurement panels. |
| 133 |
Discussion
Alternatives
Browse more free Claude skills or everything in Marketing.