Skip to main content

GEO Playbook · 通用版 · 第 2 章(3 / 17)

让 AI 读得到你的网站:先检查,再修设置

访问日志、robots.txt、防火墙与 nosnippet;改之前先存下现状

门是乘数:爬虫进不来,后面写多少页都乘以 0。nosnippet 开着,Google 那条腿整季按零计;价格写在 JS 里,主流 AI 爬虫一个字都拿不到。这一章全部免费,半天到一天能做完,但分两次做:2.1–2.5 是 D1 的只读体检,拿权限、记现状,一个字都不改;等 → 通用版 4.4 网页对照腿与冻结基线(全书唯一完整规格) 把基线落盘,再做 2.6–2.9 改门。门、人、货架三关的关系见 → 通用版 1.3 三个关口与三条路。

硬闸:基线没落盘,不改任何门、档案、事实页。

2.1 五道闸总览与闸零:访问日志(只读)

这一节要你做的:先看清门为什么分两次做;D1 第一件事发出权限申请,拉出《爬虫命中表》,按四条读法把问题记成待修项。做完手上多一张命中表和一张待修清单,门一处没动。

一个字不改

Top 20 与噪声带

同一个分母去数

D1 只读体检

冻基线 4.1–4.4

基线落盘

改门,记分界日

前后可比

先改门再冻基线

冻到被自己改过的货架

前后不可比

图:先只读、冻基线,再改门,前后才可比;顺序一反,冻到的就是被自己改过的货架

为什么非这样不可:基线要记的是页型占比、逐 URL 的四态、问法形状,这些都是在「门还是原样」的货架上量出来的。门先修了再冻,before 样本里已经混进了你自己的改动,之后任何「涨了」都说不清是门的功劳还是本来就会涨。所以施工顺序(门排第一)和测量顺序(冻结排第一)是两件事,不许混。D1 能做、且不算改动的事只有三类:申请权限、开日志、记现状。全书周次从改门那天起算,见 → 通用版 0.1 全书一句话与 90 天翻书顺序。

  1. 闸零访问日志D1 拉表;拿不到就开阻塞项
  2. 闸一 a摘要开关nosnippet 三兄弟,D1 grep,2.6 改
  3. 闸一 brobotsD1 记六行,2.6 四步合并
  4. 闸一 cWAFD1 看 403/429,2.6 加白名单
  5. 闸二四身份实抓D1 各留一份回执
  6. 闸三收录与数据D1 接后台,2.7 提交
  7. 闸四JSON-LD2.7 半天封版
图:五道闸按同一个顺序过两遍:D1 只看不改,基线落盘后照这个顺序改

两条排序规则:

  1. 闸零排在所有闸之前。 它是唯一的直接证据,而且是唯一一件「动手只要半小时,拿权限可能要几天」的活。开工第一封邮件一次约齐三样权限:域名验证、robots 改动权限、访问日志导出权限。
  2. 闸三先接免费第一方数据,再花钱探测(见 2.5)。反过来等于把本来免费的东西当成新发现。

闸零怎么拉

UA 伪造、site: 查询、浏览器目视,全是间接证据,而且两个方向都会出错。没有访问日志,整个技术门层就建立在推断上。

  1. 拉 30 天原始日志Cloudflare Logpush 或主机 access.log
  2. 取 IP 段官方公开段OpenAI、Anthropic、Perplexity
  3. CIDR 过滤按 IP 认不按 UA 字符串认
  4. 出命中表四列落盘 crawler_hits_30d.csv
图:拉日志四步;认爬虫只认 IP 段,因为 UA 字符串谁都能伪造

OpenAI 的三份 IP 段是 openai.com/searchbot.json、openai.com/gptbot.json、openai.com/chatgpt-user.json;Anthropic 与 Perplexity 用各自官方公布的段。按 UA 数出来的命中次数里混着扫描器和伪装流量,判据整条作废。命中表四列(爬虫名、30 天命中次数、命中 URL 前 20、返回码分布)的模板见 → 通用版 B.1 开门模板。

拿不到时的两种退路:拿不到导出权限 → 当天开工单、列红色阻塞项,闸二先用判准 b–d 顶上(见 2.3);站点压根没留日志 → 当天开 Logpush / access log,30 天后才有第一张表。

命中表怎么读

判

判

判

判

只许写

爬虫命中表

OAI-SearchBot 命中为 0

门没开,记待修 2.6

403 与 429 合计超 5%

WAF 在挡,记待修 2.6

全 200 但只中首页

sitemap 与内链,记待修 2.7

ChatGPT-User 有命中

实时腿通了,记月度

拿不到日志

无直接证据,30 天后补

图:命中表上的每一种读数只对应一条待修项;基线落盘前只记不改

