很多站長把注意力放在 sitemap 和各類提交入口上,却忽略了一個更日常的問题:搜尋引擎平时是怎么顺路走到一個新 URL 的。URL 發現、抓取、收錄是三件不同的事,而站内連結主要影响的是第一件。
先把發現、抓取、收錄分開看
發現,是搜尋引擎知道這個 URL 存在;抓取,是爬虫真的把頁面取回来;收錄,是内容進入索引,有机會被搜到。三者是递進關系,前一步没打通,後面就無從谈起。sitemap 和外鏈能帮着發現,但真正稳定、可持續的發現路径,通常是站内連結。
爬虫常见的几條發現路径
- 外部連結:別的站点指向你,爬虫顺着過来。
- Sitemap:你主動告诉它站点里有哪些 URL。
- 站内連結:從已经抓取的頁面顺着 a 标簽繼續往下走。
- 歷史记錄:之前抓過的 URL,改版後仍可能被再次訪問。
外鏈不完全可控,sitemap 更像一份清單,而站内連結是你能天天調整的那條路。如果一個頁面在站内没有任何入口,它就只能依赖 sitemap 或外鏈被發現,稳定性要差不少。
内鏈上的几個常见断点
孤立頁
頁面直接輸入網址能打開,但站内没有任何連結指向它。這類頁面往往要等很久,甚至一直等不到下一次抓取。
連結不是連結
用 div、span 加点击事件来實現跳轉,或者目标地址由脚本在点击那一刻才拼出来。爬虫讀到的 HTML 里可能根本看不到可跟随的目标。
重要頁面藏得太深
從首頁要点五六层才能到,中間還夹着篩選頁和分頁。层級越深,被抓取的频率通常越低,更新也更慢被發現。
把連結属性用得太狠
整站導航、栏目列表上大面积使用 nofollow,或者用脚本整段屏蔽站内連結,等于自己把路堵掉一部分。nofollow 更适合用在确實不想背书的連結上,而不是站内導航。
可以马上自查的几件小事
- 重要頁面尽量保證從首頁三次点击内可達。
- 新内容上线後,在相關的老頁面正文里补一個上下文連結。
- 面包屑、栏目列表、相關推荐,都是比較自然的内鏈位置。
- 分頁和归档頁不必全部放行,但通往正文的路径要留一條。
- 用抓取工具或服務器日誌看看爬虫實际訪問了哪些 URL,比凭感觉猜更靠谱。
内鏈的作用不是堆量,而是让爬虫和用戶都能沿着合理的路径走到该看的頁面。
別把内鏈做成另一场堆量
有人一听说内鏈有用,就在每個頁面底部挂上几十上百條連結,或者用大量低质站点互相連結来引導爬虫。這類做法短期可能带来一些訪問,但頁面质量、用戶体驗和連結自然度都不占優,長期反而會拖累整体抓取效率。把有限的抓取机會留给真正有價值的頁面,比铺满連結更有意义。
内鏈解决不了的那部分
回到開头:URL 發現只是第一步。内鏈铺得合理,爬虫更容易走到新頁面;但頁面本身值不值得收錄,仍然取决于内容质量、重复程度和 URL 規范。換句话说,内鏈决定的是能不能被找到,决定不了值不值得留下。两件事都做,效果才稳。