搜索抓取

没有内链的孤立页面,蜘蛛还能从哪里发现

站内总有些页面没有内链,却能偶尔被抓到。本文梳理蜘蛛发现 URL 的几种入口,说明孤立页面为什么容易沉底,并给出一套从日志和爬虫结果做差集、找出孤立页面的方法,以及补内链、301 或下线的处理顺序。

搜索抓取

没有内链的孤立页面,蜘蛛还能从哪里发现

站内链接是蜘蛛最常走的路径,但总有一些 URL 不在这条路上:它们存在、能正常打开,却没有被任何页面链接到。这类页面通常被称为孤立页面。它们并非完全不能被蜘蛛发现,只是被发现的机会和回访的频率都低得多。

蜘蛛发现一个新 URL 的入口

  • Sitemap:直接把 URL 清单交给蜘蛛,不依赖内链。
  • 站外链接:别的站点链过来,蜘蛛顺着外链进入。
  • 历史抓取记录:曾经被抓过的 URL,即使后来内链断了,蜘蛛仍可能隔一段时间回来看看。
  • 重定向与跳转目标:301、302 或脚本跳转的落地 URL 会被记录。
  • RSS、JSON 输出、接口返回:只要蜘蛛能请求到,里面的 URL 也可能被读取。

也就是说,最“孤”的一类页面,是既没有内链,也没有外链,又没进过 Sitemap 的 URL,它们基本只能靠偶然。

为什么没有内链的页面会慢慢沉下去

内链的作用不只是发现,还是一种持续的信号:只要入口页面还在,蜘蛛每次抓那一页时都可能再次看到这条链接。Sitemap 更像一份清单,它能说明 URL 存在,却不会像内链那样在每次抓取时反复提醒。外链也是同理,一旦对方撤掉链接,入口就断了。所以孤立页面往往在最初被抓几次之后逐渐消失,尤其是内容更新少、又没有其他入口的页面。

把站内的孤立页面找出来

  1. 导出网站日志,筛出所有返回 200 的 URL。
  2. 用爬虫工具从首页出发爬一遍站内链接,得到“有内链可达”的 URL 集合。
  3. 两个集合做差集,差集里的就是靠内链到不了的页面。
  4. 再把 Sitemap、RSS 里的 URL 加进来对照,看看这些孤立页面还剩下哪些入口。

这一步的意义在于分清两类情况:有些页面是设计上就不打算被大量访问的,比如临时活动页;有些是原本有入口、后来因为改版或栏目下架而断掉的。后者的处理优先级更高。

处理顺序:补内链、改结构,还是下线

  • 有持续价值的页面:从相关文章、分类页、聚合页里补一条有语境的链接,而不是集中塞进一个没人看的友情链接区块。链接放在正文或列表里,比单独一页堆几百条更容易被持续走到。
  • 内容重复或过期的页面:考虑 301 到最接近的有效页面,或者明确下线并返回 404,而不是留在站内当一个无入口页面。
  • 只在特定时间段需要的页面:可以保留 Sitemap 提交,但要接受它的抓取频次不会高。
  • 参数、测试、临时预览 URL:不要放进 Sitemap,也不要长期留在可访问状态。

几个常见的误判

第一,把 URL 写进 Sitemap 就以为等于被收录。实际上 Sitemap 只解决“蜘蛛知不知道”,不解决“值不值得抓”,也不解决后续的展示问题。

第二,用一页几十上百条链接的全站导航来救孤立页面。这种做法对内链结构的改善有限,链接所在页面本身如果抓取与权重都一般,传递不了多少访问动力。

第三,只补一次内链就以为问题解决了。改版、下架、模板调整都可能再次把链接切断,孤立页面的检查最好做成定期动作。

判断一个 URL 是不是孤立页面,不要只看 Sitemap 里有没有,而要看从首页出发、顺着站内链接能不能走到它。

小结

孤立页面不是必须消灭的对象,但需要清楚每一类页面还剩哪些入口。内链能覆盖的,补一条有语境的链接;没有保留价值的,尽早 301 或下线;只能靠 Sitemap 的,接受较慢的抓取节奏。定期做一次差集比对,比事后在日志里翻找要省力得多。