图外的三条纪律:

  • OAI-SearchBot 为 0 这一层,不许写「选题不对」,也不许跳到「换题」那一层。 门没开或站点压根没被发现,是门的问题。
  • 403 / 429 是 WAF 或速率规则在挡,不是 robots。 去改 robots 修不好它。
  • 这张表同时是三样东西:闸二的判准 a、每月排查的第一条判据、「这条腿到底通没通」的唯一直接证据。拿不到日志时不要说「门是通的」,首行注明补交日期。这一层没有证据就说没有证据,是全书的表达纪律(见 → 通用版 D.1 数字纪律:数字怎么标、什么只能自己看)。

每一种读数怎么修,见 2.9 的两张诊断图。

2.2 闸一只读体检:nosnippet、robots、WAF 各看什么

这一节要你做的:花 10 分钟 grep nosnippet 三兄弟,再花半小时按六行记下 robots 与 WAF 的现状。做完手上多一份《门读检六行》和 8 张截图,只记不改;记下的每一项都在 2.6 改。

先查 nosnippet,再看 robots

Google 官方文档写明:要限制页面内容在 Search(含 AI 概览与 AI Mode)里展示,用的就是 nosnippet、data-nosnippet、max-snippet、noindex(developers.google.com/search/docs/crawling-indexing/robots-meta-tag)。这是 Google 腿上唯一能一键把你归零的开关,而 CMS 模板和 SEO 插件经常默认打开它。10 分钟查完,先查它。

对 8 页做:首页、价格页、/facts 页,加 5 个模板页(服务页、执业人或作者的个人页、一篇旧博文、一个列表页、一个落地页),逐页 curl 取 HTML + 响应头。

查哪里命中长什么样
HTML 的 meta robots / googlebotnosnippet 或 max-snippet:0 / :20
HTTP 响应头 X-Robots-Tag同上;要 curl -I 才看得见
正文关键段的标签属性data-nosnippet;价格表、FAQ 答案、事实块最常中
图:nosnippet 三兄弟藏在三个地方,只看 HTML 会漏掉响应头那一处

D1 的回执:三处 grep 结果(全空,或命中哪一处、哪一页),8 页各一张截图。这个开关改版、换模板、插件更新之后会被重新打开,所以它也是每月门层排查的固定动作(见 2.9)。

⚠️ 很多人把 Google-Extended 当成 AI 概览的开关,花力气论证放不放它,却漏掉了这个真开关。为什么不是它,见 2.4 的四条误解。

robots 与 WAF:记六行

  1. 1检索 UA12 个逐个记放行或被挡
  2. 2通配段 NDisallow 行数 N,原文逐行抄下
  3. 3训练 UA6 个,一律标与能不能被引无关
  4. 4摘要开关首页与价格页 curl -I 看三处
  5. 5CDN/WAFBlock AI bots、429、白名单
  6. 6访问日志有没有,导出权限申请日期
图:只读体检六行,缺一行都不算查过;第 2、4、6 行各连着一条会让整季白做的失效路径

那三条失效路径分别是:第 2 行不记,合并 robots 时就会解除原有保护(2.6);第 4 行漏了,nosnippet 开着没人发现,Google 腿本季按零计;第 6 行没问,闸零没法当天开工,整个门层只剩推断——所以这一行问得越早越好。

第 5 行要落三样:①「Block AI bots」/「Bot Fight Mode」开关是开、关还是无此功能;② 速率规则会不会把爬虫打成 429(对照闸零表里的 429 占比);③ openai.com/chatgpt-user.json 的 IP 段在不在白名单里。

每行去哪查:第 1、3 行打开 https://<域名>/robots.txt 逐段读;第 5 行看 CDN / WAF 后台;第 6 行问运维,记「有 Logpush / 有 access.log / 没留日志」。六行依次约 10、5、5、10、10、5 分钟。12 个检索 UA 与 6 个训练 UA 的名单和用途见 2.4;空白记录表见 → 通用版 B.1 开门模板。

⚠️ robots 放行不等于真放行——CDN / WAF 那层会在 robots 之外直接 403(推断,把握度 85%)。读检判「放行」只是纸面第一层;真放行的证据只有闸零的《爬虫命中表》。

2.3 闸二:实抓的四身份(只读)

这一节要你做的:不再用 curl -A 看内容判门,改从四条通路看同一个 URL,按四条之间的差值判出是 CSR、WAF 还是门没开。做完手上多四份独立回执,不许混成一张。

假阴:你判「挡了」假阳:你判「通了」
WAF 按 IP + rDNS 放行已验证爬虫站点对非浏览器 UA 回一个 SSR 降级版
你从办公室伪造 UA,被当伪装爬虫拦掉真实检索路径拿到的却是 CSR 版
于是去修一个没坏的东西于是整季往 AI 读不到的页上写
图:用 curl -A 伪装成爬虫看返回内容,两个方向都会判错

