经常有人遇到这种情况:新页面发了,站点地图也提交了,主动推送也做了,但过了一两个月,搜索蜘蛛依然没来抓过。翻服务器日志会发现,这个 URL 除了上线那天被访问过一次,之后几乎没有抓取记录。多数时候,问题不在搜索端,而在站内——这个页面在站内是“孤立”的,没有别的页面指向它。
什么算孤立页面
孤立页面不是指页面打不开,而是指从一个正常入口出发,顺着链接走不到它。常见形式有几种:
- 只存在于 sitemap 里,站内没有任何链接指向;
- 只能通过站内搜索或筛选结果才能到达;
- 只能从首页某个轮播位点进去,轮播换掉后就没入口了;
- 列表页只显示最近若干条,老页面被挤出列表后再无入口;
- 只在 JS 弹窗或客户端里出现,HTML 源码里没有 a 标签。
这些页面对用户也许还能访问,但对爬虫来说,它们缺少一条被发现的路径。
sitemap 提交了,为什么还是不来
sitemap 的作用是提示存在,不是保证抓取。搜索端会综合判断一个 URL 值不值得抓、什么时候抓、抓多少。当一个 URL 在站内没有任何引用时,它通常会被排在抓取队列的后面:既没有内链带来的上下文,也没有更新信号,优先级自然低。
反过来,如果一个 URL 被多个重要页面稳定链接,它同时获得三样东西:发现路径(蜘蛛顺着链接走到这里)、上下文(周围文字告诉它这个页面讲什么)、更新信号(链接所在页面更新时可能被重新抓取)。这三样是 sitemap 单独给不了的。
找出孤立页面的几个办法
- 对比清单:把 sitemap 里的 URL 和站内实际被链接的 URL 各导一份,做差集,差集里的就是候选。
- 翻服务器日志:只看蜘蛛 UA 的记录,找出从未被抓和只被抓过一次的 URL,按目录归类。
- 用爬虫工具跑全站:从首页出发爬一遍,看哪些 URL 只出现在 sitemap 里、爬不到。
- 站内搜索兜底:如果只能靠站内搜索到达,基本可以判定是孤立页面。
补内链的实操顺序
先补最重要的那几条,不必追求一次铺满。
- 面包屑和分类导航走一遍,确认新页面挂在正确的分类下;
- 在同类内容里加相关阅读,优先从已经被抓得比较勤的页面往外链;
- 列表页做归档入口,不要把老页面只放在“最新”列表里;
- 更新几篇老文章,在里面自然提到新页面并加链接,往往比在新页面里堆外链更有效;
- 首页或栏目页给核心页面留一个稳定入口,不要放在会轮换的运营位里。
链接文字尽量描述页面主题,别统一写“点击这里”。补链之后,可以再观察一两周日志里的抓取记录变化,而不是当天就下结论。
内链也救不了的情况
补完链接后如果还是没动静,要回头查这几项:页面是否被 robots.txt 挡住、是否带了 noindex、是否返回非 200 状态、内容是否与站内其他页面高度重复、是否整页靠 JS 渲染而源码里几乎没内容。这些属于硬性拦截或质量问题,内链解决不了。
也有站点会尝试用蜘蛛池之类的办法增加来访次数。但如果发现路径本身就缺失,抓取机会再多,也更多是重复消耗在已知页面上,孤立 URL 依然排不上队。
内链提高的是被抓到的机会,不等于收录。最终是否进入索引,仍取决于页面本身的质量和搜索端的判断。
小结
做 URL 发现,先看站内有没有路,再看提交和推送。孤立页面的问题往往不是提交得不够多,而是站内没给它留位置。把入口补齐、把相关链接做起来,通常比反复提交更管用;剩下的,交给时间和页面质量。