站内链接是蜘蛛最常走的路径,但总有一些 URL 不在这条路上:它们存在、能正常打开,却没有被任何页面链接到。这类页面通常被称为孤立页面。它们并非完全不能被蜘蛛发现,只是被发现的机会和回访的频率都低得多。
蜘蛛发现一个新 URL 的入口
- Sitemap:直接把 URL 清单交给蜘蛛,不依赖内链。
- 站外链接:别的站点链过来,蜘蛛顺着外链进入。
- 历史抓取记录:曾经被抓过的 URL,即使后来内链断了,蜘蛛仍可能隔一段时间回来看看。
- 重定向与跳转目标:301、302 或脚本跳转的落地 URL 会被记录。
- RSS、JSON 输出、接口返回:只要蜘蛛能请求到,里面的 URL 也可能被读取。
也就是说,最“孤”的一类页面,是既没有内链,也没有外链,又没进过 Sitemap 的 URL,它们基本只能靠偶然。
为什么没有内链的页面会慢慢沉下去
内链的作用不只是发现,还是一种持续的信号:只要入口页面还在,蜘蛛每次抓那一页时都可能再次看到这条链接。Sitemap 更像一份清单,它能说明 URL 存在,却不会像内链那样在每次抓取时反复提醒。外链也是同理,一旦对方撤掉链接,入口就断了。所以孤立页面往往在最初被抓几次之后逐渐消失,尤其是内容更新少、又没有其他入口的页面。
把站内的孤立页面找出来
- 导出网站日志,筛出所有返回 200 的 URL。
- 用爬虫工具从首页出发爬一遍站内链接,得到“有内链可达”的 URL 集合。
- 两个集合做差集,差集里的就是靠内链到不了的页面。
- 再把 Sitemap、RSS 里的 URL 加进来对照,看看这些孤立页面还剩下哪些入口。
这一步的意义在于分清两类情况:有些页面是设计上就不打算被大量访问的,比如临时活动页;有些是原本有入口、后来因为改版或栏目下架而断掉的。后者的处理优先级更高。
处理顺序:补内链、改结构,还是下线
- 有持续价值的页面:从相关文章、分类页、聚合页里补一条有语境的链接,而不是集中塞进一个没人看的友情链接区块。链接放在正文或列表里,比单独一页堆几百条更容易被持续走到。
- 内容重复或过期的页面:考虑 301 到最接近的有效页面,或者明确下线并返回 404,而不是留在站内当一个无入口页面。
- 只在特定时间段需要的页面:可以保留 Sitemap 提交,但要接受它的抓取频次不会高。
- 参数、测试、临时预览 URL:不要放进 Sitemap,也不要长期留在可访问状态。
几个常见的误判
第一,把 URL 写进 Sitemap 就以为等于被收录。实际上 Sitemap 只解决“蜘蛛知不知道”,不解决“值不值得抓”,也不解决后续的展示问题。
第二,用一页几十上百条链接的全站导航来救孤立页面。这种做法对内链结构的改善有限,链接所在页面本身如果抓取与权重都一般,传递不了多少访问动力。
第三,只补一次内链就以为问题解决了。改版、下架、模板调整都可能再次把链接切断,孤立页面的检查最好做成定期动作。
判断一个 URL 是不是孤立页面,不要只看 Sitemap 里有没有,而要看从首页出发、顺着站内链接能不能走到它。
小结
孤立页面不是必须消灭的对象,但需要清楚每一类页面还剩哪些入口。内链能覆盖的,补一条有语境的链接;没有保留价值的,尽早 301 或下线;只能靠 Sitemap 的,接受较慢的抓取节奏。定期做一次差集比对,比事后在日志里翻找要省力得多。