更新日期:2026-09-18
近两年在 access.log 里翻日志,最常见的困惑不是「有没有被爬」,而是「被谁爬了、该不该拦」。GPTBot、ClaudeBot、PerplexityBot、Bytespider 这些 UA 与 Googlebot、Bingbot 混在同一条日志流里,抓取模式却完全不同:有的整站扫,有的只抓少量重点页,有的只在某个用户把链接粘进对话框之后出现一次。把它们当成同一种东西处理,通常会出现两种相反的坏结果——一律封禁,丢掉 AI 搜索里的引用与自然流量;一律放开,用自己的内容补贴别人的模型,却拿不到任何可衡量的回报。
本文是站内《2026 年 GEO/AEO 实战》的运维续篇。那篇讨论的是 Google 官方对 GEO/AEO 的立场与常见误区(llms.txt 不是排名开关、不需要固定 chunk 长度、不要为 query fan-out 批量造页面),本文不重复这些结论,只做四件可执行的事:识别与分类爬虫、在 robots.txt 与 CDN/WAF 两层落实差异化策略、把页面改造成可被正确摘取的形态、建立引用监测与月度复盘。还没读过那篇的,建议先看 2026 年 GEO/AEO 实战:如何让内容进入 Google AI Overviews 与 AI Mode,再回到本文实施。
适用环境:自建或托管的 Nginx/OpenResty、Apache 站点,以及 Cloudflare 等常见 CDN 前置的架构,具备 access.log 或 CDN 日志访问权限,能改 robots.txt、响应头与 WAF 规则。不适用场景:纯客户端渲染且只有前端埋点的单页应用(需先补齐服务端日志),以及流量来源完全不可见的第三方托管博客(只能做内容层与 robots.txt 层的工作)。
事实边界先说清楚:某个运营方是否遵守 robots.txt、UA 字符串的确切写法、IP 段范围、是否提供「按抓取付费」这类机制,都会随时间变化。本文只给方法与判据,不写死具体 token 或 IP;涉及策略变化处,请动手前核对运营方官方文档。
先看结论
- 先分类再动手。把爬虫分成训练语料、搜索索引、用户触发实时抓取三类,每类只允许三种处置之一:允许、限速、阻断。不要整站一刀切。
- 不要用 robots.txt 阻断 Googlebot 与 Bingbot。这两个 UA 直接对应搜索流量;要限制 AI 用途,改用 Google-Extended、Applebot-Extended 这类独立的用途 token。
- 训练类与索引类是两套 UA、两套出口 IP。封掉 GPTBot 不会让 OAI-SearchBot 停止访问,也不会让你从对应搜索结果里消失;反过来同样成立。
- robots.txt 是约定而不是强制。需要真正落地时,在 CDN/WAF 或 Nginx 层按「已验证 IP + UA」的组合拦截,并预留观察窗口。
- UA 可以随意伪造。任何拦截方案都要做反向 DNS 或官方 IP 段核对,只按字符串匹配既误伤真实爬虫,也挡不住伪装流量。
- 抓取控制与摘要/索引控制是两件事。不想出摘要用 nosnippet、data-nosnippet、max-snippet,而不是 Disallow——禁止抓取后爬虫读不到 noindex。
- 可摘取性来自页面本身写得清楚。结构化数据必须与可见内容一致,canonical 与实体命名要统一,不要让标记断言用户看不到的内容。
- 引用监测要有基线。至少记录「哪类问题、在哪个助手、有没有引用」,再与日志、引荐流量按月复盘,否则无法判断策略是否有效。
把“AI 爬虫”拆成三类
分类依据不是「它是不是 AI 公司」,而是「抓走内容之后拿去做什么」。同一运营方可能同时派出多种爬虫,职责不同,价值也不同。
第一类是训练语料爬虫。目标是把页面收进数据集,用于未来某个时间点的训练或再训练,典型代表是 GPTBot、ClaudeBot、CCBot、Bytespider、Amazonbot。注意 Google-Extended 与 Applebot-Extended 并不是独立爬虫,而是 robots.txt 中的独立 token,用来控制 Googlebot、Applebot 已抓到的内容能否用于对应的生成式 AI 用途。这一类的处置逻辑是:阻断不会带来即时流量损失,也不会带来即时引用收益;放开同样没有可归因回报,只是「可能」影响未来模型是否了解你的内容,而这个影响基本无法测量。它确定的成本是带宽、连接数与源站负载。
第二类是搜索索引爬虫。抓取是为了建立可检索索引,进而在回答问题时引用并给出链接,典型代表是 OAI-SearchBot、PerplexityBot、Googlebot、Bingbot、Applebot。处置逻辑完全不同:阻断等于主动放弃被引用和被点击的机会,通常只有在对方明显超出合理抓取频率、影响源站可用性时才限速,而不是阻断。
第三类是用户触发实时抓取。它不是批量爬取,而是真实用户在对话里粘贴链接、要求助手阅读某页面或做实时检索时,由系统发起的一次性请求,典型代表是 ChatGPT-User、Perplexity-User、Claude-User 这类带 -User 后缀的 UA。它量小、分散、跟随会话生命周期,部分运营方明确说明这类请求代表用户本人访问。阻断它等于让那个用户看到读取失败,或拿到一个不含你页面信息的回答,对品牌没有好处。
为什么阻断一类不影响另一类:多数运营方给不同用途分配了不同的 UA token,出口 IP 段往往也是分开的。所以你可以只让训练类拿不到内容,同时保持索引类正常抓取。反过来,「我封了 GPTBot,所以 ChatGPT 就查不到我了」通常是错的;「我允许了 GPTBot,所以在 ChatGPT 里就会有引用」同样是错的。
对日志里新出现、不在认知范围内的 UA,可用三个判据初判:抓取广度(训练类表现为对全站历史 URL 的持续均匀扫描,索引类优先抓高价值页并跟随链接,实时类与外部分享热点强相关)、请求节奏(训练类长时间稳定速率,实时类零星脉冲)、以及是否先取 robots.txt、是否只发 HEAD 探测。判据只用于初判,最终仍要回到官方文档确认。
常见爬虫与运营方对照表
下表用于建立内部台账,不是权威清单。运营方会新增或改名 UA,控制方式也会调整,请把每一行当作待核对项。
| 用户代理 | 运营方 | 用途分类 | 控制方式 | 注意事项 |
|---|---|---|---|---|
| GPTBot | OpenAI | 训练语料 | robots.txt 支持;可在 CDN/WAF 按已验证 IP 阻断 | 影响未来训练用途,不影响当前回答 |
| OAI-SearchBot | OpenAI | 搜索索引 | robots.txt 支持 | 阻断会降低被引用的机会 |
| ChatGPT-User | OpenAI | 用户触发实时抓取 | 通常遵循 robots.txt,以官方说明为准 | 代表用户主动访问,误伤影响体验 |
| ClaudeBot | Anthropic | 训练语料 | robots.txt 支持 | 与 -User 类 UA 分开处置 |
| Claude-User | Anthropic | 用户触发实时抓取 | 以官方说明为准 | 单次、跟随会话,量很小 |
| PerplexityBot | Perplexity | 搜索索引 | robots.txt 支持 | 索引类,建议允许并只做速率约束 |
| Perplexity-User | Perplexity | 用户触发实时抓取 | 以官方说明为准 | 属用户行为代理 |
| Googlebot | 搜索索引 | robots.txt 支持;有官方 IP 段 | 阻断直接影响 Search 流量,不建议 | |
| Google-Extended | 独立 AI 用途控制 token | robots.txt 中单独成组 | 不是爬虫,只控制已抓取内容的用途 | |
| Bingbot | Microsoft | 搜索索引 | robots.txt 支持 | 影响 Bing 及依赖其索引的助手引用 |
| CCBot | Common Crawl | 训练语料(公开数据集) | robots.txt 支持 | 很多模型间接使用公开数据集 |
| Bytespider | 字节跳动 | 训练语料 | 支持情况需自行验证 | 频率可能较高,优先限速而非阻断 |
| Amazonbot | Amazon | 训练/检索相关用途 | robots.txt 支持 | 具体用途以官方说明为准 |
| Applebot | Apple | 搜索索引(Siri、Spotlight 等) | robots.txt 支持 | 索引类,建议允许 |
| Applebot-Extended | Apple | 独立 AI 用途控制 token | robots.txt 中单独成组 | 同样不是爬虫本身 |
两条硬性提醒。
第一,用户代理字符串可以被任意伪造。只依据 User-Agent 判断的规则,同时存在「误放行伪装者」和「误拦真实爬虫」两个方向的错误。正确做法是双因子核对:UA 匹配后,再验证来源 IP 是否落在该运营方公布的 IP 段内,或反向 DNS 的 PTR 是否落在其公布的域名后缀下。主流 CDN 的「已验证机器人」功能本质上就是在替你维护这份名单。
第二,本表一定会过期。请额外记录三列内部信息:首次发现时间、官方文档链接、最近核对日期。没有这三列,半年后这张表就没人敢用了。
robots.txt 差异化策略
robots.txt 的正确用法是「按用途分组,而不是按站点分组」。同一文件里可以有多个 User-agent 组,每组独立声明 Allow 与 Disallow。主流实现多采用最长匹配优先:两条规则同时匹配时,更长更具体的那条生效;* 是通配符,行尾 $ 用于锚定结尾。
控制抓取只是第一层,第二层是控制索引与摘要。两者生效机制完全不同,混淆它们是最常见的配置事故:
| 目标 | 正确手段 | 错误做法 | 后果 |
|---|---|---|---|
| 不抓取某目录 | robots.txt Disallow | 依赖目录权限 | 爬虫不再请求该目录 |
| 不索引但保留抓取 | noindex(meta 或 X-Robots-Tag) | robots.txt Disallow | 读不到 noindex,URL 仍可能被索引 |
| 不显示搜索摘要 | nosnippet、max-snippet | robots.txt Disallow | 页面仍被索引,摘要展示受控 |
| 只隐藏页面局部文本 | data-nosnippet | 用 CSS 隐藏 | 用户与爬虫所见不一致,高风险 |
| 控制 AI 训练用途 | 用途 token 或运营方文档 | 阻断索引类爬虫 | 可能同时损失搜索流量 |
一个可维护的示例配置如下。每个组之前必须有注释说明理由和核对日期,否则半年后没人敢改:
# 索引类与用户触发类:引用与流量的来源
User-agent: Googlebot
Allow: /
User-agent: Bingbot
Allow: /
User-agent: Applebot
Allow: /
User-agent: OAI-SearchBot
Allow: /
User-agent: PerplexityBot
Allow: /
User-agent: ChatGPT-User
Allow: /
# 允许抓取,但禁止用于生成式 AI 训练用途(按运营方 token 单独成组)
User-agent: Google-Extended
Disallow: /
User-agent: Applebot-Extended
Disallow: /
# 训练语料类:按业务决策处置,此处示例为阻断
# 核对日期:2026-09-18
User-agent: GPTBot
Disallow: /
User-agent: ClaudeBot
Disallow: /
User-agent: CCBot
Disallow: /
User-agent: Bytespider
Disallow: /
# 兜底:只约束未列出的爬虫,不要波及已验证的搜索爬虫
User-agent: *
Disallow: /admin/
Disallow: /search/
Allow: /
Sitemap: https://www.mf8.biz/sitemap.xml
关于这份示例,有四点必须说明。
Sitemap 要用完整绝对 URL,且该文件真实可访问、内容最新。它是发现渠道,不是抓取许可。
不要在 User-agent: * 里放全站 Disallow: /,再指望上面的分组把搜索爬虫救回来。一旦兜底组阻断全站,而未列出的真实爬虫恰好使用自定义 UA,你会在毫无察觉的情况下损失流量。稳妥顺序是先写具体组,再用兜底组只处理敏感路径。
示例中把训练类统一 Disallow 只是模板,不是建议。是否阻断、阻断哪些运营方是商务与内容策略决定,取决于你是否有回流、是否有对外授权、以及抓取对源站负载的实际影响。先跑一个月日志统计再决定,比照抄别人的 robots.txt 可靠。
robots.txt 只对愿意遵守它的爬虫有效。把它当安全边界的方案都是错的:它不提供认证、限速与审计。真正的强制层在下一节。
CDN 与 WAF 层策略
当 robots.txt 不够用时,需要在请求到达源站前做判定。CDN/WAF 层的核心能力有三项:机器人识别(签名、指纹、行为特征与已验证 IP 名单)、速率限制、JS 挑战。取舍是:识别最准但需维护名单,限速最通用但会误伤合法高频抓取,JS 挑战能拦批量脚本但对不支持 JS 的爬虫和部分合法助手不友好。
推荐上线顺序是「先观察、再限速、最后阻断」。第一阶段只记录不拦截,统计每个 UA 的日请求量、路径分布、响应码分布和带宽占比;没有这份基线,后面所有阈值都是拍的。第二阶段对未验证流量限速:UA 声称是某爬虫但 IP 不在官方段内的,给宽松上限;UA 未知且行为像批量扫描的,给更严格上限或直接挑战;已验证搜索爬虫走白名单,不参与限速。第三阶段才考虑阻断训练类,且不要删规则,用开关控制以便随时回滚。每次阻断上线后至少观察两周的引荐流量与索引覆盖变化。
在 Nginx/OpenResty 层可用 map 加 limit_req 做最小实现:
# /etc/nginx/conf.d/ai-bot-throttle.conf(先在测试环境验证)
map $http_user_agent $ai_bot_class {
default "";
~*(GPTBot|ClaudeBot|CCBot|Bytespider) "train";
~*(OAI-SearchBot|PerplexityBot) "search";
~*(ChatGPT-User|Perplexity-User) "live";
}
limit_req_zone $binary_remote_addr zone=ai_train:10m rate=1r/s;
limit_req_zone $binary_remote_addr zone=ai_other:10m rate=5r/s;
server {
limit_req zone=ai_train burst=10 nodelay;
limit_req zone=ai_other burst=50 nodelay;
}
这段配置只解决限速,不解决身份验证。身份验证仍应交给 CDN 的已验证机器人功能,或自行维护官方 IP 段并定期同步。改完配置后的验证与回滚:
sudo nginx -t # 先做语法检查,不要直接 reload
sudo nginx -s reload # 通过后平滑重载
for ua in GPTBot OAI-SearchBot Googlebot Bingbot; do
code=$(curl -sS -A "Mozilla/5.0 (compatible; ${ua})" -o /dev/null -w '%{http_code}' https://www.mf8.biz/)
echo "${ua} => HTTP ${code}"
done
# 回滚:出现误伤时立刻还原上一版配置
sudo cp /etc/nginx/conf.d/ai-bot-throttle.conf.bak /etc/nginx/conf.d/ai-bot-throttle.conf
sudo nginx -t && sudo nginx -s reload
「按抓取付费」属于商业决策而非技术配置:它把「允许抓取」变成一次有定价的交易,是否参与取决于内容是否有独立变现价值、是否愿意承担配置复杂度与对账成本。站内已有两篇详细讲过落地细节:Cloudflare 侧配置与坑位见 AI 爬虫该封禁还是收费?Cloudflare AI Crawl Control 与 Pay Per Crawl 实战,MCP 与远程入口的治理边界见 Cloudflare MCP 安全治理实战:发现 Shadow MCP、Portal 与 Gateway 策略,本文不重复。
内容可摘取性工程
前面的工作决定「谁能拿到内容」,这一节决定「拿到之后能否被正确引用」。一个被抓取但结构混乱的页面,同样很难在生成式回答里被准确引用。
结构化数据的第一原则是标记与可见内容一致。JSON-LD 中每个字段都必须能在页面上被用户看到或合理推导出来;标记与页面不符属于违规,且会削弱整站可信度。优先补齐以下几类:
Article(或 NewsArticle、BlogPosting)要写明 headline、author、datePublished、dateModified。作者信息尤其重要,生成式回答更倾向于引用责任主体明确的页面;author 应指向真实的 Person 或 Organization 节点,而不是空字符串。
Organization 要写明 name、url、logo,并用 sameAs 关联该主体在其他平台的官方账号或简介页。sameAs 的作用是消歧:让系统知道「MF8 官网」和「某平台上的 MF8 账号」是同一实体,而不是两个同名主体。
BreadcrumbList 要反映页面在站点层级中的真实位置。面包屑既能出现在搜索结果中,也能让抓取方理解页面归属;站点导航改版后记得同步更新。
FAQPage 与 HowTo 需要谨慎。主流搜索引擎已大幅收窄这两类结构化数据的富媒体展示范围,把它们当「展示技巧」通常不会有效果。页面确实存在问答式或步骤式内容时,保留标记有助于语义表达;内容本身不是问答或步骤,为了标记硬凑结构反而制造一致性问题。具体展示策略以搜索引擎官方文档为准。
canonical 与重复内容处理同样属于可摘取性工程。多语言站点要为每个语言版本设置正确的 hreflang 与自指 canonical;分页列表的 canonical 应指向自身而不是第一页(除非内容确实重复);被授权转载的内容应在自己版本上指向原站 canonical,聚合页面要避免整段复制外部正文再声明为原创。这些规则不是为 AI 新增的,AI 只是放大了错误配置的代价。
最后一条底线:标记永远不能断言用户看不到的内容。不要用 JSON-LD 声明页面上不存在的作者、价格、评分或更新时间。这类做法短期收益不稳定,长期代价是整站被降权,而且很难定位到具体哪条标记引发问题。
llms.txt 的现状与边界
llms.txt 是一份民间提案(见 llmstxt.org),形态是放在站点根目录的 Markdown 文件,用简短链接列表加一句话说明,告诉大语言模型工具「本站在讲什么、哪些页面最重要」,有时配套 llms-full.txt 汇总关键正文。
边界必须说清三点:只有一部分工具会读取它,没有任何机制保证被消费;它不是排名开关,不改变搜索引擎的索引或排序行为(站内文章已论证 Google Search 不使用它决定可见性,此处不重复);它不是访问控制手段,不能替代 robots.txt,也不能阻止不遵守它的爬虫。
如果决定发布,运维上建议遵循几条纪律:内容从已有结构化来源(sitemap、栏目配置、内容表)在构建阶段自动生成,不要手工维护;文件放站点根目录,返回 200 且内容类型明确;条目只保留稳定 URL,避免带参数的临时链接;把生成时间写进文件便于判断是否陈旧;发布后用下面的命令做一次链接有效性抽检,并纳入 CI 定时任务:
curl -sSI https://www.mf8.biz/llms.txt | grep -Ei '^(HTTP/|content-type|last-modified)'
curl -sS https://www.mf8.biz/llms.txt | grep -Eo 'https://[^) ]+' | sort -u \
| while read -r u; do
code=$(curl -sS -o /dev/null -w '%{http_code}' -L "$u")
if [ "$code" != "200" ]; then echo "失效链接: $code $u"; fi
done
把这段检查放进流水线,失效链接会在下一次构建暴露,而不是半年后才发现整份文件与站点脱节。
引用监测:日志、流量与人工抽样
策略上线后必须能回答:内容有没有被正确引用。这需要三种互相独立的证据。
第一种是服务端日志,确认「谁来抓了、抓了什么」。判断身份的标准流程是 UA 加 IP 双因子核对:
# A. 按 UA 统计请求量(combined 日志格式)
sudo awk -F'"' '{print $6}' /var/log/nginx/access.log \
| grep -Eoi 'GPTBot|OAI-SearchBot|ChatGPT-User|ClaudeBot|Claude-User|PerplexityBot|Perplexity-User|CCBot|Bytespider|Amazonbot|Applebot-Extended|Applebot|Google-Extended|Googlebot|Bingbot' \
| sort | uniq -c | sort -rn
# B. 看某个爬虫在抓哪些路径,判断是整站扫描还是重点抓取
sudo grep -i 'GPTBot' /var/log/nginx/access.log \
| awk '{print $7}' | sed 's/?.*//' | sort | uniq -c | sort -rn | head -30
# C. 反向 DNS 核对:PTR 应落在运营方公布的域名后缀下
for ip in $(sudo awk '{print $1}' /var/log/nginx/access.log | sort -u | head -50); do
ptr=$(dig +short -x "$ip")
case "$ptr" in
*openai*|*anthropic*|*googlebot*|*search.msn.com*|*applebot*|*commoncrawl*)
echo "已知运营方: $ip -> $ptr" ;;
*) echo "待人工核对: $ip -> ${ptr:-无 PTR 记录}" ;;
esac
done
注意 dig +short -x 只是第一跳。正式核对还应把 PTR 正向解析回 IP,确认来回一致(FCrDNS),再与运营方公布的 IP 段列表比对,可显著提高准确率。
第二种是引荐流量。在日志或分析工具中按 referer 主机名分组,关注助手站点域名、助手内置浏览器的跳转页,以及约定的自定义参数。需要提醒:很多助手客户端和 App 内打开链接时不传 referer,因此引荐流量天然偏低,不能作为「有没有被引用」的唯一证据。
第三种是人工抽样,目前唯一能直接观察引用形态的方法。维护一份固定问题清单(20 到 30 条本领域真实问题),每月在若干主流助手上原样提问,记录四件事:有没有提到你、有没有给出链接、链接指向哪个页面、表述是否准确。清单设计要点是覆盖品牌词、品类词、问题词三类;每条问题字面保持不变便于逐月对比;除命中/未命中外,还要记录「被提及但无链接」和「链接指向错误页面」两种中间状态,它们往往对应最具体的优化动作。
Google Search Console 提供了与生成式 AI 表现相关的报告,但可用范围有限,不同站点、地区、账号看到的模块可能不同,具体以账号内实际可见内容与官方说明为准。即使有数据,也应把它当作参考口径而非唯一事实来源。
月度监测流程与指标表
把上述工作固化成月度例程,才不会依赖某个人的记忆。建议节奏:
第 1 步(每月 1 到 3 日):从日志与 CDN 导出上月爬虫请求明细,按 UA 汇总请求量、带宽、路径分布与响应码分布,同时导出引荐流量明细。
第 2 步(每月 3 到 5 日):对新增 UA 与请求量突增的 IP 做反向 DNS 核对,更新台账的最近核对日期;对连续两个月抓取异常的爬虫先限速观察,不直接阻断。
第 3 步(每月 5 到 10 日):执行人工抽样,用固定问题清单提问并记录结果,同时抽查 5 到 10 个重点页面的结构化数据与可见内容是否仍然一致。
第 4 步(每月 10 到 15 日):汇总成指标表并与上月对比,产出三条结论:哪条策略有效、哪条需要调整、下个月验证什么假设。
指标表按下表落地,目标值需按自身基线填写,不要照抄:
| 指标 | 数据来源 | 目标 | 异常处理 |
|---|---|---|---|
| 已验证 AI 爬虫请求量 | access.log / CDN 日志 | 波动在基线合理区间内 | 突增先限速,不下线;核对是否新爬虫 |
| 未验证但自称爬虫的占比 | access.log + 反向 DNS | 保持低位且不持续上升 | 提高挑战强度,加 WAF 规则并观察一周 |
| 训练类爬虫带宽占比 | CDN 流量报表 | 不超过预设阈值 | 超阈值时对该类单独限速 |
| 来自 AI 助手的引荐会话数 | 分析工具 referer 分组 | 环比不显著下降 | 下降时先查是否误伤索引类爬虫 |
| 固定问题清单的引用命中率 | 人工抽样记录 | 环比持平或上升 | 下降时优先查可抓取性与 canonical |
| 被引用但无链接的比例 | 人工抽样记录 | 逐月下降 | 检查标题、摘要与实体标记是否清晰 |
| 结构化数据校验通过率 | 官方校验工具 + 站内抽检 | 重点页面 100% | 当天修复并回溯同期改动 |
| 索引覆盖与抓取错误数 | 站长平台 | 无新增异常 | 先查 robots.txt 与响应头改动记录 |
配套检查清单,建议在每次策略变更前逐项确认:
- 变更已在测试环境验证,且保留了上一版配置与回滚命令
- 变更只影响目标爬虫类别,索引类与用户触发类已用真实 UA 复测通过
- 所有新增拦截规则基于「UA + 已验证 IP」双因子,而非单一 UA 字符串
- robots.txt 改动已用官方校验工具检查,未对搜索爬虫引入新的 Disallow
- 重点页面的结构化数据与可见内容一致,canonical 自指且可访问
- noindex 与 Disallow 没有互相冲突,需展示摘要的页面未被误设
- 已安排至少两周观察窗口,并指定负责人与复盘日期
- 爬虫台账已更新首次发现时间、官方文档链接与最近核对日期
不要做什么
不要为覆盖所有问法而批量生成内容。 生成式搜索会把复杂问题展开成多个相关查询,这确实带来更多长尾机会,但不是「每个变体写一篇文章」的理由。以操纵排名或生成式回答为目的的大规模近似内容生产,属于主流搜索引擎明确列为违规的行为类型,可能触发针对规模化内容滥用的处理。解法是把一个有价值的主题写深、写准、写出可核对的细节,而不是把一个观点复制二十遍。
不要对 AI 爬虫做 cloaking 或差异化投放。 给爬虫返回与真实用户不同的内容、只在检测到爬虫时注入额外文本、用 CSS 把内容藏起来只让机器读到,都是典型伪装做法。短期看似有效,一旦被识别,代价覆盖整站而不只是单个页面,排查时极难定位。同理,不要用 JS 挑战挡住用户可见的正文再对特定 UA 放开——这会让可访问性、缓存与合规同时出问题。
不要购买虚假提及或伪造引用。 在论坛、问答站、内容农场批量铺设带品牌名的「推荐」,或用自动化账号制造讨论热度,短期可能让某些回答里出现你的品牌,但这类信号噪声极大,且一旦与实际内容体验不符,受损的是品牌信任。引用监测的目的是发现真实缺口,不是用钱把缺口填成假的。
不要把 robots.txt 当安全边界。 前面说过,但值得重复:它不是访问控制,不能保护后台、接口,也不能替代认证。任何「已经 Disallow 了所以安全」的判断都要重新审视。
不要在没基线的情况下上线阻断。 没有至少一个月的日志统计,你无法判断流量下降是策略生效、季节波动还是误伤。先观察、再限速、最后阻断,这个顺序不要跳步。
官方资料与继续阅读
外部官方资料(策略与 UA 清单会变化,请以页面当前内容为准):
- Google Search Central:Google 爬虫与用户代理总览,https://developers.google.com/search/docs/crawling-indexing/overview-google-crawlers
- Google Search Central:robots.txt 规范与语法说明,https://developers.google.com/search/docs/crawling-indexing/robots/robots_txt
- OpenAI:GPTBot 说明与官方 IP 段,https://openai.com/gptbot
- llms.txt 提案主页,https://llmstxt.org/
- schema.org:结构化数据词汇表,https://schema.org/
- Cloudflare:Bot Management 文档,https://developers.cloudflare.com/bots/
站内相关文章:
- 2026 年 GEO/AEO 实战:如何让内容进入 Google AI Overviews 与 AI Mode —— Google 官方 GEO/AEO 立场与常见误区,本文的前置阅读
- AI 爬虫该封禁还是收费?Cloudflare AI Crawl Control 与 Pay Per Crawl 实战 —— CDN 侧的 AI 抓取控制与按抓取付费落地细节
- Cloudflare MCP 安全治理实战:发现 Shadow MCP、Portal 与 Gateway 策略 —— MCP 与远程入口的治理边界
- Cloudflare AI Search 接入 GLM-5.3-Flash:检索与生成分离实战 —— AI 检索服务的搭建与检索片段处理

