提到内鏈,很多人的第一反應是给文章末尾加一排相關推荐。但從蜘蛛的角度看,一個站点里真正被反复走過的連結,往往集中在三個位置:全局導航、面包屑和正文里的相關連結。它們不是谁替代谁的關系,各自负责的發現任務並不一样。
全局導航:覆盖面最广的那一层
導航出現在每個頁面的顶部或侧邊,蜘蛛從任意一個入口頁進来,都能看到同一批連結。這是它最省力的發現通道,所以導航里放什么,實际决定了蜘蛛能多快触達你的主要栏目。
- 導航指向的應该是長期运营的栏目頁,而不是活動頁、註冊頁或临时专题。這類頁面被每次抓取反复請求,會占用抓取額度,也让真正想推的栏目被稀释。
- 层級尽量控制在两級以内。更深的頁面交给栏目頁往下带,不要指望一個導航就覆盖全站。
- 用普通的 a 标簽加 href。靠 onclick 跳轉、靠脚本拼接的菜單,蜘蛛不一定能执行。
- 對導航連結使用 nofollow 要谨慎,它會让這條發現路径直接断掉。
面包屑:给頁面一個能回头的层級
面包屑通常被当成用戶体驗的装饰,但它對抓取的意义在于提供一條從首頁到目前頁的完整鏈路。当某個詳情頁没有被栏目頁直接連結时,面包屑還能让它留在可抓取的路径上,不至于變成孤岛。
寫法上,面包屑的层級最好和 URL 路径、Sitemap 里的结构保持一致。如果面包屑指向的分類和頁面實际所属的分類對不上,或者不同頁面之間的层級互相矛盾,蜘蛛往往會選擇更保守的那條路径来理解,反而降低了深层頁面的抓取机會。
面包屑、URL 层級、Sitemap 层級這三處如果長期不一致,抓取的路径判断會變得模糊,頁面的重要性也很难稳定传递下去。
正文相關連結:把抓取引向深层頁面
相關連結的價值在相關性,不在數量。一個頁面挂上几十個連結,每個被逐個請求的概率會被摊薄;而五到八個语义接近的連結,更容易让蜘蛛顺着正文语境繼續往下走。几個實用原則:
- 同主题的詳情頁互鏈,形成小范围的内部閉环,而不是把所有頁面都指向首頁。
- 新頁面優先從已有抓取记錄的老頁面鏈出,让它有一條現成的進入路径。
- 锚文本描述目标頁面的内容,別寫“点击這里”“查看更多”這類没有信息量的词。
- 同一批連結不要在每個頁面重复出現,重复度太高时,蜘蛛可能只走其中一部分。
列表頁與分頁:別在第二頁之後断掉
列表頁是深层頁面最主要的入口之一。常见問题是分頁只保留“上一頁/下一頁”,而没有可爬的頁碼連結,蜘蛛翻到某一頁之後就找不到後續。更稳的做法是保留带頁碼的連結,让每一頁都能被直接指向;同时確認分頁連結是 href 形式,而不是点击後才通過脚本加载。
如果列表内容确實很長,可以考虑按分類或時間拆成多個可獨立訪問的列表頁,而不是無限下拉加载。加载出来的内容如果没有對應的 URL,蜘蛛即使执行了脚本,也很难把它当成一個獨立的發現入口。
連結形式:能爬的和爬不到的
内鏈做得再多,形式不對也白費。用 href 寫清楚的連結是最稳的;通過表單提交、鼠标事件、脚本動態插入的連結,蜘蛛的處理方式並不一致。至少在導航、面包屑和分頁這三處,不要依赖脚本。
怎么驗證内鏈有没有真的起作用
把訪問日誌里的蜘蛛請求按路径归類,看它是否沿着導航、面包屑、正文連結往下走。如果某個深层頁面長期只有来自 Sitemap 的請求,没有任何内鏈来源,說明站内還没有给它一條稳定的進入路径,它在抓取队列里的優先級通常也不會太高。
反過来,如果發現某個栏目頁被频繁請求,但它的下級頁面很少出現,那大概率是栏目頁到下級頁的連結断了,或者連結藏在脚本里没被识別。
小结
導航负责覆盖面,面包屑负责层級一致,正文連結负责相關性引導。三者不需要寫得多复杂,但要保證連結真實可爬、层級和 URL 對應、不把有限的抓取額度浪費在無意义的入口上。内鏈理顺之後,Sitemap 和外部連結的作用才更容易叠加起来。