站点运营

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

Sitemap 不是提交了就萬事大吉,過期條目、被屏蔽目錄、參數頁堆砌都會让它失去意义。這篇文章按自查思路,從日誌確認、條目核對、分文件维護到與 robots 的配合,梳理一份可持續维護的站点地图该怎么做。

站点运营

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

Sitemap(站点地图)是站点向搜尋引擎主動提交 URL 清單的一種方式。它不能让頁面一定被收錄,也不能替代内鏈和内容质量,但它能减少「蜘蛛根本不知道這個地址存在」的情况。問题在于,很多站点的 sitemap 是上线时生成過一次,之後基本没人再打開看過:里面躺着已经刪除的頁面、被 robots 挡住的目錄、几萬條带參數的篩選结果。這样的文件不但帮不上忙,還可能占用抓取時間。下面按自查的思路,把 sitemap 容易出問题的地方過一遍。

一、先確認蜘蛛有没有真的讀它

在動手改内容之前,先確認這份文件是被訪問過的。可以打開服務器日誌或 CDN 日誌,搜尋 sitemap 的路径,看最近的抓取记錄里有没有搜尋引擎的訪問,返回狀態是不是 200。如果長期没有任何訪問记錄,先別急着優化條目,而要检查两件事:一是 robots.txt 里有没有把它挡住,二是文件本身是不是返回了 404、403 或者超时。

顺带看一眼返回的 Content-Type,确保是 XML 而不是 text/html。有些服務器配置會把 .xml 当成普通文本返回,虽然多數情况下仍能解析,但出現異常时排查會更麻烦。

二、逐條核對清單里的 URL 是否還成立

把 sitemap 里的 URL 抽一批出来,按下面几類問题過一遍:

  • 已刪除或改版的頁面:栏目下线、活動結束、商品下架後,對應的 URL 如果還留在 sitemap 里,蜘蛛每次来都會撞上 404,次數多了會降低對這個文件的信任。
  • 被 robots 屏蔽的地址:sitemap 里出現 Disallow 的目錄,属于自相矛盾。要么放開抓取,要么把它從清單里去掉。
  • 需要登入或跳轉的頁面:一訪問就 302 到登入頁的地址,放進去没有意义。
  • 重复 URL:带與不带 www、带與不带结尾斜杠、http 與 https 混在一起的版本同时存在,需要统一成最终形態。
  • 參數頁:篩選、排序、分頁组合出来的地址,數量容易失控,建议只保留少量有實际检索價值的入口。
  • 不该出現的頁面:站内搜尋结果頁、购物车、測試頁、後台入口,都不适合出現在公開清單里。

三、lastmod 別乱寫

lastmod 是用来告诉蜘蛛「這個頁面最近确實有變化」的字段。如果每次生成 sitemap 都把全站 lastmod 刷成当天,等于對所有頁面喊了一遍「都更新了」。蜘蛛跑几次發現内容没變,就會開始忽略這個字段,等到某天你真的更新了重点頁面,反而传不出信号。

更稳妥的做法是让它跟着内容系統的真實修改時間走:正文有實质改動才更新,只改排版、只換配图、只調整推荐位,都不必動它。

四、按内容類型拆開维護

当站点規模到几萬條以上时,把所有 URL 塞進一個文件既不便于排查,也不方便区分優先級。常见的拆法是:

  1. 文章或资讯類一個文件,更新频繁,可以單獨提交。
  2. 栏目頁、聚合頁一個文件,數量少但重要。
  3. 商品或下载詳情頁一個文件,按分類或時間分批。
  4. 再用一個索引文件(sitemap index)把它們串起来。

這样某個模块出問题时,影响范围可控,也方便在 Search Console 里單獨看每份文件的提交和抓取情况。

五、提交之後仍要定期回看

sitemap 不是一次性的交付物,而是一份需要跟着站点一起更新的清單。站点改版、栏目合並、URL 規則調整之後,它往往是第一個被遗忘的文件。

建议把它纳入固定的检查节奏:每次改版或大規模下线内容後重新生成一次,每月抽一批 URL 用抓取工具或浏览器實际打開看看狀態碼,把它和站内連結、robots.txt、canonical 三者的说法對齐。清單里的地址應该都是能正常訪問、允许抓取、且指向最终版本的頁面——做到這一点,它才算真正在帮忙。