新页面上线之后,很多人的第一反应是去提交链接。但蜘蛛认识一个 URL 的路径不止一条,提交只是其中一条。把这几种入口的分工理清楚,比反复催抓更有用。
蜘蛛认识新 URL 的几条入口
站内链接:最稳的一条
首页、栏目页、相关推荐、面包屑上的链接,是蜘蛛最常走的路径。一个页面如果能从多个已经被抓取的页面链接到,被发现的机会就更大。新内容发布后,至少从一个稳定被抓取的列表页给出直达链接,是比较省事的做法。链接位置也重要,正文里的链接通常比页脚的链接更受关注。
Sitemap:批量交付
Sitemap 适合把一批 URL 一次性说清楚,尤其是详情页、深层页这类不容易靠内链串起来的地址。需要注意两点:不要把已经下线或返回 404 的地址长期留在里面;lastmod 只写真实的改动时间,不要每次生成都刷新一遍。Sitemap 本身要能被正常访问,格式不要出错。
外部链接与其他信号
其他站点指向你的链接同样会把蜘蛛带来,尤其是一些抓取频繁的站点。此外,RSS 订阅、站内搜索结果的聚合页、标签页也可能成为入口,但这些路径的稳定性不如站内链接和 Sitemap,不适合当作主要依靠。
被发现只是第一步
URL 进入抓取队列之后,还要排队,还要看服务器响应。如果同一批新页面在很短时间内大量上线,抓取会分散到多个地址上,单个页面被完整抓取的时间可能被推后。这时候,保证页面能正常打开、返回码正确、主要正文不依赖脚本渲染,比继续堆叠入口更有效。
自查:把入口走一遍
- 从首页出发,点几次能到新页面?层级过深就补一条从列表页直达的链接。
- 打开 Sitemap,确认新 URL 在里面,且文件本身可访问、格式无误。
- 看看标签页、聚合页、站内搜索结果里有没有自动出现这个地址。
- 检查返回码,避免过长的重定向链或偶发的 5xx。
- 确认 robots.txt 没有误挡相关目录。
容易忽略的几处
分页与筛选参数
列表页的翻页如果依赖脚本生成,或者筛选参数排列混乱,新页面容易长期沉在底层,入口等于没打通。
服务器时段
如果站点在流量高峰时响应偏慢甚至超时,而蜘蛛恰好在这段时间来访,就可能拿到错误响应。观察抓取日志里失败请求的时间分布,往往比盯着“蜘蛛怎么还不来”更有意义。
入口决定蜘蛛能不能找到你,响应质量决定它愿不愿意继续抓。
把入口整理清楚,再去解决响应稳定性的问题。URL 发现和抓取质量是两件需要分开检查的事,混在一起判断,容易得出错误的结论。