搜索抓取

HTML 站点地图:给用户看的目录页,也是蜘蛛的一条入口

HTML 站点地图是一个普通页面,把站内主要链接按栏目列出来。它既是给用户看的目录,也给蜘蛛多一条通往内页的路。本文说清它和 XML Sitemap 的分工、链接怎么放、数量怎么控,以及哪些写法会让它形同虚设。

搜索抓取

HTML 站点地图:给用户看的目录页,也是蜘蛛的一条入口

很多站点都提交了 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 站点地图只是入口之一,并不能保证蜘蛛一定抓取,也不保证页面进入索引。它替代不了清晰的栏目导航、合理的内链和稳定的服务器。真正影响抓取效果的是整站结构,而不是某一个页面。把它当作辅助工具,放在合适的位置就够了。