谈到搜索引擎蜘蛛发现URL,大多数人首先想到的是站内链接与外部链接。但XML站点地图同样是蜘蛛发现URL的正式通道,尤其对于整体规模较大或深层页面较多的站点,一份维护得当的sitemap可以极大减少蜘蛛依赖链接遍历的随机性,让重要内容更早被收录。不过,很多站点的sitemap往往上线后就不再更新,既不检查报错,也不调整内容,反而成了字典里的死条目。要让站点地图真正服务于URL发现,需要从细节上持续维护。
先过滤再提交,减少无效URL干扰
sitemap不是越多越好,也不是把全站所有URL都塞进去就完成任务。蜘蛛对sitemap的抓取同样有预算概念,如果里面堆满了带跟踪参数的链接、分页副本或已被noindex的页面,就可能在parse阶段浪费不必要的资源,甚至让本来应当被优先处理的URL延后。每次生成sitemap时,应当先做一次过滤:去掉robots.txt中明确禁止的路径,去掉canonical指向其他页面的地址,去掉内容完全重复的低质页面,保留对站点有价值、可以被索引的URL集合。
有效的sitemap应当像一张精炼的清单,而不是全量备份的日志。
lastmod不要虚标,提交节奏要匹配
lastmod字段是用来告诉蜘蛛页面最后修改时间的,但很多站点的sitemap中该字段要么干脆不写,要么写成了固定的抓取日期。这样不仅容易误导蜘蛛把已有缓存当新页处理,也可能让蜘蛛忽略真正的更新信号。对于内容经常变化的新闻站或产品页,最好在内容保存时同步更新lastmod,并在预设周期内重新生成sitemap;对于内容极少变动的页面,则不必频繁刷新这个字段。提交节奏要与网站的实际更新频率匹配,而不是机械地每周生成一次,否则蜘蛛感知不到变化,自然也不会因为sitemap而多来访问。
留意三种常见的错误表现
- 链接包含跳转路径:sitemap中的URL如果带有重定向,蜘蛛可能需要多次跳转才能到达最终页面,既增加时间也无助于正文发现,应当直接写最终地址。
- URL与站长后台不一致:例如www与无www混用、协议从http切到https后没有全量替换,会让蜘蛛在发现阶段就产生怀疑。建议统一站点域名并做301收敛,然后在sitemap中使用整套规范的地址。
- 大量500或404状态:刚上线的站点偶尔出现几个错误可以容忍,但如果sitemap中有一百个URL都返回404,说明站点在改动过程中没有做好映射,蜘蛛会认为sitemap本身的维护质量不高,逐步降低对这套通道的信任度。
用sitemap引导站内重要区域
很多站点的首页和栏目页通过内链就能被蜘蛛发现,但一些展示性页面、专题聚合页或只有特定入口的页面,往往容易被遗忘。sitemap正好可以用来做这些区域的“引导员”。建议按照优先级将不同路径放进不同分区,例如核心内容单独建一个sitemap,更新时间放在sitemap index中,然后在robots.txt里明确指向该文件。同时,确保站点地图文件本身能够被正常访问,不可在robots.txt中愚蠢地disallow自己的sitemap路径。
最后需要说明的是,sitemap并不承诺抓取,也不保证收录,它只是URL发现的一种加速器。与其盯着提交次数,不如去观察服务器日志中蜘蛛实际抓取了哪些页面、哪些区域被频繁跳过,再根据反馈回来调整sitemap里的URL组合与提交频率。这种维护习惯,往往比任何SEO技巧都更实在。