很多站長盯着 sitemap 和蜘蛛池推送,却忽略了一件更基础的事:蜘蛛進入一個頁面之後,是沿着頁面上的連結决定下一步去哪的。内鏈稀少的頁面,等于站在一條没有岔路的死胡同里,蜘蛛抓完這一頁,就没有理由繼續往別的 URL 走。
蜘蛛靠連結分配抓取资源
搜尋引擎的抓取能力是有上限的,不會無限量地爬完一個站点的所有地址。它會根據連結结构给頁面排出一個大致的優先級:被多次連結到的頁面更容易被反复抓取,几乎没有入口的頁面則排在队伍後面。
這里说的連結,不只是網站導航和頁脚。正文里自然出現的連結、分類列表、相關文章模块、面包屑,都在向蜘蛛传递“這個地址值得走一趟”的信号。一個頁面如果只有顶部導航那几個連結,蜘蛛抓到之後能获得的下一步线索就非常有限。
什么样的頁面容易變成抓取死角
- 只在某個列表的第 60 頁以後出現,前面的分頁又没有稳定入口
- 頁面本身内容不多,正文里没有任何指向其他相關頁面的連結
- 只靠 sitemap 提交,站内没有任何頁面連結到它
- 連結被放在 JS 生成的下拉菜單里,展開才出現
- 全站所有頁面都指向首頁和几個频道頁,深层頁面之間互不相连
這些情况共同点是一样的:蜘蛛即使抓到了這一頁,也没有繼續前進的路。久而久之,這類 URL 會長期停在“已發現但未抓取”或者干脆没被發現的狀態。
内鏈不是越多越好
既然連結重要,是不是每個頁面都塞满連結?不是。連結數量和連結质量是两回事,頁面里堆几十個無關連結,反而會稀释每個連結的分量,也會让蜘蛛把抓取预算花在低價值地址上。
更實际的做法是让連結和内容有關系。讲同一個主题的頁面互相連結,操作步骤里提到某個功能就鏈到對應說明頁,案例里提到某個产品就鏈到产品頁。這種連結蜘蛛能理解,用戶也愿意点。
内鏈的作用不是把所有頁面串成一团,而是让每條連結都有存在的理由。
让深层頁面被走到的几個做法
- 稳定分頁入口。列表頁翻到後面的内容,最好有可以直接到達的路径,或者用分類、标簽把内容分散到更浅的层級,不要只靠無限滚動往下加载。
- 正文里做主题互鏈。同主题的文章之間互相引用,形成一個小范围的連結網,蜘蛛抓到其中一篇,就有机會顺路抓到其他几篇。
- 相關推荐別用纯 JS 渲染。如果相關文章模块是靠前端請求才生成的,蜘蛛未必能看到這些連結,改成服務端輸出更稳妥。
- 面包屑保持可点击。面包屑指向分類和上級頁面,是成本很低的一條抓取通道。
- 检查孤立頁面。站内搜尋一下站点的 URL 數量,再對比有多少頁面至少被一條内鏈指向,差距往往能說明問题。
配合 sitemap 和推送,但不要依赖它們
sitemap 和主動推送能帮蜘蛛知道有哪些 URL 存在,但它們解决的是“發現”,不解决“值不值得繼續抓”。蜘蛛從 sitemap 里看到一個地址,抓完發現頁面没有出口,下一次是否還来就不好说了。
把内鏈结构理顺,再配合 sitemap 覆盖那些确實不好從頁面走到的地方,两者才能互相补位。只做推送不做内鏈,長期看抓取量很难稳定下来。
观察抓取是否真的在往下走
做調整之後不要只看收錄數字。可以观察服務器日誌里蜘蛛的訪問路径:它是集中在首頁和几個热门頁反复抓,還是能一路走到分類頁、詳情頁;被抓取的 URL 是不是集中在某几個目錄。如果抓取始终停在上层,說明内鏈還没有把路径打通。
内鏈優化不會立刻让頁面進索引,它更像是把路修好。路修好了,蜘蛛愿不愿意常来,還取决于内容本身是否值得反复抓取。這两件事分開看,思路會清楚很多。