不少蜘蛛池把精力都放在入口頁互鏈和跳轉层上,却忽略了 sitemap 這條最直接的 URL 發現通道。它本身不制造抓取,只是把“有哪些頁面值得来抓”讲清楚,但它會影响蜘蛛在有限抓取预算里先看到谁、多久回来看一次。
sitemap 在蜘蛛池里承担什么
- 补充發現:入口頁還没被收錄、站内互鏈又不够深时,sitemap 是一條备用线索。
- 提示更新:URL 的 lastmod 發生變化,相当于告诉蜘蛛這個地址的内容動過了。
- 覆盖統計:把 sitemap 里的地址與實际被抓取、被索引的數量做對比,能大致看出抓取轉化率。
先守住硬性门槛
- 單個 sitemap 文件最多 50,000 條 URL,未压缩体积不超過 50MB。
- 同一個 sitemap 文件里的 URL 必须属于同一主机,协议、域名、端口任一不同就算不同主机,子域名也要單獨拆開。
- sitemap 索引文件最多容纳 500 個 sitemap,而且索引文件不能再套索引文件。
- 文件需為 UTF-8 编碼,地址中的 &、尖括号等字符要做轉义。
- 只放目前可被抓取的規范地址,也就是能正常返回 200 的那些。
分片思路:按用途切,別一股脑塞
- 入口頁單獨一份:數量不多、更新相對频繁,lastmod 跟着實际维護节奏走。
- 目标頁相關地址谨慎放進:確認需要曝光时再列,不要把全部目标頁都倒進去。
- 長尾地址按特征或時間分片:單文件控制在几千條,出問题容易定位。
- 用索引文件匯總:把上面几份 sitemap 挂到一個索引里,再交给 robots.txt 或後台。
提交路径怎么走
最基础的是在 robots.txt 里寫 Sitemap 指令,地址要寫完整的绝對 URL,可以寫多條。搜尋引擎後台提交适合用来观察收錄資料,两者可以並存,並不冲突。過去常用的 ping 接口大多已经停用,不要把提交這件事停留在 ping 上。
常见配置错誤
- 把被 robots.txt 屏蔽或带 noindex 的地址寫進 sitemap,前後自相矛盾。
- 放 301、302 跳轉地址,或者已经 404 的地址。
- 在 priority 和 changefreq 上精雕细琢,而主流搜尋引擎基本不看這两項。
- 把 sitemap 当成同质頁面倾倒场,几萬條几乎一样的入口頁,蜘蛛抓几頁就失去兴趣。
- 索引文件里再套索引文件,超出层級限制。
- 頁面内容没變却频繁改 lastmod,重复几次之後可信度會下降。
怎么判断它有没有起作用
看两處就够了:一是服務器日誌里搜尋引擎對 sitemap 文件的請求频次和時間分布;二是把 sitemap 收錄的地址與日誌中實际被抓取的地址做比對,算一個“曝光後被抓取”的比例。如果 sitemap 被反复拉取,但抓取量没有變化,問题多半出在頁面本身或連結结构上,而不是提交方式。
提醒一句:sitemap 解决的是“知不知道”,不解决“愿不愿意抓”。入口頁质量、跳轉层设計和站内互鏈仍然是主要變量。
一点實操建议
把 sitemap 当成一份需要定期维護的清單:新增入口頁时同步更新,下线入口頁时同步移除,別让清單越积越長却和實际资源脱节。分片时留出余量,不要卡在五萬條上限附近临时拆。對規模不大的蜘蛛池来说,一個入口頁 sitemap 加一個索引文件,通常已经够用。