搜索抓取

Sitemap 之外的 URL 发现入口:Feed、更新列表与主动推送怎么用

Sitemap 不是蜘蛛发现 URL 的唯一路径。RSS/Atom feed、首页与栏目页的更新区块、标签聚合页,以及搜索引擎提供的主动推送接口,都能成为补充入口。本文整理这些入口的适用场景、常见误用,以及如何通过服务器日志判断它们是否真的被蜘蛛使用。

搜索抓取

Sitemap 之外的 URL 发现入口:Feed、更新列表与主动推送怎么用

多数站点把 URL 发现的希望押在 Sitemap 上,这没错,但 Sitemap 只是一个入口。蜘蛛在抓取过程中,还会顺着页面链接、Feed、更新列表、主动推送接口等路径去找 URL。把这些入口分清楚,能让新内容少绕几道弯。

一、Feed 与更新列表:按时间排序的入口

RSS 或 Atom feed 本身就是一个按发布时间倒序的 URL 列表。对更新频繁的站点来说,feed 比 Sitemap 更轻,蜘蛛抓一次就能拿到最近一批新 URL。

使用时注意几点:

  • feed 地址保持固定,不要随栏目改版频繁更换;
  • 只放稳定可访问的页面 URL,不要放草稿、登录后地址或临时页面;
  • 保留最近一段时间的内容即可,几十到上百条通常够用;
  • feed 的 lastBuildDate 与条目发布时间要真实,不要每次请求都刷新成当前时间。

首页或栏目页上的“最新文章”“最近更新”区块,作用类似:它给蜘蛛一条从首页出发、层级很浅的路径。这个区块如果被折叠收起、被异步加载,或者只在登录后可见,蜘蛛可能看不到。

二、主动推送:告诉搜索引擎“这里有新 URL”

部分搜索引擎提供主动推送接口,常见形式是提交一条或多条 URL,或者用 IndexNow 一类协议同步给多个引擎。它的定位是“通知”,不是“保证”。

推送成功只代表请求被接收,代表 URL 进入了待处理队列,不代表一定会被立即抓取,更不代表页面会被收录。是否抓、何时抓,仍由搜索引擎根据页面质量、站点整体抓取情况自行判断。

推送时容易踩的坑:

  1. 把全站 URL 反复推送,尤其是老页面、参数页、重复页,反而可能稀释真正的新内容;
  2. 推送接口和 Sitemap、feed 提交的内容互相矛盾,比如推送一个已被 robots.txt 屏蔽的地址;
  3. 页面还没上线就推送,蜘蛛来了拿到 404 或跳转,几次之后这个入口的可信度会下降。

三、标签页、聚合页与站内搜索

标签页、专题页、年度归档这类聚合页,也能带出一批 URL。它们的好处是链接集中、更新明显;风险是容易生成大量低差异页面,把蜘蛛的路径引向重复内容。

比较稳妥的做法是:聚合页只保留有实际检索价值的维度,控制每个聚合页带出的链接数量,避免“标签套标签”无限延伸。如果某个聚合页长期没有独立内容,可以考虑用 nofollow 或 robots 规则减少它占用的抓取路径。

四、多个入口怎么分工

  • Sitemap:全量清单,适合稳定、可索引的 URL,按类型分片;
  • Feed:近期更新,适合高频改动的栏目;
  • 首页与栏目更新区块:给重要新页面一条短路径;
  • 主动推送:时效性强的内容,按真实更新量提交,不要刷量。

这几个入口不冲突,但要有主次。入口太多而且内容不一致时,蜘蛛会在同一批 URL 上反复确认,抓取效率反而下降。

五、用日志确认入口有没有被用

判断某个入口是否有效,最直接的办法还是看服务器日志:

  • Feed 地址最近有没有蜘蛛访问记录,抓取频次是否与更新节奏匹配;
  • 新 URL 第一次被抓取时,访问顺序或 Referer 是否指向首页、栏目页、feed;
  • 被推送的 URL 是否在推送后的一段时间内出现在日志里;
  • 抓取请求返回的状态码是否正常,有没有大量 3xx、4xx 落在入口页上。

如果日志里长期看不到某个入口的访问,先检查它是否被 robots.txt 或服务器规则拦住,再检查是否被页面上的 nofollow、脚本加载方式挡住。入口本身不通,再多的 URL 也送不出去。

URL 发现更像是一套通路,而不是一个开关。Sitemap、feed、更新区块、主动推送各管一段,通路稳定、内容一致、状态码干净,蜘蛛才有机会顺着它们把新页面找出来。