常见问题

蜘蛛池入口页和 sitemap 提交,对目标 URL 发现各自承担什么角色?

sitemap 提交和蜘蛛池入口页常被拿来对比,但一个是对自有站点的主动声明,一个是通过外部链接提供发现路径。本文说明两者各自适合的场景、容易踩的理解偏差,以及怎样用日志判断是发现环节没生效,还是问题已经在后面几步。

常见问题

蜘蛛池入口页和 sitemap 提交,对目标 URL 发现各自承担什么角色?

聊 URL 发现时,sitemap 提交和蜘蛛池入口页经常被放在一起比较。但它们的定位并不相同:sitemap 是站点主动向搜索引擎声明“我这里有哪些地址”,属于提交;蜘蛛池入口页是通过一批可被抓取的页面,挂上指向目标 URL 的链接,属于引导爬虫顺着链接走。一个是声明,一个是路径,混着看容易把因果关系搞反。

两者分别解决什么问题

sitemap 的作用范围基本限定在你自己能验证控制权的域名内。它的价值在于:让爬虫不必靠猜就知道站点里存在哪些页面,尤其是入口浅、内链少、平时很难被点到的深层页。它解决的是“站内 URL 的可见性”。

蜘蛛池入口页解决的是另一件事:把一条不在你站点结构里的目标 URL,通过外部页面的超链接暴露出去。爬虫抓取入口页时解析页面上的链接,从而知道目标 URL 的存在。它解决的是“跨域、跨站的发现”。

所以当有人问“哪个更有效”,更准确的说法是:先看你缺的是声明,还是缺的是路径。

各自更适合的场景

sitemap 更有用的情况

  • 目标 URL 位于你自己能验证的域名下;
  • 页面数量多、内链结构乱、深层页面很难被逐层点开;
  • 希望爬虫重新抓取已存在但内容有更新的页面;
  • 需要在 sitemap 里带上 lastmod 一类的时间信息,辅助判断更新。

蜘蛛池入口页更有用的情况

  • 目标 URL 不在你能提交 sitemap 的站点里;
  • 希望通过外部链接增加一条被发现的可能性;
  • 目标页自身站内入口极少,需要外部链接做补充引导。

两者并不冲突。正常的抓取路径里,爬虫既可能读过 sitemap,也可能顺着链接一路走过来。非要二选一,通常是把它当成了开关。

几个常见的理解偏差

  • 把 sitemap 当成收录保证。提交只是告知存在这些地址,抓不抓、收不收由搜索引擎自行判断,sitemap 决定不了结果。
  • 以为入口页越多,发现就越快。入口页内容高度重复、质量差,爬虫的抓取意愿会下降,页面上的链接被解析的机会也跟着变少。
  • 忽略可抓取性。入口页被 robots.txt 挡住、返回 5xx,或者链接写在 JS、图片里,都会让“链接存在”和“链接被发现”变成两回事。
  • 目标页自己挡住了入口。目标 URL 带 noindex、被 robots.txt 屏蔽、需要登录才能访问,入口页挂再多链接也不会有后续动作。

怎么判断哪一步没生效

与其纠结哪种方式更强,不如按顺序看日志:

  1. 先确认服务器日志里有没有搜索蜘蛛的 UA 访问过入口页,返回码是多少;
  2. 再看同一时间段有没有针对目标 URL 的请求,UA 是否一致;
  3. 如果入口页被抓了、目标 URL 没被抓,检查链接是否是可解析的 a 标签,目标地址是否可达;
  4. 如果目标 URL 已经被抓,问题就不在发现环节,要回到页面内容与质量本身去找。
发现、抓取、收录是三件事。sitemap 和入口页链接都只作用在第一步,后面的步骤得靠目标页面自己满足条件。

实操上的顺序建议是:自有站点的 URL,先把 sitemap、内链和可访问性整理清楚,能覆盖的就不必绕远路;确实需要外部引导的 URL,再把入口页当作补充手段。不要把所有希望押在某一种方式上,也不要把两种方式的效果混在同一个指标里统计。