XML 站点地图(sitemap)是站方向搜尋引擎主動递交 URL 的常規手段,但它本身不是“收錄開關”。真正影响效果的是:地图里列出的地址,是否和站上真實、可訪問、值得被發現的頁面一致。很多站点的 sitemap 由插件自動生成,装好之後就再没人看過,時間一長,地图和站点實际情况脱节,反而给抓取带来干扰。
先搞清楚 sitemap 里現在装了什么
打開浏览器直接訪問 sitemap 文件,把地图里的地址和站点實际頁面做個對照。常见的脱节有三類。
一、已经刪除或改版的頁面還留在地图里
- 栏目下线後舊地址仍在地图中,蜘蛛反复来抓只會拿到 404 或 301。
- 活動頁、商品頁下架了,地图却没有同步刷新。
- 測試目錄、临时頁面曾经被寫進地图,後来一直没清掉。
少量 404 不是大問题,但如果地图里長期存在大量死鏈,抓取预算就被消耗在這些没有價值的地址上。
二、真正重要的頁面反而没進地图
- 手工發布的专题頁、獨立栏目,插件识別不到,一直没進地图。
- 列表翻頁過多,後面几頁被地图截断,深层内容缺少入口。
- 移動端或獨立域名只列了其中一套,另一套完全缺席。
三、地址格式不统一
同一個頁面在地图里以多種形式出現,是很常见的問题:
- http 與 https 混用;
- 带 www 和不带 www 混用;
- URL 末尾斜杠不统一;
- 带跟踪參數(如 utm_source)的地址被寫進地图;
- 大小寫不一致,而服務器区分大小寫时报 404。
這些地址在地图里看起来是不同頁面,實际指向同一份内容,等于人為制造重复入口。
一套可执行的自查流程
- 拉全量清單。把 sitemap 里所有 URL 導出成表格,作為基准清單。
- 跑一遍狀態碼。用工具批量請求,标记出 404、301、500 的地址。
- 比對真實頁面。把地图地址與後台已發布内容列表對照,找出“地图有、站上没有”和“站上有、地图没有”两類。
- 统一規范。确定站点唯一主域名和 URL 形式,地图里只保留規范地址。
- 確認可訪問性。地图本身要能匿名打開,不要 403,也不要被 robots.txt 挡住。
- 检查 lastmod。修改時間要和頁面實际更新時間對得上,不要每次生成都把全部日期刷新一遍。
sitemap 索引與分片的注意点
- 單個 sitemap 文件有 URL 條數和体积上限,超過时要拆分,並用索引文件统一列出。
- 索引文件里引用的子地图地址同样要能正常訪問。
- 把地图位置寫進 robots.txt 是常见做法,但要確認路径正确、没有拼寫错誤。
- 提交過的舊地图地址如果有變動,需要同步更新,避免留下失效引用。
提交之後別就当完事
sitemap 只是“告诉”蜘蛛有哪些地址,不保證被抓取,更不保證被收錄。提交後值得观察的是:
- 搜尋资源平台里已提交與已處理的數量比例,長期偏低說明地图里低质地址偏多。
- 訪問日誌中蜘蛛對地图内地址的抓取频次,是否只集中在少數几個栏目。
- 新發布頁面在日誌里首次被抓取的時間,是否明顯滞後。
把 sitemap 当成一份需要定期核對的“地址清單”,而不是装完就忘的插件产物。每次栏目調整、批量下线内容之後顺手看一眼地图,比事後清理死鏈省事得多。
如果站点規模不大,手工维護一份精简地图往往比依赖插件全量生成更干净;規模大时則需要把地图生成逻辑接進發布流程,让頁面下线與改版同步反映到地图里。