先把“抓不到”和“发现路径太窄”分开
不少站点遇到页面长期不出现时,第一反应是怀疑服务器或抓取通道出了问题。实际排查中更常见的情况是:页面本身可正常访问,响应码、内容都正常,只是站内几乎没有指向它的入口。搜索蜘蛛发现 URL 主要依靠三条路径:已抓取页面上的链接、Sitemap 之类的补充入口、以及历史抓取记录。其中内链是持续且稳定的一环,Sitemap 更接近一份清单,只负责告知存在。
孤岛页面的几种典型长相
- 只能通过站内搜索框到达的结果页,没有对应的静态列表入口;
- 位于分页末尾,但分页被“只展示前 N 页”的逻辑截断;
- 只在某个筛选组合下出现,默认列表里看不到;
- 依赖 JS 点击事件跳转,原始 HTML 中没有可解析的链接标签;
- 链接被 nofollow 或 onclick 包裹,存在但不作为发现入口;
- 内容页之间没有相关推荐,也没有明确的分类归属。
用两套数据交叉定位
- 抓取日志:按 URL 聚合抓取次数,把长期为 0 或只有一两次的记录单独列出;
- 抓取统计:查看按响应码和按目录的分布,对比目录下的页面数量与实际被抓取数量;
- 站内链接图:从首页出发爬一遍站内,统计每个 URL 的入链数量和最短点击深度;
- 把“日志中未出现”和“链接图中入链为 0”两个集合取交集,这批 URL 基本就是发现盲区。
这里要提醒一点:入链为 0 并不等于一定不被抓取,外链和 Sitemap 也可能带来访问,但这类入口不稳定,页面更新后很难被再次发现。
补入口的几种做法
不必为每个页面强行堆链接,重点是补齐层级和聚合入口,让结构本身说得通。
- 分类页、标签页给出完整的分页入口,不要只保留前几页;
- 列表页增加一种排序入口,例如按时间或按热度,让老内容有再次出现的路径;
- 内容页加入相关推荐与上下篇,形成同主题的横向连接;
- 对确实重要但入口稀少的页面,放进栏目聚合页或专题页;
- 锚文本尽量使用页面主题词,避免“点击这里”“更多”这类无信息文本。
Sitemap 是补充,不是替代
Sitemap 能帮助蜘蛛知道某个 URL 存在,但它不保证被抓取,也不替站点表达结构关系。如果站内链接图本身就是稀疏的,Sitemap 里塞入再多地址,实际覆盖比例也很难提升。比较合理的分工是:内链保证主干连通,Sitemap 覆盖那些确实难以通过链接到达的页面。两者对不上时,优先修内链,而不是继续扩大 Sitemap。
服务器稳定性会影响发现节奏
如果入口页经常返回 5xx、响应超时,或者响应时间波动明显,蜘蛛对同一路径的抓取会趋于保守,新增入口被验证的周期也会被拉长。因此补内链的同时,顺带检查入口页的可用性:状态码是否稳定、首字节时间是否在合理区间、是否有规则误伤了正常抓取。
调整后的核对节奏
改完不要立刻下结论,留出两到四周观察期,对比调整前后的同一目录抓取 URL 数量、抓取频次分布,以及新页面首次被抓取的时间间隔。如果入口数量增加了,但抓取分布几乎没有变化,多半是入口位置太深,或者页面本身缺少足够的价值信号。
发现缺口往往不是技术故障,而是站内结构没有给出足够清晰的路径。先把链接图理顺,再谈其他手段。