很多站点并不缺页面,缺的是指向页面的链接。当一批 URL 只存在于 Sitemap 或后台数据库里,站内没有任何可点击路径通向它们时,搜索蜘蛛即使知道地址存在,也很难判断这些页面的价值,抓取频率自然偏低。本文讨论的是内链缺口造成的入口遗漏,以及如何用较低成本把这类页面接回站内链路。
先分清两类“抓不到”
一类是技术性阻断,比如 robots 限制、错误状态码、渲染问题;另一类是链路问题:页面能正常访问,但站内没有入口指向它。前者在日志里通常表现为拒绝或错误状态,后者往往表现为“从没出现过”。把两类混在一起看,会浪费大量排查时间,也容易误改不该改的配置。
用两份数据交叉定位缺口
抓取日志侧
先看哪些目录段长期没有蜘蛛访问记录,尤其是已经上线的栏目和详情页。需要提醒的是,日志缺失只能说明“没被抓”,不能直接说明原因,必须和站内链接数据对照才能确认。
站内链接图谱侧
写一个简单的站内爬虫,从首页出发,仅跟踪 a 标签的 href,记录每个 URL 的入链数量和来源页面。跑完后与全站 URL 列表做差集,差集里的 URL 基本就是孤岛候选。登录态页面、带参数的筛选页要提前过滤,否则差集里会混进大量噪音,让结果失去参考价值。
常见的入口遗漏类型
- 新栏目上线只挂了 Sitemap,导航和首页没有同步更新;
- 详情页只能通过站内搜索或筛选结果到达,默认列表页翻不到;
- 正文里提到相关内容,但用的是纯文本而不是链接;
- 分页只保留“下一页”,更早的页面在翻页链路中被截断;
- 改版后旧模板里的相关推荐模块被移除,入口一并消失。
补齐入口的顺序
- 栏目页与导航:优先保证每个栏目在主导航或二级导航中有固定位置,这是最稳定的一层入口。
- 列表页与分页:确认列表页能覆盖该栏目下的内容,分页链路不断档。
- 正文内链:在相关内容处用自然语境加链接,比堆砌“相关文章”更有意义,也更利于顺着语义路径发现页面。
- 聚合页与标签页:可以作为补充入口,但要控制数量和参数,避免生成大量低质入口稀释抓取预算。
- Sitemap 兜底:适合作为交叉验证和补充,不适合当作唯一入口。
入口收敛的几条原则
补入口不是越多越好。同一页面被几十个入口指向时,抓取会被引导到重复路径上,反而挤压其他页面的机会。建议每个页面至少有 1 到 2 条稳定内链;同一模块的链接指向保持稳定,不要频繁更换;参数化入口尽量在链接层面收敛,而不是留给蜘蛛自己去猜。
判断入口是否有效,看的不是“有没有链接”,而是这条链接是否出现在用户也会走的路径上。只有蜘蛛能看到的入口,通常也维持不了多久。
复查节奏与后续调整
补齐后不必立刻期待变化。按周观察目标 URL 的抓取记录,同时对比整站被抓 URL 与总 URL 的比例,看结构是否在改善。如果孤岛页面数量没有下降,多半是入口位置太深,或者链接依赖前端交互才渲染出来,需要回到渲染与链接可见性层面继续排查。
把内链缺口当作一份持续维护的清单,而不是一次性任务。每次改版、上新栏目、调整模板时顺手检查一遍入口是否同步,比事后从日志里倒推要省事得多。