服务器日志里,某个 URL 几乎每天都被蜘蛛访问,返回码 200,字节数也正常,但用 site 命令查不到它。这种情况很容易被理解为“蜘蛛不喜欢这个页面”,实际上更常见的解释是:页面被抓取了,但没进入索引。抓取和收录是两件不同的事,中间还隔着一层评估。
抓取与收录分别看什么
抓取是爬虫把文档取回来的动作,门槛主要是可访问性、返回码、渲染成本和抓取配额。收录则是在取回内容之后,判断这页是否值得放进索引、能否参与检索。日志里出现一次成功的 200,只说明内容送达,不代表被采用。
- 抓取侧关注:是否可达、是否被屏蔽、服务端是否稳定、抓取频次与配额。
- 收录侧关注:内容是否唯一、是否有检索价值、规范信号是否明确、站点整体表现如何。
把这两层混在一起,就容易在日志里看到抓取就以为“快了”,或者看到不收录就继续去刷抓取频次,方向都会偏。
先把日志读准
确认被抓的是哪个版本
同一个 URL 可能被抓取的是 HTML 文档、CSS、JS 或图片。真正影响收录的是 HTML 文档本身。核对时看返回码、响应字节数、是否命中缓存、是否被重定向,不要只看“有没有蜘蛛”。
分辨真爬虫与伪装请求
User-Agent 可以伪造。用反向 DNS 或官方公布的 IP 段做一次核对,否则可能拿一堆假日志在分析收录问题。
看抓取量的分布
如果某个栏目吃掉了大部分抓取,而目标页只是偶尔出现,问题往往在站点结构和内链上,页面离首页太远,缺少稳定的发现路径。
抓取正常但收录不动时的核对顺序
- 抓取版本是否正确。服务端是否给爬虫返回了简化页、登录页、地区跳转页或空壳模板。用相同 UA 手动请求一次,和用户浏览器看到的内容做对比。
- 页面指令有没有拦。robots meta、X-Robots-Tag、canonical 指向别处,都可能出现“能被抓取但不被索引”的结果。指令冲突时要先收敛,再谈收录。
- 正文是否在初始 HTML 里。依赖 JS 才能出现的正文,抓取与索引分成两轮,中间任何一步失败都可能导致页面被取回却没有内容可评估。
- 与站内其他页面是否高度相似。同一模板下正文差异很小,或者由参数批量生成的近似页面,容易被归并到一个代表页,剩下的一直停在“已发现”状态。
- 这页有没有独立存在的理由。只靠内链支撑、与其他页答案高度重合、缺少明确需求的页面,被索引的概率天然偏低。
- 站点整体信号。长期存在大量低质页面,会稀释整站的抓取与索引表现,新页面也会被拖慢。
哪些调整通常有帮助
- 从相关内容的正文里给目标页加内链,锚文本自然,避免只在页脚堆链接。
- 补充独有信息,减少与同类页面重复的段落和结论。
- 把没有检索价值的参数页、排序页、筛选组合用 canonical 或 robots 规则收敛。
- 保持站点地图更新,lastmod 写真实时间,不要每次全量刷新。
- 检查服务端是否对爬虫返回了与普通用户不同的内容,不一致会让评估结果不稳定。
抓取频次高只能说明页面可达,不能推导出会被收录。把抓取日志当成“收录进度条”,往往会把精力用在错误的地方。
观察节奏
调整之后不要每天盯 site 结果。以周为单位看日志里的抓取分布、索引覆盖报告和页面实际获得的搜索流量。收录本身有延迟,频繁改动指令或反复提交,反而会让状态更难收敛。如果几周过去仍无变化,回到内容本身重新评估,比继续加链接或催抓取更有效。