curl -A "OAI-SearchBot" 只证明你的基础设施对这个字符串怎么反应。左边那种放行方式不是假设:Cloudflare Verified Bots 就是按 IP + rDNS 放行的。

四身份:同一个 URL 被四条通路看到的样子

按可信度排,全部免费。

身份从哪拿通过判据它只能证明什么
a · 真爬虫看到的闸零的访问日志,按 openai.com/searchbot.json 等官方 IP 段 CIDR 过滤这个 URL 30 天内被 OAI-SearchBot 命中过且返回 200唯一的直接证据,全腿通用
b · Bing 抓到的 HTMLBing 站长工具 → URL Inspection → Live Test 返回的源码源码里字符串搜得到价格数字和正文那一段Bing / Copilot 腿;也是最接近「不渲染的爬虫看到什么」的免费样本
c · Google 抓到的 HTMLGSC → URL 检查 →「已抓取的网页」HTML同上,字符串搜得到只证明 Google 侧(Google 会渲染),不许单独作结论
d · ChatGPT 实时通路看到的在 ChatGPT 里贴这个 URL,原话:「打开这个链接,把页面上写的价格那一行原文抄给我」能逐字复述(不是转述、不是估算)ChatGPT-User 这条实时腿通了

curl 不是第五个身份,是排查手段,而且必须拆两次读:① 用普通浏览器 UA 取 HTML,看有没有正文和价格——这才是判 CSR 的正确姿势,CSR 与 UA 无关;② 再用 OAI-SearchBot UA 跑一次,只看状态码,不看内容,判 WAF。两次分别截图,回执上写明「排查用,不作通过判据」。半天快启版(→ 通用版 4.8 两条捷径与本章 checklist)里判 JS 也照 ① 做。

四条之间怎么读差值

命中且 200

全 0

403 429 超 5%

没有日志

是

否

都通

b 通 d 不通

其余组合

日志里 a 怎样

过

门没开或没被发现

WAF 或速率规则在挡

c 通而 b 不通吗

CSR 依赖

b 通吗 d 通吗

过,降级

不下结论,补 a

图:四身份判读树:结论来自四条之间的差值,不是逐条打勾

图外要补的:

  • 「过,降级」首行必须标「无直接证据,30 天后补 a」。
  • CSR 依赖 = Google 渲染得出来,不渲染的爬虫拿不到。记成待修项、当天开 SSR / 预渲染工单;页面类工作整体后移,本月不新增内容页。
  • WAF 那一格不许去改内容,它归 2.6 的 WAF 白名单。
  • 门没开那一格不许写「需求不存在」,也不许跳到「换题」。

D1 做的是体检。改门之后第 7 天(2.6),四条回执各重拉一次,和 D1 那四份并排作对照。

2.4 爬虫用途表与逐腿判门(只读)

这一节要你做的:分清 12 个检索爬虫和 6 个训练爬虫、挡了哪个断哪条腿;遇到平台、多子域、登录墙或多语言站,一条腿一条腿地判门。做完手上多一张《逐腿门态表》:一行一台主机,一列一条腿,不许合并成一格。

这是整章最容易判错的一格:挡错了没事,放错了整季白干。

检索腿(12 个)训练腿(6 个)
决定你能不能出现在 AI 答案里只关内容授权,与能不能被引无关
OAI-SearchBot 挡了,ChatGPT 腿整季为零GPTBot 挡了,照样可能被引
Googlebot 挡了,AI 概览连自然排名一起没Google-Extended 不管 AI 概览
放不放:放放不放:自己决定
图:检索腿挡了就断一条腿;训练腿全部 Disallow 也不影响任何一条检索腿

12 个检索腿:挡了会怎样

爬虫归谁挡了会怎样
OAI-SearchBotOpenAIChatGPT 这条腿整季为零
ChatGPT-UserOpenAI用户在 ChatGPT 里点开你的页时读不到。⚠️ 真开关在 WAF,不在 robots(2.6)
OAI-AdsBotOpenAI只影响跑广告的场景;不跑广告可以不放
Bingbot微软Copilot 直接断;ChatGPT 八路检索源里少一路
GooglebotGoogleAI 概览 / AI Mode 与自然排名一起没——三者共用同一个爬虫
ApplebotAppleSiri / Spotlight / Apple Maps / Apple Intelligence 整条腿断。⚠️ 这一段没放行,就别去认领 Apple Business Connect 档案
AmazonbotAmazonAlexa / Amazon 侧检索断
PerplexityBotPerplexityPerplexity 腿断
ClaudeBotAnthropicClaude 侧断
Claude-SearchBotAnthropicClaude 检索断
Claude-UserAnthropic用户在 Claude 里点开你的页时读不到
DuckAssistBotDuckDuckGoDuckAssist 断

