不少站点把 sitemap 当成收录的开关,文件一提交,就等着页面出现在搜索结果里。几天没有动静,就开始怀疑文件格式、路径或者提交方式出了问题。实际上,sitemap 影响的是收录链路里的第一环,它不负责后面的结果。
sitemap 解决的是 URL 发现
一个页面进入索引,大致要经过发现、抓取、处理、索引几个环节。sitemap 的作用主要在发现这一步:它把一批 URL 集中摆到搜索引擎面前,省去爬虫顺着链接一层层找的过程。对于链接层级深、入口少的页面,这个提示确实有用。
但被发现不等于被收录。爬虫拿到地址之后,还要判断这个页面值不值得抓、抓回来值不值得索引。内容单薄、和已有页面高度重复、质量不达标的页面,即使写进 sitemap 并且被访问过,也可能长期停在“已发现”的状态。
把 sitemap 理解成一张清单,而不是一张通行证。
哪些 URL 值得写进去
- 返回 200 的规范地址,不要写还会 301、302 跳转的旧地址
- 内容会持续更新、希望被反复抓取的页面,比如文章详情、商品详情
- 入口较深,外链和内链都很难覆盖到的页面
- 数量不大但重要的核心页面,可以单独列一份并同步 lastmod
写进去的地址要尽量保持唯一:带不带 www、结尾有没有斜杠、参数顺序是否固定,都要和页面里的规范地址一致。同一个页面在 sitemap 里出现两种写法,等于把重复问题又放大了一遍。
哪些 URL 不该放
- 404、410 以及其他打不开的地址
- 已经设置了 noindex 的页面,两个信号互相矛盾
- 需要登录、或带临时会话参数的页面
- 筛选、排序、分页组合出来的参数地址,数量会迅速膨胀
- 被 robots.txt 封禁、却仍写在 sitemap 里的地址
最后一条容易被忽略:一边用 robots.txt 挡住目录,一边把里面的 URL 列进 sitemap,爬虫只会看到一堆拿不到的地址。长期这么写,会让搜索引擎对整份文件的准确性打折。
几个容易踩的误区
提交之后马上就能收录
sitemap 只是提供线索,抓取和索引各有节奏。刚上线的页面需要时间积累信号,提交当天没有结果很正常。判断是否有效,看的是爬虫有没有按文件里的地址访问,而不是搜索结果条数的变化。
文件越大越好
sitemap 有单文件和单站点数量上限,超过之后需要拆分并用索引文件串联。但更实际的问题是:一份塞满低质页面的 sitemap,反而会稀释其中真正重要 URL 的分量。宁可少而准,不要多而杂。
lastmod 随便填
lastmod 是给爬虫判断更新时间的参考。如果每次生成文件都把时间刷成当前时间,这个字段就失去了意义,时间一长会被直接忽略。只有内容确实变了,才更新对应的时间。
怎么核对它有没有起作用
- 看服务器日志里爬虫对 sitemap 文件的请求频率,判断它是否在被定期读取
- 对照文件里的 URL 列表和日志里的抓取记录,看哪些地址始终没有被打过
- 把持续被抓取却不进索引的页面单独拎出来,检查内容质量和重复情况
这样一圈下来,通常能分出两类问题:一类是压根没被发现,另一类是发现了但没通过质量这一关。前者可以靠 sitemap 和内链优化,后者只能回到页面本身去解决。
维护 sitemap 的功夫,其实花在筛选上:把真正希望被收录、也经得起检查的地址放进去,其余交给 robots.txt、noindex 或规范标签处理。把它当成一份需要定期整理的清单,比当成一个提交动作更有价值。