做 URL 发现时,常见两种做法:把链接放在入口页的 HTML 里,或者把同一批目标 URL 塞进 sitemap。很多人觉得后者等于“提交给搜索引擎了”,其实这两条通道在搜索引擎眼里并不是一回事,弄清楚差别能少走弯路。
两者传递的信息不同
页面上的链接是一张关系图。A 页面通过某段锚文本指向 B,搜索引擎除了知道 B 存在,还能拿到一些上下文:锚文本、链接周围的文字、链接在页面里的位置。sitemap 本质上只是一份 URL 清单,它表达的是“这些地址存在,可以来看看”,并不说明谁指向谁。
- 页面链接:能携带锚文本和一定的上下文信号,有助于判断目标页面的主题方向。
- sitemap:主要声明地址存在,可能带更新时间,但不传递链接关系。
发现路径和抓取节奏也不一样
页面链接是顺着抓取走的:搜索蜘蛛抓到入口页,解析出链接,再由调度决定什么时候去抓目标 URL。sitemap 通常走另一条通道,搜索引擎定期读取文件,把其中的 URL 放进待抓取队列。两条路最终都可能让地址进入队列,但节奏不同,也没有谁一定先谁一定后。
sitemap 是补充手段,不是替代品。它更适合用来兜底那些链接层级深、不容易被顺着爬到的地址,而不是用来省掉正常的页面链接结构。
常见的使用误区
- sitemap 里堆几十万条 URL,其中还有大量 404、跳转地址,或者被 robots.txt 屏蔽的路径,读取成本高,可信度反而下降。
- 只提交 sitemap,页面上不给任何链接,目标 URL 缺少上下文,即便被抓到,判断主题也更难。
- 文件没有在 robots.txt 里声明,也没有在搜索资源平台提交,搜索引擎不一定能及时读到。
- sitemap 里的地址和页面链接指向的地址写法不一致,比如大小写、末尾斜杠、跟踪参数不同,容易造成重复。
- 长期不更新,里面已经下线的 URL 仍被反复请求。
蜘蛛池场景下的实务建议
如果入口页的目的就是让搜索蜘蛛顺着链接发现目标 URL,那页面链接仍然是主要手段,sitemap 更适合当兜底和补充:
- 入口页保留稳定的 HTML 链接,锚文本自然描述即可,不要堆砌关键词。
- 把希望被发现的 URL 同步写进 sitemap,但只放返回 200、可正常访问的地址。
- sitemap 按类型拆分,体积保持可控,并在 robots.txt 中声明位置。
- 定期核对 sitemap 中的地址与页面链接是否指向同一个 URL,避免重复。
- 结合日志看 sitemap 的读取频率和目标 URL 的抓取情况,判断是“链接没被发现”,还是“已被发现但排在队列后面”。
怎么选择
简单说:想让搜索引擎理解“这个页面和那个页面有关系”,靠页面链接;只想告诉搜索引擎“这些地址存在”,用 sitemap。两者配合时,页面链接负责关系和上下文,sitemap 负责覆盖面和兜底。无论哪种方式,都不承诺收录或排名,抓不抓、收不收,最终由搜索引擎自己决定。