6 个训练腿:GPTBot · Google-Extended · Applebot-Extended · Meta-ExternalAgent · CCBot · Bytespider。放不放行是内容授权问题,不是可见度问题。

误解事实
屏蔽 GPTBot 就保护了内容,或就被 AI 封了GPTBot 是训练腿;88.2% 屏蔽它的站照样被引
放行 Google-Extended 就开了 AI 概览AI 概览与 AI Mode 看 Googlebot + nosnippet
Applebot-Extended 被封,Apple 腿就断了它只是训练退出开关;Apple 腿看 Applebot
AI 爬虫都不守 robots,改了也没用Anthropic 三个 bot 全守;ChatGPT-User 才相反
图:四条最常见的误解,都是把训练腿和检索腿、或把两家的规矩混成了一件事

第一条的反面才是真正致命的:把 OAI-SearchBot 和 Bingbot 挡在门外。第二条最贵,凭的是 Google 自己的两句原话。爬虫文档:「Google-Extended does not impact a site's inclusion in Google Search nor is it used as a ranking signal in Google Search.」《AI features and your website》写死入场资格:「a page must be indexed and eligible to be shown in Google Search with a snippet」,且「robots.txt directives for Googlebot is the control」。所以 AI 概览的闸门是 Googlebot + nosnippet 三兄弟。第四条的意义在省事:Anthropic 三个 bot(ClaudeBot / Claude-SearchBot / Claude-User)改 robots 就真生效,不用碰 WAF。88.2% 出自 BuzzStream,其余出处见 → 通用版 A.5 出处清单。

AI 概览与 AI Mode

Gemini App 里的引用

Apple 腿

ChatGPT 检索

ChatGPT 实时点开

Claude 检索

Claude 实时点开

Perplexity 检索

Perplexity 实时点开

Copilot

要判哪条腿

Googlebot + nosnippet

Google-Extended

Applebot

OAI-SearchBot

ChatGPT-User

Claude-SearchBot

Claude-User

PerplexityBot

Perplexity-User

Bingbot

图:判哪条腿就看哪个 UA;看错 UA,会得出「已放行」或「进不去」两种相反的错结论

零 JS 执行的推论:主流 AI 爬虫不执行 JS,例外只有 Gemini(走 Google 基建全量渲染)和 Applebot(证据见 → 通用版 1.1 买家怎么问,AI 读什么)。所以价格、核心事实、正文段落必须在服务端渲染好的 HTML 里,用浏览器 UA 取源码就能字符串搜到;写在 JS 里,后面 90 天全白做。同一条推论的另一面:实时抓取不读 JSON-LD,schema 是基线不是杠杆(2.7)。这个例外还给了全书最有用的一条排查判据:Google 腿有席位而 ChatGPT 腿为零,这个差值本身就是 CSR 的指纹。

逐腿判门

取不到

取到

有

没有

封了

没封

200 且正文命中

被拦

没做

robots 取到了吗

记未取到,换出口重取

该 UA 有专段吗

按专段判

落通配段,不是被封

封了吗

这条腿记封

该 UA 裸抓一页

记可达

记实抓被拦,附状态码

只写 robots 未封,可抓性未验

图:判一条腿的门:robots 没封不等于抓得到,只有裸抓 200 且正文命中才记「可达」

图外的记档规则,一条都不许省:

  1. robots.txt 自己 curl 全文下载后逐段解析,按日期记档。 只 grep 一个关键词,会漏掉「这个 UA 根本没被单列」这件最关键的事。
  2. 去页面所在的那台主机查 robots,不是主域。 详情页、文档站、帮助中心常在另一台主机或子域上,robots 与主域不共享。
  3. 一行一台主机、一列一条腿,不许合并成一格。 同一个平台完全可能某几条腿封、另几条腿开,合并成一格就会整条链被扔掉。
  4. Google-Extended、Applebot-Extended、Meta-ExternalAgent 是训练 / 授权腿,不进这张表。
  5. 表上必须带「验证等级」一栏:robots 实测 / 裸抓实测。裸抓回执只许写「实抓 200 + 正文命中」或「实抓被拦(附状态码)」,不许写「已放行」。robots 只解除协议层禁令;CSR 渲染和 WAF / 地域风控(403、验证码、跳转)是另外两道闸,它们不写在 robots 里。
  6. 平台 robots 会变,记进《站外资产腐烂表》,每季度重跑一次。连接被拒、超时、TLS 握手失败,一律记「未取到」,重取不到就空着,不许猜填。
  7. 平台封门 ≠ 该平台没有销量价值。 判死的只是「某条腿上的引用」,不是生意;别的腿、以及走数据 feed 的购物货架可能照常出现。对外说话时这两件事不许混。

