站点运营

站点运营:Sitemap 自查,別让地图把蜘蛛带偏

Sitemap 是站点主動交给搜尋引擎的路线图,但很多站点只是提交了就再無检查。本文從文件可訪問性、收錄范围、lastmod 可信度、分片規模几個角度,给出一份可落地的 Sitemap 自查清單,帮助你發現地图里指向死鏈、重定向或不该出現的地址。

站点运营

站点运营:Sitemap 自查,別让地图把蜘蛛带偏

Sitemap 是站点主動递给搜尋引擎的一張地图。它不保證收錄,但能减少蜘蛛猜路的成本。問题在于,很多站点把 Sitemap 提交一次之後就再也没看過,等到發現某類頁面長期没有動静,才回头检查,往往已经积累了成百上千條無效地址。

先確認這張地图有没有被讀

自查的第一步不是看内容,而是看通道。检查 robots.txt 里是否寫了 Sitemap 地址,地址是否與實际文件路径完全一致,文件本身是否返回 200 而不是 404 或 403。如果站点有防火墙、登入校驗或地域限制,還要確認抓取請求不會被拦在半路。

接着在搜尋资源平台的提交入口確認已提交,再回到服務器日誌里搜 Sitemap 文件的請求记錄,看抓取频次和狀態碼。只有提交记錄、没有抓取记錄,通常意味着通道有問题,而不是内容有問题。

地图里该放什么

核心原則只有一條:只放你希望被索引、且技術上允许被索引的規范地址。

  • 返回 200 的 HTML 頁面,正文可被抓取
  • canonical 指向自身,或明确指向這個地址
  • 没有被 meta robots 或响應头标记為 noindex
  • 不需要登入、不依赖表單提交就能打開

反過来,下面這些地址不應该出現在 Sitemap 里:301 或 302 跳轉頁、404 與 410、被 noindex 的頁面、纯參數篩選與排序頁、内容重复的镜像頁、還有那些只在站内搜尋里才存在的临时结果頁。把它們寫進去,等于請蜘蛛来一趟再让它原路返回。

lastmod 要诚實

lastmod 是 Sitemap 里少數仍可能被參考的字段,前提是它可信。如果每次生成都把全站刷成当天日期,等于告诉搜尋引擎整站每天都在變,時間一長這個字段就失去參考意义。建议由發布系統在内容真正改動时更新,格式统一用 W3C 日期時間寫法。

分片與規模

單個 Sitemap 文件建议不超過 5 萬條 URL,未压缩体积控制在 50MB 以内。超出就拆成多個文件,再用 Sitemap index 串起来。分片按栏目或内容類型切分,比按時間胡乱切割更容易定位問题——某個分片出错时,你一眼就知道影响的是哪一块。

几個常见誤区

  • 只放首頁和栏目頁,内容頁全靠内鏈碰运气
  • 维護一份静態文件,新内容上线後忘了同步
  • 大小寫、带不带 www、http 與 https 混着寫
  • 把带跟踪參數、會话 ID 的地址寫進地图
  • 中文 URL 未做轉义,導致解析失敗
  • robots.txt 挡住了 Sitemap 文件自身

把它變成固定動作

  1. 新栏目上线或批量改 URL 之後,立刻跑一次格式與可訪問性校驗
  2. 抽样 10 到 20 條,逐條確認狀態碼、canonical 和 noindex 标记
  3. 拿日誌與地图對照,看地图里的地址是否真的被請求過
  4. 在资源平台對比已提交與已索引的差值,差值集中的部分單獨归類排查
  5. 把 Sitemap 生成寫進發布流程,而不是靠人工導出
Sitemap 不是收錄開關,它只是把门牌号寫清楚。门開不開、蜘蛛進不進,最终還是取决于頁面本身值不值得抓。

定期花十几分钟做這几項检查,比事後追着問為什么某類頁面没動静要省力得多。