蜘蛛發現 URL 的主要途径是連結,而不是凭空猜测。一個頁面從首頁出發点几次能到達,往往决定了它會不會被早一点抓到、能不能顺利進入索引流程。Sitemap、站内搜尋、外鏈都能起到补充作用,但日常最可控的還是内鏈结构。
蜘蛛是怎么沿着連結走的
抓取通常從几個入口頁開始,顺着 a 标簽的 href 向外扩散。這個過程是有预算的:站点每天能抓的 URL 數量有限,蜘蛛會優先走那些离入口近、更新频繁、歷史表現稳定的連結。层級越深的頁面,被排進抓取队列的時間就越靠後,有些頁面可能几周都轮不到一次。
這也解释了一個常见現象:首頁和栏目頁刚改完内容,很快就能看到新版本;而藏在第四层、只有两三處入口的詳情頁,改了标题几周都没有動静。
入口不只在站内
外部連結、友情連結、社交平台分享、手動提交 URL,都會给站点带来額外的爬取机會。站外引導的质量比數量重要,来源杂乱或明顯批量生成的連結,带来的抓取往往不稳定,也不值得把發現新頁面的希望全押在上面。
判断連結深度时容易忽略的几点
- 点击深度不等于連結深度。有些頁面要從列表翻好几頁才能点到,但面包屑或相關推荐里有直達連結,實际深度並不深。
- 列表分頁會不断加深路径。翻到第 20 頁的内容,被抓到的概率已经很低,等于被埋在列表末尾。
- JS 插入的連結要看能不能被抓到。如果 a 标簽是渲染後才出現的,而蜘蛛没有执行脚本或执行不完整,這些連結就等于不存在。
- 孤立頁面。没有任何站内連結指向、只能靠 sitemap 被發現的 URL,抓取频率通常低得多。
哪些寫法會让連結断在半路
- 用 div 或 span 加 onclick 跳轉,没有真正的 href。
- href 寫成 javascript:void(0)、“#”或空值。
- rel=“nofollow”用得過于随意,把本来需要收錄的頁面也一起挡了。
- 連結藏在表單提交、图片热区、需要展開的下拉菜單里。
- 導航用了前端路由,但服務端返回的 HTML 里没有任何對應連結。
把重要頁面往上提的几種做法
- 减少不必要的层級。两步能到達的頁面,不要设計成四步。
- 给每個内容頁至少留一條来自高權重頁面的直達連結,比如栏目首頁、专题聚合頁、热榜。
- 面包屑和相關推荐不要只做装饰,确保它們是真實的 a 标簽連結。
- 分頁用可抓取的連結,或者提供“查看全部”的聚合頁来承接長尾内容。
- 用 sitemap 兜底,尤其是新上线和深层頁面,但要清楚它只是提示,並不保證被抓。
内鏈不是配額游戏
有人把内鏈当成给頁面投票,在頁脚堆連結、在正文里塞几十個锚文本。這種做法通常适得其反:頁面上的連結一多,每條連結分到的注意都變薄,頁面本身也容易被当成低质量集合頁。
内鏈解决的是“能不能被發現”,收錄解决的是“值不值得留下”。連結做通了,頁面内容依然單薄、和站内其他頁面高度重复,索引里照样可能留不下它。
比較務實的顺序是:先用内鏈和 sitemap 保證重要頁面能被稳定發現,再回头處理内容质量和重复問题,最後才去看收錄狀態里的各種细节。發現、抓取、索引是三件事,内鏈只管第一件,但第一件没做好,後面两步就没有机會開始。