先把 sitemap 的作用邊界说清楚
不少站点把 sitemap 当成收錄開關:提交之後每天看索引數量,几天没變化就開始焦虑,于是換個文件、重复提交、到處贴地址。更接近實际的理解是,sitemap 主要做一件事——把 URL 告诉搜尋引擎,辅助發現。至于抓不抓、抓完是否编入索引,取决于頁面本身的质量、站点整体情况以及抓取资源的分配。它是一條通道,不是一道指令。
所以当 sitemap 提交後没有動静时,與其反复提交,不如按下面的顺序往回找原因。
第一层:文件本身是否規范
- 能正常打開:地址直接訪問應返回正常内容,不是 404、不是跳轉鏈、也不是被登入墙挡住。
- 放的是規范地址:只寫最终版 URL,不要混入重定向地址、带跟踪參數的地址、大小寫不一致的寫法。
- 狀態碼對得上:sitemap 里的地址最好是 200 且允许被索引。把 404、301、noindex 的頁面寫進去,會削弱這份文件的可信度。
- lastmod 別造假:每次發布都無差別刷新時間,會让這個字段失去參考意义。只在實际修改内容时更新。
- 格式與分片:大站点按規則拆成多個文件並用索引文件匯總;單個文件有 URL 數量與体积上限,超出就分批。编碼、命名空間按标准寫,別自己發明字段。
- 別被自己挡住:robots.txt 里若屏蔽了 sitemap 中的目錄,或者屏蔽了 sitemap 文件本身,這份文件基本等于不存在。同时可以在 robots.txt 里声明它的位置,方便被發現。
第二层:提交進去的 URL 是否值得被索引
sitemap 更像一份推荐清單,寫什么就代表你認為什么重要。如果里面有大量低價值地址,真正想被收錄的頁面反而會被淹没。
- 篩選、排序、會话類參數生成的地址,通常不值得放進去。
- 内部搜尋结果頁、空列表頁、内容极少的聚合頁,先掂量。
- 同一正文對應多個地址时,先确定一個規范地址再提交,而不是全部提交。
- 已经明确要下线的頁面,從 sitemap 里移除,別留在里面等着被抓。
換句话说,sitemap 的長度不是成绩。一份短而准的清單,通常比一份長而杂的清單更容易被当作有效信号。
第三层:頁面在站内有没有入口
這是最容易被忽略的一层。sitemap 只负责让搜尋引擎知道有這么一個地址,但頁面能不能被顺利抓到、後續會不會被持續回訪,很大程度上取决于站内連結结构。
如果某個頁面除了 sitemap 之外,没有任何内鏈指向它,那它就是一座孤岛。即使被抓過一次,也很难获得後續的抓取優先級,更新也容易被忽略。有價值的頁面應当能從栏目頁、相關推荐、上一篇下一篇等位置被連結到,且連結是普通的可点击連結,不是靠脚本临时拼出来的。
一個可执行的核對顺序
- 直接訪問 sitemap 地址,確認能打開、格式正确、没有跳轉。
- 抽查一批 URL 的狀態碼與可索引設定,剔除異常項。
- 检查 robots.txt,確認没有屏蔽 sitemap 本身,也没有屏蔽其中的目錄。
- 把明顯不该被索引的地址從 sitemap 中删掉,让清單變短變准。
- 在站内為重要頁面补上真實的内鏈入口,從首頁两层内可以点到。
- 確認頁面本身有獨立标题、有主体内容、不依赖脚本才能看到正文。
- 以上都完成後再观察一段時間,不要一天一改。
看到“已發現但尚未编入索引”时怎么理解
這個狀態說明地址已经被知道,但還没有被抓取,或者抓了還没有進入索引。常见原因包括抓取配額被其他地址占用、頁面被判断為價值不足、内容與站内其他頁面高度相似。處理方式和前面三层一致:先把低價值地址清理掉,把抓取资源让给重要頁面,再把内鏈和内容补上,而不是繼續往 sitemap 里加地址。
sitemap 解决的是“有没有人知道這個地址”,收錄解决的是“這個地址值不值得留下”。把两件事分開看,很多焦虑會自然消失。