搜尋抓取

舊内容與归档頁:下沉的 URL 该怎么管,才不拖累抓取

站点執行久了,归档頁和舊 URL 會不断累积,占用有限的抓取资源。本文從归档頁的生成机制讲起,說明舊地址為什么還在被反复抓取,並给出保留、合並、下线三類處理思路,以及 noindex 與 robots.txt 的使用差別和日誌驗證方法。

搜尋抓取

舊内容與归档頁:下沉的 URL 该怎么管,才不拖累抓取

站点运营時間一長,URL 總量只會往上走。新内容在增加,舊内容也没有消失。很多頁面早就不再更新,也不再有訪問,但蜘蛛還是會按时来。抓取资源不是無限的,這部分開销會挤占新地址被發現的机會。

归档頁會自己長大

常见的归档有两類:一類按時間切分,比如 /2021/03/ 這样的年月路径;一類按分類或标簽聚合。它們本身有用,既给用戶浏览入口,也给蜘蛛提供路径。麻烦在于,它們會随着内容增加不断产生新的 URL,而且往往是自動生成、没人管理的那一批。

一篇舊文章可能有四五條路径能到達:标簽頁、日期归档、相關阅讀、站内搜尋、Sitemap。路径多不等于發現快,反而让同一批内容被反复抓取。

舊 URL 為什么還在被訪問

  • Sitemap 没有清理,早期提交的地址還留在里面;
  • 頁脚、侧邊栏、相關阅讀等全站模板一直鏈着归档入口;
  • 归档自己還有分頁,第 2 頁、第 3 頁形成長長的鏈;
  • 外部連結仍在,蜘蛛會顺着外鏈回訪;
  • 部分地址是參數或排序生成的重复版本。

這些因素叠加起来,一個内容量並不大的站,也可能有一大批 URL 長期占着抓取次數。

分三類處理

保留

仍有訪問、仍有外部連結、對用戶有浏览價值的归档,可以留下。但不必放在全站模板里,收進层級更深的入口即可,让蜘蛛按需走到。

合並

多個归档指向同一批内容时,合並成少量入口,用分頁或篩選来承接。合並後记得做 301,別让舊地址直接 404。

下线

内容已刪除或没有保留價值的,明确返回 404 或 410,不要用 200 返回一個空頁面。空頁面會繼續被当成正常地址抓取,也容易让蜘蛛對這批頁面的质量形成偏低判断。如果只是換了地址,用 301 指向新地址即可。

noindex 和 robots 的用法差別

归档頁不想進索引,可以用 noindex, follow,保留路径但不占索引名額。要留意的是,robots.txt 屏蔽和 noindex 是两回事:被 robots 挡住的頁面,蜘蛛看不到頁面里的 noindex 声明,也就無法據此調整。所以想让某類頁面登出索引,尽量不要用 robots 去挡。

把 URL 交给蜘蛛之前,先想清楚它值不值得占用一次抓取。

用日誌驗證效果

  • 按目錄統計抓取次數,看舊目錄的占比是否下降;
  • 看 404、410 的比例變化,判断清理是否生效;
  • 记錄新内容從發布到首次被抓的時間,观察是否缩短。

調整通常不會立刻反映出来,观察四到八周更稳妥。中間出現波動是正常的。

一份可执行清單

  1. 導出最近一個月的服務器日誌,按目錄和 URL 類型聚合;
  2. 列出長尾類型:日期归档、标簽頁、參數頁、附件頁、已刪除内容;
  3. 逐類决定保留、合並還是下线;
  4. 清理 Sitemap,只保留需要被發現的地址,lastmod 如實填寫;
  5. 减少全站模板中的舊連結,把入口放到更合适的位置;
  6. 观察四到八周,對比新 URL 的發現速度與抓取分布。

归档不是不能有,而是要有邊界。知道哪些地址值得被抓,比一味增加入口更有用。