某条腿被封的主机,那条腿上不排任何内容工作,验收也不许把它算进席位。这里判的只是门开没开,和 → 通用版 4.6 四态、两层分母与弃权线 判「一个 URL 进不进得去」是两件事。可复现的逐平台 robots 命令见 → 通用版 B.1 开门模板。

举例(培训)2026-09-21 实测新加坡官方培训门户 TPGateway 的 robots.txt:User-agent: * → Disallow: /;后面的 Allow: / 段只列 Googlebot(含 Image / Video / mobile)、Slurp、bingbot、Applebot、Twitterbot、Pingdom。GPTBot / OAI-SearchBot / ChatGPT-User / ClaudeBot / PerplexityBot 一个都不在里面,全部落 Disallow: /。→ Google、Apple、Bing 三腿开,OpenAI、Anthropic、Perplexity 三腿封:只为前三腿做、只在前三腿上验收,ChatGPT 侧席位不计。

五种站点形态,各多查一样

站点形态多查什么判据与处置
单页应用 / 客户端渲染普通浏览器 UA 取 HTML,grep 正文里一句实际文字找不到 = 正文不在 HTML 里。关键正文改服务端渲染或预渲染,不许「等 SEO 改版一起做」
多子域逐子域各 curl 一份 robots,一个子域 × 一条检索腿一格缺回执的子域,其页面本季不算「已开门」、不许计入交付。文档站、帮助中心、信任页同样要开门并服务端渲染
登录墙 / 询价墙关键数字在不在墙外墙后的字对 AI 等于不存在:做一份公开可核的摘要页或主域镜像
多语言站每种语言各跑一遍四身份不许只查一种语言
价格、库存变得极快这些字段是不是靠客户端脚本注入是 = 等于没有

两个病因分开判,顺序不许反:先看 robots 回执(逐子域 × 逐腿一次 curl,最便宜)——某个子域漏改时,被封的那条腿是零、没被封的腿正常,改一行字就好;robots 全绿之后才查 CSR。顺序反了,就会在一个 robots 一行字能修好的问题上排一整季的工程改造。两条都修完,那条腿才从 0 变 1。

举例(B2B 软件)站点天然多子域:www / docs / help / blog / status / app / trust,每个子域各查一份 robots,主域全绿不代表 docs 全绿。

2.5 闸三只读:接上两个免费 AI 报告

这一节要你做的:D1 就接上 GSC 的生成式 AI 报告和 Bing 站长工具的 AI Performance,各真读一次,并核对返回的站点字段是自己的站。做完手上多两份全案唯一免费、第一方、不可伪造的数据;读完才开探测预算。

  1. 1约权限域名验证,与日志权限同一封信
  2. 2开 GSC 报告生成式 AI 表现,导出 CSV 并截图
  3. 3开 Bing 报告站长工具 AI Performance,同上
  4. 4真读一次核站点字段,配错会静默读到别的站
  5. 5落盘两张接入截图,读法见 4.2
图:接两个后台五步;读错站点比没接更糟,因为工具会静默读到别的站还返回 ok

三条规矩:

  • 站点字段核不对 = 这一格没做,不许标完成。 站点参数没配对时,工具会读到另一个站还照样返回 ok,这比没接更糟:你会拿别人的数当自己的基线。GA4 等其他只读后台同理。
  • 域名验证权限拿不到,就列红色阻塞项。 它挡的不只是这一格:Bing 收录提交(2.7)、Bing Live Test 与 GSC 已抓取的网页(2.3 的 b、c)都要先过域名验证。
  • 这一节只接入、只读。 两份报告怎么读、各拿什么、各有什么坑,只在 → 通用版 4.2 题池:三十句从哪来、怎么配、怎么签 写一次;Bing 收录查漏与 IndexNow 提交是改动,放在 2.7。

同一天顺手开工的另一件免费的事,是从前台记录或 CRM 抄最近 15 单成交前买家问过的原话,它是题池唯一的 A 类来源,做法同样见 4.2。

2.6 改门:nosnippet、robots 四步合并、WAF 白名单

这一节要你做的:先确认基线已落盘,再在同一天按 nosnippet → robots → WAF 的顺序改完,把改门那天记成分界日。硬闸照旧:基线没落盘,不改任何门、档案、事实页。 做完手上多一份合并后的 robots.txt、一句写着 N × 12 的回执和一条 WAF 白名单规则。

  1. 前置基线已落盘Top 20、噪声带、36 次品牌六问
  2. 闸一 anosnippet三处改回,grep 全空
  3. 闸一 brobots四步合并,回执写 N × 12 原句
  4. 闸一 cWAF加 chatgpt-user.json 的 IP 段
  5. 记分界日改门当天写进注册表
  6. D+7重拉复检日志看 ChatGPT-User,四身份重拉
图:改门当天按这个顺序走,分界日从这天起算;前置不满足,后面一步都不动

