站点运营

站点运营:sitemap 自查,別让站点地图把蜘蛛带進死胡同

站点地图通常由程序自動生成,但自動不等于正确。本文提供一份 sitemap 自查清單:從失效地址、參數頁混入,到 lastmod 的真實性、文件大小與编碼、robots.txt 引用方式,逐項確認這份地址清單是否真的有助于蜘蛛發現内容,並附上可落地的检查节奏。

站点运营

站点运营:sitemap 自查,別让站点地图把蜘蛛带進死胡同

站点地图(sitemap)是给搜尋引擎看的一份地址清單。它本身不會让頁面被收錄,但會直接影响蜘蛛第一次發現 URL 的路径是否顺畅。很多站点的問题不在于有没有 sitemap,而在于里面塞了什么、里面登记的地址現在是不是還活着。

為什么 sitemap 需要定期自查

sitemap 通常由程序或插件自動生成,一旦模板規則或配置有偏差,错誤就會随着每一次生成被複製一遍。生成完没人看,几個月後文件里可能已经混進了大量已下线頁面、带參數的過滤頁,甚至測試地址。蜘蛛照着這份清單来,抓到的是一串失效 URL,既浪費抓取资源,也會影响它對站点整体狀態的判断。

自查清單

1. 清單里的地址是否還能正常打開

抽取其中一部分(比如按更新時間排序的前 200 條,以及最早的一批)逐個訪問,重点看返回狀態碼:

  • 返回 404 / 410:應從 sitemap 中移除,或先确定是否需要做跳轉;
  • 返回 301 / 302:確認跳轉目标與 sitemap 中登记的地址是否一致,尽量不要把跳轉鏈放進清單;
  • 返回 200 但内容是空頁、占位頁:這類地址對訪客没有價值,建议一並清理。

2. 是否混入了不该出現的地址

常见不该出現在 sitemap 里的類型包括:站内搜尋结果頁、带跟踪參數的 URL、分頁列表第 3 頁之後的地址、登入與後台路径、尚未定稿的预览地址。這些地址一旦被大量抓取,會让蜘蛛把精力花在重复内容上。可以先確認它們在 robots.txt 或頁面 meta 中是否已做限制,再检查 sitemap 的生成規則有没有把它們排除掉。

3. 數量與更新字段是否真實

  • 清單總條數與後台實际發布量是否大致對得上,明顯偏多或偏少都值得查生成逻辑;
  • lastmod 字段是否在頁面更新後同步變化,如果所有地址的時間戳都是同一分钟,說明它只是批量生成的假值;
  • changefreq、priority 這類字段目前被主流搜尋引擎參考得較少,不必花太多精力微調,保持合理即可。

4. 文件本身是否可訪問

在浏览器和命令行里都打開一遍 sitemap 地址,確認以下几点:

  1. 直接返回 200,不是跳轉,也不需要登入;
  2. 内容是 XML,编碼声明正确,中文标题不出現乱碼;
  3. 單個文件不超過 5 萬條 URL、未压缩体积控制在 50MB 以内,超出时拆分並用索引文件匯總;
  4. 已被 robots.txt 中的 Sitemap 指令正确引用,多子站或多語言站点分別列出。

5. 與實际 URL 结构是否一致

改版、換域名、調整目錄结构之後,sitemap 往往是最容易被遗漏的一环。检查协议(http / https)、是否带 www、结尾是否带斜杠,是否與线上地址完全一致,一個小差异就可能让整份清單失效。如果站点同时提供獨立的移動版地址,也要確認對應關系是否寫對。

建议的检查节奏

不必每天盯着,可以按下面的方式安排:

  • 每周:抽查新發布内容的地址是否出現在 sitemap 中;
  • 每月:随机抽取 50 到 100 條地址做狀態碼检查,清理失效項;
  • 每次改版或調整栏目结构後:重新生成,並人工核對開头與结尾各一批地址。
把每次检查的時間、抽样數量、發現的問题和修改動作记在一張表里。等到某天抓取資料出現異常时,這張表比临时翻日誌要管用得多。

sitemap 只是 URL 發現的一個入口,做好它不能保證收錄,但一份干净、准确、可訪問的地址清單,至少不會把蜘蛛引到死胡同里,也能為後續的内鏈梳理和日誌分析留出判断空間。