蜘蛛進入一個頁面之後,並不记得你站点的全貌,它只记得手上有哪些連結可以走。如果這個頁面没有任何能被它识別、並且允许抓取的出鏈,那么這一條抓取路径就走到头了。這不等于頁面有問题,但它等于後面的 URL 少了一次被發現的机會。
什么算抓取路径上的死胡同
死胡同有两種:一種是頁面上确實一條連結都没有;另一種更常见,頁面上看起来有連結,但蜘蛛用不了——比如連結由 JS 在点击後才生成、被 rel="nofollow" 挡住了、或者指向的 URL 恰好被 robots.txt 屏蔽。
第一種一眼能看出来,第二種往往在人工浏览时毫無異常,只有看渲染後的 HTML 才能發現問题。
死胡同常见的几種样子
- 纯图片或纯视频的活動落地頁,除了顶部 logo 之外没有別的連結。
- 詳情頁底部只有一個「返回」,按钮用 javascript:history.back() 實現。
- 列表頁做成無限滚動,滚動之前 HTML 里只有几條记錄,也没有分頁連結。
- 附件頁、PDF 頁、下载頁,只提供文件本身,不留返回入口。
- 出鏈全部指向站外,或者全部是加了 nofollow 的广告位。
- 需要提交表單、登入或選擇城市之後才會出現的頁面。
出鏈不只是「多一條路」
出鏈的第一個作用是让路径延續,让蜘蛛從目前頁走到下一批 URL。第二個作用是帮蜘蛛確認這個頁面的角色:一個指向十几條詳情頁的頁面,它更容易被理解為列表;一個既指向同類詳情頁、又指回分類頁的頁面,更像正常的内容节点。
反面同样存在。一個頁面塞進几百條與主题無關的出鏈,既分散了頁面自身的信号,也让蜘蛛很难判断哪几條更值得跟。出鏈的價值在于指向明确,不在于數量多。
怎么排查站内的死胡同
- 用爬虫工具完整抓一遍站点,導出每個 URL 的出鏈數量,重点看出鏈為 0 的頁面。
- 對照抓取日誌,看蜘蛛的訪問是否集中在少數入口,之後再没有更深的记錄。
- 检查面包屑、主導航、侧邊栏是否寫在模板层,而不是只在部分頁面上手工添加。
- 把 Sitemap 里的 URL 和站内連結图比對,找出「只出現在 Sitemap、没有任何内鏈指向」的頁面。這類頁面即使能被抓取,也几乎没有出鏈可走。
补路时值得坚持的几個做法
- 每類内容模板都留固定導航:面包屑、返回上級列表、相關阅讀,至少保留其中两處。
- 面包屑和分頁尽量用普通的 a 标簽,不要靠脚本在点击时拼接。
- 分頁列表第一頁就带上後續頁碼的真實連結,而不是等滚動後再加载。
- 出鏈的锚文本寫清楚指向什么,「更多」這類词對判断帮助有限。
- 重要入口不要只放在頁脚,頁脚連結在抓取顺序上通常靠後。
蜘蛛不會因為一個頁面没有出鏈而處罚你,但一段路径断在這里,後面的内容就少了一條被發現的路。补連結的成本,通常遠低于重新靠 Sitemap 或外鏈去唤起注意。
小结
抓取路径是鏈路的集合,任何一個环节没有出口,路径就停在原地。日常维護时,把「每類模板都有可抓取的出鏈」当成一條硬規則,比事後逐個頁面补救省力得多。真正需要盯的,是那些看起来有連結、實际上蜘蛛走不通的頁面。