很多站長把 sitemap 当成一個“提交就能收錄”的開關,文件传上去就開始盯索引數量,几天没動静就怀疑是不是 XML 寫错了。實际情况是,sitemap 主要解决的是URL 發現這一步,它把地址递到搜尋引擎面前,但递過去之後抓不抓、收不收,取决于別的東西。把這條邊界弄清楚,能省下大量無效排查。
一個 URL 進入索引要经過几步
從提交到能出現在搜尋结果里,大致要過四道關:
- 發現:搜尋引擎知道這個地址存在。内鏈、外鏈、sitemap、歷史抓取记錄都算發現渠道。
- 抓取:蜘蛛真的来取回頁面内容。這一步受抓取配額、服務器响應、robots 規則影响。
- 索引:内容被解析、判断质量、决定放進索引還是丢弃。
- 展示:有查询匹配时才可能被排出来。
sitemap 影响的是第一步,最多顺带暗示一下更新频率。它管不到第二、三、四步。所以“sitemap 已提交,收錄為零”本身並不矛盾。
sitemap 能做和不能做的事
- 能做:让新頁面、深层頁面、内鏈稀少的頁面更早被發現;帮助搜尋引擎確認哪些是規范地址;在站点改版後加速地址更新。
- 不能做:不能强制抓取,不能保證收錄,不能提升頁面质量评價,也不能替代内鏈结构。
- 容易誤解的一点:後台顯示“已成功提交”只代表文件被讀取成功,不代表里面每個 URL 都會被處理。
如果站点本身内鏈通畅、新内容發布後几分钟就能被爬到,sitemap 的邊际作用其實不大;它更大的價值在于那些從首頁点几下都点不到的頁面。
文件本身常见的几個坑
- 地址不是規范版本:sitemap 里寫带參數的、带大寫字母的、带结尾斜杠不一致的地址,會和頁面上的 canonical 打架,反而增加判断成本。
- 混進不该出現的頁面:已经 noindex 的、返回 404 的、重定向的地址放進去,會让文件可信度下降,也浪費抓取。
- lastmod 乱填:每次生成都把所有頁面的時間刷成今天,會让時間戳失去參考意义。
- 數量與体积超限:單文件 URL 數量和未压缩体积都有上限,超了要拆成索引文件,否則可能只被讀一部分。
- 位置没告知:文件放在根目錄不等于被自動發現,通常還需要在 robots.txt 里寫 Sitemap 指令,或在後台手動提交。
自查顺序建议
- 在浏览器直接打開 sitemap 地址,確認能正常返回,不是 403、不是被防火墙拦成人机驗證頁。
- 随机抽几條 URL 手工訪問,確認返回 200 且内容與预期一致。
- 核對抽到的 URL 是否和頁面上的 canonical 完全一致。
- 確認 robots.txt 里没有誤挡這個文件本身,也没有挡目錄。
- 查看抓取統計里 sitemap 的讀取時間,確認最近确實被讀過,而不是缓存了舊版本。
如果 sitemap 没問题,该往哪看
文件检查完仍然没有收錄進展,問题通常不在這份文件上。可以按這個顺序往下排:頁面是否内容過薄或與站内其他頁高度重合;是否返回了 200 但主体為空;是否被 robots meta 或登入墙挡住;站点整体抓取配額是否被大量低價值 URL 消耗掉。這些都属于抓取與索引阶段的問题,和“有没有提交 sitemap”已经無關。
把 sitemap 理解成给搜尋引擎的一份通讯錄,而不是一張入场券。它负责让對方知道有你這個人,進门之後能不能坐下,看的是頁面本身。
排查时先分清卡在哪一步,再决定要不要動 sitemap,比反复重传文件有效得多。