在蜘蛛池里,入口页负责把搜索蜘蛛引过来,目标 URL 才是真正希望被发现的地址。很多人会问:目标 URL 到底是放进 sitemap 更有效,还是写在入口页正文里更有效?这两条路走的是不同机制,谈不上谁绝对更好,但排查问题时必须先分清楚。
sitemap 和正文链接,本质上是两条发现通道
简单说:
- sitemap 是把一批 URL 直接列成清单交给搜索引擎,相当于主动报备“这些地址存在”。它不携带锚文本、页面位置和上下文语义。
- 正文链接 是搜索蜘蛛在抓取入口页时,顺着 a 标签往外爬,属于链接图发现,通常会带上锚文本和页面层级信息。
也就是说,sitemap 解决的是“知不知道有这些地址”,正文链接解决的是“从哪条路径爬过去”。两者可以同时用,也可以只用一种,但效果和排查方式并不一样。
sitemap 这条路常见的几个误区
- 把提交 sitemap 等同于让页面被抓取。 sitemap 只影响发现环节,不保证抓取,更不保证收录。
- 往里塞大量与站点无关的 URL。 清单越杂,搜索引擎对整份文件的信任度越低,反而可能拉低有效地址的发现效率。
- sitemap 文件本身抓不到。 如果 robots.txt 屏蔽了 sitemap 路径,或者文件返回 404、500,这份清单基本等于没提交。
- 只更新页面不更新 sitemap。 新增目标 URL 后忘了写进文件,或者 lastmod 时间与页面实际改动长期对不上。
正文链接这条路常见的几个误区
- 链接层级过深。 目标 URL 藏在入口页第三、第四层分页后面,搜索蜘蛛可能爬到一半就停了。
- 链接由 JS 异步插入。 在渲染能力有限的抓取场景下,这些地址可能根本读不到。
- 一页塞太多链接。 链接数量远超页面实际可用内容,单个链接分到的抓取权重会被摊薄。
- 链接带 nofollow 或被 robots 屏蔽。 搜索蜘蛛即使看到地址,也不会继续跟进。
两种方式怎么配合比较稳
- 先确认目标 URL 本身可以被抓取:状态码正常、没有被 robots.txt 拦截、页面没有 noindex。
- 用 sitemap 保证清单完整,把需要被发现的地址系统性地列出来,减少遗漏。
- 在入口页保留少量、位置靠前的正文链接,让这些地址在链接图里也有入口。
- 观察服务器日志,区分抓取来源:Referer 为空或指向 sitemap 文件,通常来自清单;Referer 是入口页地址,多半是顺链接爬过来的。
- 不要因为迟迟没收录就不断加量。先看抓取是否已经发生,再考虑是否调整内容或页面结构。
怎么从日志判断是哪条路径
抓取日志里,搜索蜘蛛请求目标 URL 时带的 Referer 能提供线索。Referer 为空、指向 sitemap 文件,或者指向搜索引擎内部的调度地址,一般说明这次抓取来自 sitemap 或其他提交渠道;Referer 明确是入口页 URL,则说明是顺着页面链接爬过来的。两种来源混杂出现也很正常,不必强行区分,重点看目标 URL 是否真的被请求过。
sitemap 管“报备”,正文链接管“引路”。只报备不引路,地址可能长期停留在已发现未抓取的状态;只引路不报备,则容易漏掉那些没有任何链接指向的地址。
实际运营中,入口页的结构、抓取频率、目标 URL 的可访问性,往往比用哪种提交方式影响更大。把这几项基础条件确认清楚,再回头看 sitemap 与正文链接的差别,思路会清晰很多。