内容改过三轮、问答补了几十条、结构化标记也打上了,品牌在生成式回答里依然查无此人。这类情况有相当一部分不在内容层,而卡在服务器最外面那道安全策略上:当年为防采集加的一批拦截规则,把真正需要读你内容的抓取端也一并拒在了外面。门没开,后面所有内容功夫都是空转。
来敲门的程序分三类,一刀切必然出事
服务器日志里那些非浏览器请求,粗看长得差不多,来意完全不同。
| 类型 | 典型行为 | 误拦后果 | 处置 |
|---|---|---|---|
| 恶意采集与刷量 | 整站镜像、批量翻页、伪造浏览器标识、无视爬虫协议 | 无 | 拒绝 |
| 检索类抓取端 | 按协议抓取、遵守频次、归属可查证 | 收录停滞、快照不更新 | 放行 |
| 答案引擎抓取端 | 读正文与问答块,为回答取材或离线建库 | 内容永不进候选池 | 放行且保证读全 |
第三类是近两年才成规模的新增流量。多数企业站的安全规则写在更早以前,名单里没有这批标识,默认便被当成来源不明的程序处理——这不是配置错误,是配置过期。
五个最容易误拦的位置
面板类防护的"恶意爬虫"开关。 一键开启后按标识关键词匹配,凡带 bot、spider、crawler 字样一律拦下——答案引擎抓取端的标识恰好都含这些词。
CDN 的机器人管理默认档。 不在内置白名单的程序被统一送进人机校验页。这页返回 200,内容却只有一段校验脚本,抓取端拿到的正文是空的。比 403 更难发现,浏览器里怎么看都正常。
抄来的 UA 黑名单。 几十行判断语句,混着早年的采集工具名,也混进了今天该放行的抓取端。这类规则通常没人敢删——没人知道每行为什么加。
限流阈值过低。 每秒只放一两个请求,抓取端并发稍高就撞出大面积 429。它不会跟你争,只会自动降低下次来的频次,几周后到访量剩个零头。
境外出口全封。 为防端口扫描把非大陆访问整体拒绝,海外机房出口的抓取端一次都进不来。
三步把被拒的请求从日志里捞出来
第一步,按标识与状态码交叉过滤。 在 Nginx 日志目录下执行:
awk '$9 ~ /^(403|429|503)$/ && tolower($0) ~ /bot|spider|crawl/ {print $9, $12}' access.log | sort | uniq -c | sort -rn | head -30
每行是一个被拒的抓取端加次数。正常站点该数应接近零;某标识对应上千次非 200,基本可确定爬虫拦截规则误伤。
第二步,验证有没有"假 200"。 带抓取端标识请求同一网址,与浏览器标识的返回体比字数:
curl -sA "Mozilla/5.0 (compatible; SomeBot/1.0; +http://example.com/bot)" https://你的域名/某篇内容页 | wc -c
两个数字差出一个数量级,说明中间有校验或分流。这种最隐蔽,状态码是好的。
第三步,看趋势。 同一标识近 90 天到访次数按天聚合,断崖式下跌常能对上某次安全策略变更或 CDN 升级的日期。
判定对照可直接拿去用:
| 现象 | 实际含义 | 处置 |
|---|---|---|
| 403 集中在某个标识 | 规则显式拦截 | 加放行并校验身份真伪 |
| 429 分散在多个标识 | 限流阈值偏低 | 按目录调整并发与突发值 |
| 状态 200 但体积极小 | 被送去校验或分流页 | 关闭对该类请求的校验 |
| 请求超时无响应 | 源站压力或安全组丢包 | 查后端与连接数上限 |
抓取端放行不等于把门全开
先验身份,别只认标识。 标识可随意伪造。可靠做法是拿请求 IP 反向解析得到域名,再正向解析回来,两次对得上才认。对方公布了官方 IP 段的,按段放行更省事。
分三级而不是两级。 完全放行给内容页、问答页、栏目页;限速放行给归档目录与大体量分页;继续拒绝站内搜索结果、多参数筛选、下单流程和用户中心,避免抓取预算被无价值页面吃光。
边界主要靠路径,不靠标识。 路径规则稳定可审计,换个抓取端也不用重写。
放进来之后,还得让它读完整
- 同一网址对人和对程序返回同一份内容,单独给机器人备一版属于伪装,风险大于收益。
- 已下线的网址返回真 404,别返回带 200 状态的提示页,否则整站会被判定为大量空页。
- 跳转不超过一跳。链式跳转在抓取端那里常常第二跳就被放弃。
一张两周验收表
| 动作 | 验证证据 | 达标线 |
|---|---|---|
| 清理误拦规则 | 日志中非 200 的抓取请求数 | 降至日均 10 次以内 |
| 关闭对抓取端的人机校验 | 带程序标识请求正文页的返回体积 | 与浏览器版差异小于 5% |
| 调整限流阈值 | 429 出现次数 | 连续 7 天为 0 |
| 打通境外出口 | 海外节点抓取端到访天数 | 两周内至少 10 天有记录 |
| 修跳转与软 404 | 抽查 30 个网址状态码 | 一跳直达,无 200 状态空页 |
五项都过关,内容才真正处在可被读取的状态。此后内容可被引用的比例仍不理想,问题才轮到选题、结构和证据密度。顺序颠倒,等于把预算花在改文案上而门始终关着。
哪些自己能修,哪些值得找外部
日志过滤、跳转压缩、限流调整都是运维能独立完成的动作,成本近零、见效最快,应先自己做完。
需要外部介入的通常两类:一是 CDN 与 WAF 策略盘根错节、改动牵扯业务安全,需有人梳理规则来源与影响面;二是放行之后的内容层建设,要重排页面结构、补齐可被整段摘取的问答块与证据。挑 geo优化公司时先问一句:接手后第一步做什么。答案若是直接写文章,说明这道技术地基被跳过了;若是先看日志和抓取状态,方向大致对。
两个常被问到的问题
已经封了很久,放开后多久恢复? 按已有案例观察,恢复稳定抓取一般需两到四周,能否进入回答候选池还要看内容本身的可引用程度。
能不能只放行几家大厂的抓取端? 不建议。答案入口持续变化,名单钉死意味着每出现一个新入口都要改配置。路径分级加身份验证的组合,比维护长名单可靠。