站点运营

站点运营:Sitemap 自查,別让蜘蛛拿着過期的清單找路

Sitemap 是交给搜尋引擎的地址清單,配置完不代表一直正确。本文梳理清單里混入跳轉頁、错誤頁、參數頁的常见問题,以及 lastmod 失真、分片失效等容易忽略的细节,並给出一份可执行的自查步骤,帮运营者定期對帳。

站点运营

站点运营:Sitemap 自查,別让蜘蛛拿着過期的清單找路

Sitemap 本质上是一份交给搜尋引擎的地址清單。它不承诺收錄,也不承诺排名,但它是蜘蛛發現新 URL、判断哪些地址值得回訪的重要參考。麻烦在于,很多站点的 sitemap 配置完就再没人看過:栏目改名了、URL 換了、内容下线了,清單還停在半年前。蜘蛛照着走,要么扑空,要么错過真正的新内容。

三類最常见的 sitemap 問题

1. 清單里混進了不该出現的地址

這是最普遍的一種,常见混入項包括:

  • 已经 301 跳轉的舊地址;
  • 返回 404 或 410 的下线頁面;
  • 被 robots.txt 屏蔽、或带有 noindex 的頁面;
  • 带篩選參數、排序參數、會话 ID 的组合 URL;
  • 分頁的第二頁、第三頁(是否收錄取决于你的策略,但至少要想清楚);
  • 測試环境、草稿、预览連結。

這些地址本身不一定带来惩罚,但會稀释清單的有效性——蜘蛛把時間花在跳轉和错誤頁上,留给新内容的份額就少了。判断标准很简單:只把返回 200、可索引、且你希望被收錄的規范 URL 寫進去。

2. 该出現的新内容反而没進去

動態生成的 sitemap 脚本经常有缓存、白名單或更新時間窗口的問题。自查时可以對照最近發布的内容,看新 URL 多久出現在清單里。如果新栏目上线两周還没進 sitemap,多半是生成逻辑或缓存没跟上。

3. lastmod 随手乱寫

lastmod 是清單里少數能被搜尋引擎直接采信的字段。如果每次生成都把全部 URL 的 lastmod 刷成目前時間,這個字段很快就失去意义,蜘蛛也不會再參考它。正确做法是让它跟随内容真實修改時間,正文没變就不要改。

一次可执行的自查步骤

  1. 打開线上 sitemap,確認能正常訪問、返回 200、Content-Type 正确;
  2. 用 XML 校驗工具跑一遍,確認格式合法、编碼為 UTF-8;
  3. 抽查 20~30 條 URL,逐條看狀態碼、canonical 是否指向自身;
  4. 確認清單只包含規范 URL,跳轉鏈和參數頁都已排除;
  5. 检查單文件是否超過 50MB 或 5 萬條上限,超了就拆分並用 sitemap index 匯總;
  6. 確認 robots.txt 里寫明了 sitemap 地址,且没有誤屏蔽;
  7. 核對分片清單:每個子 sitemap 都要能被獨立訪問,index 里不能有失效條目;
  8. 回头看抓取日誌,對比清單里的地址與實际被抓取的地址是否一致。

几個容易被忽略的细节

  • priority 和 changefreq 基本可以忽略。主流搜尋引擎早已不再參考這两個字段,花時間维護不如把 lastmod 做准。
  • 大站建议用 gzip 压缩。纯文本 XML 压缩後体积能降不少,對带宽和抓取都更友好。
  • 图片、视频、新闻類 sitemap 是獨立扩展。如果站内有图片站或资讯栏目,可以單獨提交,但前提是资源本身能被直接訪問。
  • sitemap 不能替代内鏈。它只是辅助發現手段,如果頁面本身没有任何内部入口,即便進了清單,抓取優先級也不會高。
把 sitemap 当成一份需要定期對帳的台帳,而不是一次性配置。清單准不准,直接影响蜘蛛把時間花在哪里。

多久看一次比較合适

内容更新频繁的站点,可以跟着發版节奏走,每次上线新栏目或調整 URL 结构时顺手核一遍。更新慢的站点,一個月或一個季度抽查一次也够。關键是把它寫進流程,而不是等收錄出了問题才想起来翻。