搜索排名与 AI 引用,不是同一件事
Googlebot 读你的页、建立索引、再依查询排序。GPTBot、OAI-SearchBot、ClaudeBot、PerplexityBot、Google-Extended 与 Applebot-Extended 做的是另一件事:把可引用的事实带进生成式答案。两套系统都读 robots.txt,但目的不同。只为 Google 优化、同时在 robots 或 WAF 挡住 AI crawler,等于你在为一个表面投资、却主动退出另一个表面。GEO 不是换关键字密度,而是确保引用系统拿得到、读得懂、找得到来源页。
robots.txt 是劝告;HTTP 403 是拒绝
遵守 robots.txt 的 bot 看到 Disallow 就会离开。对认真的 AI 搜索 crawler 来说,这已经足够让你从引用库消失。更严重的是边缘 403:请求在到达 origin robots.txt 之前就被 CDN 挡下。我们稽核自己的网站时,三个香港语系主机对上述 AI bot 都回 200;作为 hreflang x-default 的 www.igears.net 却在 Cloudflare 对 GPTBot、ChatGPT-User、OAI-SearchBot、ClaudeBot、Claude-User 与 PerplexityBot 回 403。同一套内容,fallback 语系对最需要它的 crawler 是隐形的。
Cloudflare 的双重开关
若网站前面有 Cloudflare,AI crawler 政策通常不在 nginx,而在仪表板的两处,关一个留一个等于没关。第一是 Super Bot Fight Mode/「Block AI Scrapers and Crawlers」——这产生 403。第二是 managed robots.txt injection——Cloudflare 会在 origin robots.txt 前面插入 Disallow GPTBot、ClaudeBot、Google-Extended、Applebot-Extended。同一 user-agent 出现两次时,不同解析器处理顺序不一。正确做法是 origin 写清楚允许哪些 citation bot,并在仪表板关掉会覆盖它的托管规则。
Bytespider 不是「西方 AI 垃圾爬虫」这么简单
许多西方范本会建议一律 Disallow Bytespider。我们同时营运 cn.igears.com.hk。Bytespider 服务字节跳动,而豆包是中文市场使用量最高的助手之一。在简体主机上封锁它,等于在你专门建立的语系里退出该引用表面。实务上:三个香港主机允许 Bytespider;www.igears.net 维持封锁;若日后流量变成问题,用限速而不是永久封禁。ImagesiftBot 这类只抓图、没有引用行为的爬虫,则明确 Disallow。
旧文章 301 到分类页,是在丢权重
把 /news_details/某篇文章 301 到 /insights/,对 Google 来说是 soft 404。正确顺序是:有对等新文就 301 到那一篇;没有对等、也没有流量就 410;仍有曝光的题目就重写成新文章再 301。本文的前身是 /news_details/seo-robots-txt。把这样的 URL 410 或导向分类页,是把还在工作的资产丢掉。
一份可维护的 robots.txt 长什么样子
默认 User-agent: * Allow: / 已经允许大多数 bot。在 GPTBot、OAI-SearchBot、ChatGPT-User、ClaudeBot、Claude-User、PerplexityBot、Google-Extended、Applebot、Applebot-Extended 下面再写一行 Allow: /,是文件:避免十八个月后有人为了「省带宽」加一条总 Disallow。政策注解要有日期与负责人。Sitemap 必须是该 host 的绝对 URL。正式站的 /robots.txt 应由 nginx 明确 alias 到每台主机自己的档案;docroot 里不要留一份名叫 robots.txt、内容却是 Disallow: / 的 staging 残留。
llms.txt 补的是「权威摘要」,不是取代页面
llms.txt 是给助手看的精简公司与方案清单。它必须跟网站一致,过期的 llms.txt 比没有更糟。我们用 PHP 从同一套公司资料与页面 registry 产生,并以 text/plain; charset=utf-8 输出。它补充 robots、sitemap 与 JSON-LD,不取代任何一项。