站点地图(sitemap)是站点运营里比較基础的一項,但它不是一次性任務。很多人上线时提交一次,之後就不再管,结果新栏目、新文章已经發了不少,地图里還停留在几個月前的狀態。它的作用不是保證收錄,而是给搜尋蜘蛛提供一條相對明确的 URL 發現路径,减少“等蜘蛛自己爬”的不确定性。
站点地图放什么,不放什么
站点地图應该只放你希望被索引、並且返回正常狀態碼的頁面。常见的错誤是把登入頁、购物车、搜尋结果頁、带大量參數的篩選頁都塞進去。這些頁面要么被 robots 屏蔽,要么設定了 noindex,要么内容重复,放進地图只會增加蜘蛛的判断成本。
- 只包含 200 狀態碼的規范 URL,不要放 301/302 跳轉地址。
- 不要放 robots.txt 里禁止抓取的路径。
- 不要放頁面上已经寫了 noindex 的地址。
- 如果同一内容有多個 URL,地图里只保留 canonical 指向的主地址。
分片、更新與 lastmod
当站点 URL 數量較多时,用 sitemap index 把地图拆成多個子文件,比把所有 URL 塞進一個文件更利于维護。分片方式可以按栏目、按内容類型、按更新時間。比如文章一個分片、产品一個分片、栏目頁一個分片。這样某類内容下架或調整时,只需要處理對應文件。
lastmod 要尽量反映頁面真實修改時間。如果每次生成地图都把所有 URL 的 lastmod 寫成目前時間,蜘蛛多次抓取後會發現這個信号没有区分度,反而降低參考價值。更新频繁的栏目可以單獨分片,稳定内容的分片不用频繁變動。
站点地图不是“提交了就有效”的按钮,它更像一份需要定期核對的清單。
常见坑:地图地址本身無法訪問
地图文件也要能正常訪問。有人把 sitemap.xml 放在需要登入的目錄下,或者服務器對 XML 返回了错誤的内容類型,蜘蛛請求时拿不到有效内容。自查时可以直接用浏览器無痕模式打開地图地址,確認狀態碼和内容格式。如果使用 robots.txt 声明 Sitemap 地址,注意寫完整 URL,並确保该地址不返回 404。
监控與驗證的日常動作
- 定期抓取自己的 sitemap,检查是否返回 200,内容是否為合法 XML。
- 抽样對比地图里的 URL 與實际頁面,確認没有 404、301 或 noindex 混入。
- 查看服務器日誌里蜘蛛對 sitemap 文件的抓取频率和狀態碼,判断是否被正常讀取。
- 新增栏目或批量刪除内容後,同步更新分片和索引文件,不要等下次全量生成。
- 在搜尋资源平台查看提交與索引資料,把它当作參考,不把它当成收錄承诺。
站点地图维護不需要每天操作,但适合列入月度巡检。重点检查三件事:地图地址能否正常訪問、内容是否都是可索引的規范 URL、分片是否跟得上栏目變化。把這三件事固定下来,蜘蛛發現新頁面的路径會更清楚,站点运营也少一些临时补救。