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 刷成目前時間,這個字段很快就失去意义,蜘蛛也不會再參考它。正确做法是让它跟随内容真實修改時間,正文没變就不要改。
一次可执行的自查步骤
- 打開线上 sitemap,確認能正常訪問、返回 200、Content-Type 正确;
- 用 XML 校驗工具跑一遍,確認格式合法、编碼為 UTF-8;
- 抽查 20~30 條 URL,逐條看狀態碼、canonical 是否指向自身;
- 確認清單只包含規范 URL,跳轉鏈和參數頁都已排除;
- 检查單文件是否超過 50MB 或 5 萬條上限,超了就拆分並用 sitemap index 匯總;
- 確認 robots.txt 里寫明了 sitemap 地址,且没有誤屏蔽;
- 核對分片清單:每個子 sitemap 都要能被獨立訪問,index 里不能有失效條目;
- 回头看抓取日誌,對比清單里的地址與實际被抓取的地址是否一致。
几個容易被忽略的细节
- priority 和 changefreq 基本可以忽略。主流搜尋引擎早已不再參考這两個字段,花時間维護不如把 lastmod 做准。
- 大站建议用 gzip 压缩。纯文本 XML 压缩後体积能降不少,對带宽和抓取都更友好。
- 图片、视频、新闻類 sitemap 是獨立扩展。如果站内有图片站或资讯栏目,可以單獨提交,但前提是资源本身能被直接訪問。
- sitemap 不能替代内鏈。它只是辅助發現手段,如果頁面本身没有任何内部入口,即便進了清單,抓取優先級也不會高。
把 sitemap 当成一份需要定期對帳的台帳,而不是一次性配置。清單准不准,直接影响蜘蛛把時間花在哪里。
多久看一次比較合适
内容更新频繁的站点,可以跟着發版节奏走,每次上线新栏目或調整 URL 结构时顺手核一遍。更新慢的站点,一個月或一個季度抽查一次也够。關键是把它寫進流程,而不是等收錄出了問题才想起来翻。