站点运营

站点运营:站点地图自查,別让 sitemap 變成過期地址清單

站点地图本意是帮蜘蛛發現 URL,但很多站点長期不维護,里面混着 404 地址、noindex 頁面和不可信的 lastmod,反而制造無效抓取。本文列出 sitemap 的常见問题,並给出一套可执行的自查流程:入口確認、抽样驗證、狀態碼核對、分片检查與更新节奏建议。

站点运营

站点运营:站点地图自查,別让 sitemap 變成過期地址清單

站点地图(sitemap)是很多站点最容易“设好就不管”的文件。上线时提交一次,之後栏目調整、URL 重寫、内容大批下线,sitemap 却還是老样子,最後它不但没帮忙發現新頁面,反而把一批已经失效的地址递给了蜘蛛。這篇聊的就是怎么定期给 sitemap 做一次自查。

先说清楚 sitemap 能做什么、不能做什么

sitemap 的主要價值是辅助 URL 發現:当站内連結不够密、新頁面藏在深层目錄、或者内容更新频繁时,它相当于给蜘蛛递一張清單。但它不是收錄開關,提交了不代表會被抓取,更不代表會有排名。把它当成“给蜘蛛的路线提示”,而不是“提交入口”,心態會稳很多。

常见的几類 sitemap 問题

  • 混入失效地址:文章已刪除或改過 URL,舊地址還留在文件里,蜘蛛按清單訪問,拿到的是 404 或一串重定向。
  • 包含不该抓的頁面:登入頁、站内搜尋结果頁、带參數的篩選頁、測試目錄,這些頁面要么被 robots 屏蔽,要么设了 noindex,却仍然出現在 sitemap 里,属于自相矛盾。
  • lastmod 不可信:要么全站同一個時間戳,要么每次生成都刷新成目前時間。看似“勤更新”,實际會让這個字段失去參考價值。
  • 结构不合規:單文件超過 5 萬條或 50MB 未分片、XML 格式报错、编碼不是 UTF-8、分片索引没同步更新。
  • 更新滞後:新文章發布後几天才進 sitemap,或者干脆靠手動改,运营一忙就忘了。
  • 覆盖面偏窄:只放栏目首頁和几個重点頁,正文頁全靠站内連結爬,等于没發挥 sitemap 的作用。

一份可执行的自查流程

  1. 先確認入口:robots.txt 里是否寫了 Sitemap 地址,域名是否與正式站一致,別寫成測試域名或 http 版本。
  2. 抽样驗證:從 sitemap 里随机取 20 到 30 條,逐條訪問,看返回的是 200 還是 301、404、403。
  3. 核對狀態碼與 noindex:sitemap 里的地址理想狀態是直接返回 200;如果某條地址需要跳轉才能到正式頁,就應该把最终地址寫進 sitemap。
  4. 检查 lastmod 逻辑:確認它反映的是内容實质變更時間,而不是生成時間。全站條目同一秒更新,基本可以判断有問题。
  5. 检查分片與索引:條目多的站点,確認索引文件里列出的每個子文件都能正常打開,没有指向已刪除的舊分片。
  6. 確認生成方式:手動维護适合小站,但更新频率超過每周几次,就该考虑程序自動生成,並把更新動作挂進發布流程。

多久看一次,看什么

节奏不用太密。内容更新频繁的站点,可以每月抽查一次;改版、換域名、大批量下线内容之後必须立刻复查。抽查时優先看三類條目:最近發布的新頁面、最近改過 URL 的頁面,以及半年以上没動過的老頁面。

如果 sitemap 里的地址和站点實际狀態對不上,它带来的不是更多抓取,而是更多無效請求。宁可條數少一点、狀態准一点。

顺手可以做的几件事

  • 把 sitemap 生成脚本的輸出條目數與後台已發布内容數做對比,差距過大說明有遗漏。
  • 已下线的舊地址保留一段時間的 301,確認流量轉移稳定後再從 sitemap 中移除。
  • 多語言或多子站点的項目,分別生成各自的 sitemap,不要混在一個文件里。
  • 在抓取日誌里观察蜘蛛對 sitemap 地址的訪問结果,看是否有成片的 404 或 5xx。

sitemap 自查不需要多高的技術门槛,關键是把它纳入日常的运营检查表,而不是等出了問题才想起来翻一眼。