站点地图(sitemap)是很多站点做收錄时最先想到的工具,但它的作用常被高估。它本质上是一份给搜尋引擎的 URL 清單,能帮助發現連結,却不能替代内鏈、内容质量和服務器稳定性。把它用對,能省下不少重复沟通;用错,反而可能给抓取添乱。
sitemap 解决的是“發現”,不是“收錄”
搜尋引擎處理一個 URL 的流程大致是:發現 → 抓取 → 判断 → 入索引。sitemap 主要作用在第一步,它告诉爬虫“這里還有這些地址”,但爬虫是否来、来了之後是否索引,取决于 robots 規則、頁面可訪問性、内容是否值得保留等因素。所以看到“提交了几千條,只收錄了几百條”,先別急着怀疑 sitemap 没生效,要往後面几步找原因。
该放進去的 URL
- 返回 200 狀態、内容可正常訪問的正式頁面;
- 希望被索引的詳情頁、分類頁、文章頁;
- canonical 指向自身的規范地址;
- 主体内容不依赖复杂交互、服務端能直接輸出的地址。
不该放進去的 URL
- 設定了 noindex 的頁面,两邊信号互相矛盾;
- robots.txt 已经屏蔽抓取的路径;
- 带跟踪參數、會话 ID 之類临时生成的地址;
- 返回 404、410、5xx 的地址;
- 跳轉鏈中間节点,只保留最终落点即可;
- 站内搜尋结果頁、篩選组合頁等近乎無限的地址。
提交之後没動静,按這個顺序查
- 先看抓取日誌:爬虫到底有没有請求過這些 URL。没来,問题在發現和抓取;来了却不收錄,問题多半在頁面本身。
- 確認 robots 與 noindex 狀態:測試环境残留的屏蔽規則、模板里寫死的 meta noindex,都很常见。
- 检查狀態碼與响應時間:超时、502、返回内容為空,都會让爬虫放弃這個 URL。
- 看頁面能否獨立訪問:需要登入、需要点击才加载正文、正文靠 JS 後置渲染,都可能让爬虫拿不到有效内容。
- 比較内容重复度:同一批頁面模板相同、正文稀少,搜尋引擎可能只挑其中一部分入索引。
- 补内鏈:只出現在 sitemap 里、站内没有任何連結指向的頁面,發現效率通常明顯偏低。
分文件與更新频率的几個注意点
單個 sitemap 文件有條數與体积上限,超出後需要拆分成索引文件。拆分时建议按站点结构或栏目来划分,而不是随手按批次切,方便後續定位問题。lastmod 要寫真實的修改時間,長期乱填會让這個字段失去參考價值。已经刪除的 URL 從 sitemap 里移除即可,不需要一直留着“提醒”爬虫。
sitemap 是给爬虫的路线图,不是收錄申請书。它能让新頁面更快被發現,但頁面能不能留在索引里,最终由内容和可訪問性决定。
一個容易被忽略的环节
sitemap 提交後,後台顯示的“已提交”通常只代表文件被成功讀取,不代表其中每個 URL 都被抓到。真正能反映進展的是抓取日誌、索引狀態报告和搜尋表現資料。把這些對照着看,比反复重新提交同一份文件有效得多。如果發現某類 URL 長期零抓取,優先补内鏈、检查狀態碼和渲染方式,而不是繼續扩大 sitemap 的規模。