Sitemap 是站点主動交给搜尋引擎的一份 URL 清單。它不保證頁面被收錄,但能让抓取工具少走弯路:把真正希望被看到的地址集中列出来,而不是完全靠蜘蛛顺着内鏈一点点發現。問题在于,很多站点的 sitemap 是上线时随手生成的,之後内容增删、栏目調整,文件却没跟着變,久而久之反而成了一份過期的噪音清單。
先確認几個基本前提
動手核對之前,先把前提想清楚:sitemap 里放的是可以被正常訪問、並且你希望被索引的頁面;不放進去的,是登入頁、搜尋结果頁、篩選參數頁、後台地址這類不该被大量抓取的地址。前提错了,後面每一項检查都會跑偏。
逐項自查清單
1. 文件位置與格式
- 文件能通過 HTTPS 正常訪問,返回 200,不要跳轉、不要被登入挡住。
- 常见位置是根目錄下的 /sitemap.xml;大型站点可用一個索引文件匯總多個子文件。
- 编碼使用 UTF-8,URL 中的中文與特殊符号需要轉义。
- 單個文件控制在 5 萬條 URL、未压缩体积 50MB 以内,超出就分片。
2. 只列可索引的 200 頁面
随便挑几條 sitemap 里的地址實际訪問一遍,重点看三件事:狀態碼是不是 200、頁面是不是返回了 noindex、canonical 指向的是不是同一個地址。這三項里任何一項對不上,這條 URL 放進 sitemap 就是在制造矛盾信号。已刪除的頁面、暂时下线的栏目、返回 404 或 301 的舊地址,都應该從文件里清掉。
3. lastmod 要能對上頁面的真實更新
lastmod 的用處是提示“這條内容變了”。如果每次生成 sitemap 都把全站時間刷成当天,這個字段就失去意义,抓取工具也會逐渐不再參考它。合理做法是让它跟随正文或關键信息的實际修改時間;只換了模板、調了广告位,不算内容更新。
4. 與 robots.txt、内鏈保持一致
- 確認 sitemap 地址寫進了 robots.txt,方便被自動發現。
- robots 規則里被禁止抓取的目錄,不應同时出現在 sitemap 中。
- sitemap 只是补充手段,站内仍要有正常的内鏈入口,不要指望只靠它發現頁面。
5. 分片與索引文件
内容量大、更新频繁的站点,可以按栏目或按更新時間分片,再用一個索引文件列出所有子 sitemap。這样做的好處是每次更新只需重寫受影响的那几個文件,出错时也容易定位。分片之後记得检查索引文件里的地址是否都可訪問,別出現指向一個已经不存在文件的死鏈。
建议的维護节奏
- 内容發布、下线、改地址时同步更新 sitemap,而不是攒到年底统一處理。
- 每月抽一次样本,把 sitemap 里的地址與後台列表對照,看有没有漏掉或多出。
- 每季度做一次全量校驗,重点清理 3xx、4xx 和 noindex 頁面。
- 把 sitemap 的生成與發布纳入上线流程,避免改版後忘记重新生成。
把 sitemap 当成一份需要長期维護的公開清單,而不是一次性交付的文件。它的價值不取决于里面塞了多少條 URL,而取决于這些 URL 是不是真的存在、真的可訪問、真的值得被看到。
一句话總结:sitemap 的作用是减少歧义。凡是會让抓取工具产生疑問的地址,先不要放進去;等頁面狀態稳定了,再让它出現在清單里。