改门那天是全案的分界日,所有「改门前 vs 改门后」的对比都以它为界;每一页另有自己的分界日,即页面上线日(2.8)。全书周次的 W1 也从这天起算。

闸一 a · nosnippet

命中在哪怎么改
meta robots / googlebot 里的 nosnippet 或小数字改成 max-snippet:-1
响应头 X-Robots-Tag在 CDN / 服务器层去掉,或改成 max-snippet:-1
正文标签上的 data-nosnippet删掉这个属性
图:三处命中各有一个改法,改完再 grep 一遍三处全空才算过

任一命中而四周内不改 → Google 腿本季按零计,写进首行,月度记录里 Google 那格标「开关未解除」。

闸一 b · robots 四步合并

最具体的段胜出

其他段全部忽略

追加一个具名段

该爬虫只认自己那段

通配段的 Disallow 失效

后台与参数页进 AI 检索

图:直接在 robots 末尾追加具名段,会让这些爬虫脱离通配段,原有的保护对它们全部失效

被放出去的通常是 /wp-admin/、/cart/、/?s= 这类路径。后果不是排名不动,是后台路径和参数页进了 AI 检索。

  1. 1抄通配段Disallow 逐字抄下,记行数 N
  2. 2写检索段12 个具名段,每段 Allow: /
  3. 3复制 N 行进每一个具名段,数够 N × 12
  4. 4收尾训练段单列,Sitemap 行放末尾
图:robots 合并四步,顺序不许反;第 3 步不做等于解除原有保护

Sitemap: 行放末尾,是因为它不属于任何 group。训练段放不放自己决定,但写 Allow: / 的训练段同样要带那 N 行。回执里必须逐字记这一句:

原通配段 Disallow 行数 = N,已逐行复制进 N × 12 处(12 个检索类具名段);训练段中写 Allow: / 的,同样复制。

这句话不在回执上,闸一不算过。 检索 12 段 + 训练 6 段的 robots 母本全文,只有 → 通用版 B.1 开门模板 里那一份,交给改站的人直接从那里复制;母本里的 <N 行 Disallow> 是占位符,必须换成第 1 步抄下的原文,一行不少、每段都要。

不肯改 robots → 整个站点层工作降为只读监测。

