很多站点都提交了 XML Sitemap,却忽略了一个更早就存在的页面:HTML 站点地图。它没有任何特殊格式,就是一个普通页面,把站内的主要链接按栏目、按类别排出来,让访客一眼看到全站结构。对搜索蜘蛛来说,它同样是一张可以沿着走的链接地图。
它和 XML Sitemap 的分工
两者名字接近,作用并不相同。XML Sitemap 是给抓取程序读的文件,放在根目录,用标签描述 URL 与更新时间;HTML 站点地图是给用户看的页面,靠的是页面里一条条真实的链接。
换句话说,XML Sitemap 解决的是“有哪些地址被列出来了”,HTML 站点地图解决的是“站内有没有一条路能走过去”。两者可以并存,不冲突,也不能互相替代。
它能补上什么
内链结构清晰的站点,蜘蛛顺着导航和列表页就能覆盖大部分页面。但在下面几种情况里,HTML 站点地图会显得有用:
- 栏目层级较深,首页到内页要穿过三四层列表;
- 有些页面只从某个活动页或某篇旧文章链过去,入口很少;
- 站点刚上线,外链少,蜘蛛来访次数有限;
- 页面总量不算大,但希望蜘蛛较快看到较完整的地址集合。
把这些页面集中在一个入口页上,相当于给蜘蛛多开了一条路,缩短它找到这些 URL 的路径。
链接怎么放才走得通
用源码里直接写出的链接
链接必须是 HTML 源码里直接出现的 a 标签,蜘蛛拿到第一份 HTML 就能解析到。如果用脚本拼接、点击后才插入页面,或者挂在点击事件上,抓取时可能什么都看不到。
锚文本写页面本身的名字
链接文字尽量用目标页面的标题或核心词,不要清一色“点击这里”“更多”。锚文本既是给用户的指引,也是蜘蛛判断目标页面主题的一个参考。同一目标页的多条链接,文字保持一致更稳妥。
分组和数量要有节制
把所有 URL 堆进一个页面,动辄几千条,用户看着累,蜘蛛也未必愿意全部走完。比较合适的做法是按栏目分组,每组列出该栏目下相对重要的页面;总量大时,先列一级、二级栏目,再用分类页或分页往下展开。
几种让它白做的情况
- 链接加了 nofollow,蜘蛛不会顺着走;
- 整个页面被 robots.txt 屏蔽,或页面本身带有 noindex;
- 链接指向重定向甚至死链,走一步就断;
- 页面只藏在角落,没有任何其他页面链向它,蜘蛛发现不了这个入口;
- 页面加载很慢,或者需要登录才能看到内容。
前几种多是写法问题,检查一遍就能改掉。
判断一份 HTML 站点地图是否可用,有个简单办法:在浏览器里关掉 JavaScript,看链接是否还在、是否能点。
怎么维护
HTML 站点地图不是建好就放着。新增栏目或重要页面时同步加进去;页面下线、改版换了 URL 时,把旧链接替换掉,不要留着指向 404 或一长串重定向。定期点一遍里面的链接,确认都能走通。页面上可以标注更新时间,方便用户和蜘蛛判断这份目录的新旧。
它解决不了的问题
HTML 站点地图只是入口之一,并不能保证蜘蛛一定抓取,也不保证页面进入索引。它替代不了清晰的栏目导航、合理的内链和稳定的服务器。真正影响抓取效果的是整站结构,而不是某一个页面。把它当作辅助工具,放在合适的位置就够了。