做蜘蛛池时,很多人会问一个问题:入口页跑了几个月,目标 URL 也陆续被搜索蜘蛛发现了,那如果把入口页停掉,甚至直接下线,之前已经发现的那些 URL 还会继续被爬吗?这个问题没有统一答案,但把“发现”和“抓取”拆开看,思路就清楚很多。
发现和抓取是两件不同的事
搜索蜘蛛在入口页上看到一个链接,只代表这个 URL 进入了它的待处理队列,不代表马上会抓,也不代表一定会抓。真正决定抓取节奏的,通常是这个 URL 所在站点的整体情况、历史抓取表现、内容更新频率、服务器响应速度等。入口页在这个过程中扮演的是“提供线索”的角色,它不负责后面的抓取排期。
所以入口页下线后,影响最大的其实是新 URL 的发现渠道,而不是已经进入队列的 URL 的抓取。
入口页下线后,三类 URL 的处境不同
1. 已经进入待抓队列的 URL
这类 URL 已经被记录在抓取系统里,短时间内不会因为入口页消失就全部取消。它们会按照各自的站点情况继续排队,可能被抓,也可能因为优先级低而长期搁置。
2. 刚被发现、还没排上队的 URL
这类最尴尬。入口页下线后,没有新的链接来源去“提醒”搜索引擎这个 URL 的存在,如果站点本身权重不高、更新也不频繁,抓取优先级会慢慢往下掉,最后可能就停在队列里不动了。
3. 还没被任何入口页指向的 URL
这些 URL 本质上从未被发现过。入口页没了,就少了一条甚至唯一一条通往它们的路径。
停更和下线不是一回事
入口页内容不再更新,但页面还能正常打开、链接还在,那它对目标 URL 的发现作用基本保留。真正有明显影响的是下面这几种情况:
- 入口页返回 404 或 410,链接随之消失;
- 入口页整站下线或域名解析失效;
- 入口页被降权,蜘蛛回访频率大幅下降;
- 入口页被 robots.txt 或 noindex 处理掉。
也就是说,门户还在、只是不更新,和门户直接拆掉,对目标 URL 的后续影响差别很大。
想减少损失,可以这样做
- 需要长期被发现的 URL,尽量保留至少一个稳定的入口页,不要一次性全撤。
- 逐步替换而不是突然下线:新入口页先上线、被爬过几次之后,再把旧的下掉。
- 目标 URL 本身要注意可访问性,一个长期返回 5xx 的页面,蜘蛛来过几次后自然会减少回访。
- 用服务器日志观察入口页的蜘蛛回访频率,回访明显变少时,就该考虑补充新的入口来源。
怎么判断已发现的目标 URL 还在不在被抓
最靠谱的还是看日志:先在入口页日志里确认蜘蛛确实来过,再去目标 URL 的访问日志里找同一个 UA 的记录,看时间是否在入口页抓取之后。如果入口页的抓取时间点在持续更新,目标 URL 却长时间没有新记录,说明抓取确实被卡住了,或者目标 URL 已经被判定为低优先级。
入口页解决的是“被看到”的问题,抓取和收录另有自己的一套逻辑,把两者混在一起判断,很容易得出错误结论。
小结
入口页停更通常不致命,下线则会让新 URL 的发现渠道变窄。已经进入队列的 URL 短期内仍可能被抓,但得不到新链接支撑的 URL,抓取优先级会逐步下滑。实际操作中,与其一次性关掉大量入口页,不如分批替换、持续观察日志,让发现和抓取都保持一个相对稳定的节奏。