Perplexity-User 不进母本。Perplexity 官方爬虫文档原文:「Since a user requested the fetch, this fetcher generally ignores robots.txt rules.」(https://docs.perplexity.ai/guides/bots)。它和 ChatGPT-User 一样,robots 管不住;要放行只能在 WAF 加它的官方 IP 段(同一页公布为 https://www.perplexity.com/perplexity-user.json)。

闸一 c · WAF:ChatGPT-User 的真开关

robots 里写 Allow: /WAF 白名单加官方 IP 段
无害,但对 ChatGPT-User 无效真开关,7 天后日志可验
OpenAI 原文:robots.txt rules may not apply规则名写 allow-chatgpt-user
只改这边:以为门开了实时通路其实还关着,ChatGPT-User 命中 0
图:对 ChatGPT-User,robots 里的 Allow 只是声明,真开关在 WAF

OpenAI 官方原文完整的一句是:这类抓取由用户动作触发,「Because these actions are initiated by a user, robots.txt rules may not apply」。WAF 这边当天做三件,各留截图:

  1. 「Block AI bots」/「Bot Fight Mode」开关的状态截图。
  2. 速率规则:把已验证爬虫移出速率规则,截图并附闸零表里的 429 占比。
  3. 白名单:openai.com/chatgpt-user.json 的 IP 段加进去,规则名 allow-chatgpt-user,截图。

D+7 复检:重拉日志,看 ChatGPT-User 有没有命中;2.3 的四条回执同日各重拉一份,和 D1 那四份并排存。

2.7 闸三闸四:收录通路与 JSON-LD 一次封版

这一节要你做的:收录按两条腿分开处理——Bing 腿用 IndexNow,ChatGPT 腿用档案认领与贴 URL 复述;再花半天把全站 JSON-LD 一次封版,此后不进每页检查。做完手上多两格收录回执和一份封了版的 schema 模板。

闸三 · 收录分两格

Bing 腿ChatGPT 腿
site: 逐页查收录,缺的用 IndexNow 提交Foursquare 认领:类目照官方类目树逐字选
Bing 站长工具看 IndexNow InsightsFoursquare 营业状态要对;Yelp 认领
提交到收录有报告可证,可作回执贴 URL 让 ChatGPT 逐字复述价格行
Copilot 直接用这条腿本地题主走 Foursquare、Yelp、OpenAI 本地索引
IndexNow 只喂 Bing 与 Yandex判据是四身份 d,Bing 收录不作判据
图:收录分两格不许合并:Bing 收录证明不了 ChatGPT 腿读到了你

「ChatGPT 走 Bing 索引」在 2026-09 已不成立:ChatGPT 有多路检索源,Bing 只是其一(证据见 → 通用版 A.1 机制、门与人这一层的证据)。所以 IndexNow 照做,但它不是 ChatGPT 腿的开关。认领档案本身是改动,只在基线落盘后做;五处商家档案的完整做法见 → 通用版 3.4 第三方资质分级、Wikidata 与五处商家档案。Applebot 放行已验,是认领 Apple Business Connect 档案的前置条件。

闸四 · JSON-LD 半天封版

先写

实时抓取读得到

后顺手写

间接,仅 Google 腿

实时抓取

同一组字段

可见 HTML

进 AI 答案

schema 与 sameAs

Google 知识图谱

一个都不读

图:字写进可见 HTML 才会被实时读到;schema 只走 Google 知识图谱这条间接路

顺序反了,会得到一个「字段齐全但 AI 读不到」的站。它那一点间接作用,也只在同样的字段已经写进可见 HTML 的前提下才有;单独做它,收益接近零。加 JSON-LD 后,AI 概览(AIO)引用 −4.6%,是唯一显著的一项,方向为负;另外两个平台不显著(证据见 → 通用版 A.1 机制、门与人这一层的证据),所以它是一次性的活:

规定内容
一次性模板Organization(或所在行业的 schema 子类型)+ 每位执业人的 Person + sameAs。建站时配一次,半天封版
不逐页写、不逐页查不进每页上线检查清单,也不进审稿清单
只需四项正确① 法定名称与 /facts 逐字一致 ② 地址与电话与五处档案逐字一致 ③ 每位执业人的注册号 ④ sameAs 串
把握度注释模板文件里写一句「间接、仅 Google 腿、把握度低」,防止下一个人把它当主杠杆

sameAs 串这些:监管或注册号查册页、协会档案页、Google 与 Bing 商家页、ORCID / Scholar、会议讲者页、LinkedIn、Wikidata Q 号。

两条顺带的规矩:❌ 不堆 FAQPage schema(它为富结果而做,不进 AI 引用);❌ 不放 aggregateRating 自评分(强监管侧还撞上证言与评分的禁令,举例行业条文明文)。问答式 H2 和页尾短问答要做,schema 不要堆。

唯一的例外:结构化数据被当作数据通道时(例如商品 feed 进购物图谱),它有用,但那是另一条不经过实时抓取的路。「结构化数据有用」只在这个意义上成立,不能据此改动承接页上的任何动作。这一格对客户怎么说,口径句见 → 通用版 B.2 口径句与话术。

2.8 每页上线闸

这一节要你做的:每页上线当天过三验、第 7 天做复述测试,全过才标「已上线」,并记下这一页的分界日。做完手上多一条每页从上线到 D90 的时间线,和一本记着上线日期的注册表。

  1. 当天见新标题无痕窗口 + 强制刷新,人眼确认
  2. 当天四份一致四份 HTML 里同一段正文与价格都在
  3. 当天提交回执IndexNow ping,只管 Bing 腿
  4. D7复述测试ChatGPT 逐字复述一条独家事实
  5. 标已上线记分界日分界日是上线日,不是开工日
  6. D14长视频视频闸,缺了下一页不许开工
  7. D30/60/90同规格比同题池、同引擎、同遍数
图:一页从上线到 D90;前四项缺一项都不许标「已上线」,这一页的分界日记上线当天,不是开工日

每一步漏了会怎样:

  • 见新标题漏了:别人打开看到的是旧版。
  • 四份 HTML 一致:用 OAI-SearchBot、Bingbot、Googlebot、普通浏览器四个 UA 各取一份源码,同一段正文和同一个价格字符串都得在。漏了的后果有两种:给机器看另一版,会被判操纵;或者价格根本进不了答案。这一步查的是「四份是不是同一版」,和 2.3 判门用的四身份不是一回事。
  • D7 复述测试是 ChatGPT 腿的真验收:在 ChatGPT 里原文问一次该页上的一条独家可核事实,或贴 URL 让它逐字复述那一行数字,截图留档。n=1 也成立,它测的是「读到没读到」,不是「排第几」。
  • D14 长视频不挡「已上线」,挡的是下一页开工;它属于写页的三道机械闸,规格见 → 通用版 5.4 三十天写页顺序与三道机械闸 与 → 通用版 6.7 本人口述长视频。
  • D30 / D60 / D90 三点必须同规格:同题池、同引擎、同遍数。席位数随遍数线性放大,基线 5 轮、D90 跑 10 轮,什么都不做也会翻倍;为什么见 → 通用版 7.5 量具纪律:换尺子就不可比。

每页上线时另登记 2–3 条该页独有的可核事实字符串,每月复测时去找它们,这是全流程唯一能给出页级因果的信号,做法见 → 通用版 7.2 噪声带、页级信号与每月十步。

2.9 门层排查与本章验收

这一节要你做的:每月复测时席位增量没超噪声带,就从门这一层查起,按两张诊断图把每个症状落到一个修法;席位涨了也照查。最后照十项清单全勾,才算开完门。

什么时候查:两个时点。① 席位增量未超噪声带时,从这里开始查,不许跳层(分诊的其余几层见 → 通用版 7.3 没动分诊与下月三个点)。② 门这一层每月无条件查一次,席位涨了也要查:它的失败是静默的,页面根本没被读到时,席位完全可能因为别的原因在涨,等下个月才发现整个月白做。

修

修

修

修

修

判

门层症状

OAI-SearchBot 命中为 0

闸一三小步,2.6

403 与 429 超 5%

白名单并移出速率规则

全 200 但只中首页

sitemap、首页内链、IndexNow

后台路径出现在搜索里

重做合并,数够 N × 12

Apple 档案没动静

先放行并验 Applebot

说 GPTBot 被挡才没被引

误判,别拿它当判据

图:日志、robots、WAF 这一层,每个症状只落到一个修法

先查

判

修

判

判

修

按序

任一不过

Google 有席位、ChatGPT 为零

CSR 依赖

四身份 c 通、b 不通

开 SSR 或预渲染工单

四身份 b 通、d 不通

WAF,回边缘层那张图

改版或换插件后席位掉

nosnippet 复发

三处改回 max-snippet:-1

席位没动,原因不明

查五样,见下文

是门问题,不是选题

图:渲染、收录、nosnippet 这一层:Google 有席位而 ChatGPT 为零,先查 CSR 不查选题

「原因不明」时按顺序查的五样:① 访问日志有没有真 OAI-SearchBot 命中、返回码是什么 ② nosnippet 三兄弟有没有被 CMS / 插件重新打开 ③ 四份 HTML 逐字一致 ④ site: 查 Bing 收录 ⑤ 在 ChatGPT 里贴 URL 让它逐字复述价格那一行。

两张图之外的纪律:

  • 任一不过:当天修,7 天后复检,本月不换题、不新增内容页。
  • 403 / 429 那一格不许去改内容。
  • 不许跳过门这一层直接写「需求不存在」。连续两个月停在同一层没修好,是执行的问题,不是题目的问题。
  • 五道闸每个行业都必做。 另有两项按站点形态加做:CSR 体检(价目表、课表、文档站、筛选与价格组件这类前端组件渲染的内容,浏览器 UA 取 HTML 看正文在不在);可见正文体检(检索腿 UA 裸抓,剥标签后数可见正文字符数与独立陈述句条数——有数字没句子的页,答案货架上整页进不去)。

举例(电商)可见正文体检是强制项,陈述句 < 12 条的页不许标「已上线」;一张品类页 HTML 很大、剥完标签可见正文只剩一小截的实测,见 A.1。

本章验收清单

门是乘数,不是变量:它只有 0 和 1 两个值,而且没有证据就算 0。照着打勾,全勾才算开完门:

  • [ ] 《爬虫命中表》四列填满,落盘 crawler_hits_30d.csv;拿不到日志的,已列红色阻塞项并写明补交日期
  • [ ] nosnippet 三处 grep 全空,8 页各一张截图
  • [ ] robots.txt 12 个检索类具名段齐,回执上写有「原通配段 Disallow 行数 = N,已逐行复制进 N × 12 处」
  • [ ] Sitemap: 行在文件末尾
  • [ ] WAF 白名单规则 allow-chatgpt-user 已加,截图留档;7 天后复检 ChatGPT-User 有命中
  • [ ] 闸二四条判准各一份独立回执,没有混成一张;curl 的两次读分别截图并写明「排查用,不作通过判据」
  • [ ] Bing 站长工具 AI Performance + GSC 生成式 AI 报告两个后台都已接入,各一张截图
  • [ ] JSON-LD 模板半天封版,之后不再逐页写
  • [ ] 每一页上线都过了上线闸(当天三验 + 第 7 天复述),上线日期已记
  • [ ] 门这一层的排查表,已排进每月固定动作

清单里凡是「记现状」的部分都在 D1 做完;凡是动了门的项,都只在基线落盘之后做,改门那天已记为分界日。

回目录 · GEO Playbook 通用版

本章以 CC BY 4.0 许可发布 · © Canlah AI。 转载、改编请署名「Canlah AI · GEO Playbook」并链接本页。

给 AI 助手用的精简版在 GitHub,本章的 Markdown 版可以直接交给 AI 助手读; 全书 PDF、轻量版与全书 Markdown 在 下载区; 书里数字背后的实测数据在 数据集页(CC BY 4.0)。