先分清两件事:被发现,和点进去能打开
搜索蜘蛛在入口页里解析出一个目标 URL,只完成了“发现”这一步。它接下来会把这个 URL 放进待抓队列,单独去请求一次。这次请求的结果——200、301、404、验证页——记录在目标地址那一侧,和入口页本身是两套账。所以判断入口页有没有起作用,不能只看“蜘蛛来没来”,还要看蜘蛛顺着链接走过去之后遇到了什么。
目标链接返回 404 会怎样
第一次抓到 404,并不代表这个 URL 立刻被彻底放弃,搜索引擎通常会留一段观察期。但如果入口页里长期挂着一批 404 链接,影响会慢慢显现:入口页容易被判定为“点进去没东西”的页面,后续再来抓取的频率可能下降。
- 入口页里死链比例越高,搜索引擎对它的信任度越低;
- 同一批 404 反复被抓,等于白白消耗抓取资源;
- 如果这个地址本来有内容、只是换了路径,用 301 指到新地址比长期留 404 更合理。
301、302 跳转的处理差异
入口页里的链接如果先跳一次再落到最终页,搜索蜘蛛一般能跟上,最终也算发现成功,代价是多走一跳。302 属于临时跳转,短期用没问题,长期挂在入口页里,信号会偏弱,容易被当成临时状态处理。如果最终地址已经确定,入口页里直接写最终 URL 最省事,也省一次抓取。
入口页的作用是把 URL 送到蜘蛛面前,中间每多一次跳转,就多一次失败的可能。
最容易忽略的情况:返回 200,但内容是空壳
比 404 更隐蔽的是登录页、验证页、活动已结束页、内容被清空的详情页。它们返回 200,搜索蜘蛛会当成有效页面处理,甚至可能真的收录这个空壳。入口页里如果大量链接指向这类地址,效果和死链差不多,只是从日志上不容易一眼看出来。
入口页本身会因此“受罚”吗
谈不上惩罚,更准确的说法是抓取资源的分配会变。搜索引擎会把有限的抓取次数优先给那些点进去有内容的入口页。长期点进去全是空壳或错误的入口页,蜘蛛回访的间隔容易拉长,新链接被发现的节奏也跟着变慢。
日常可以做的几件事
- 定期抽查入口页里目标链接的响应状态,别只看入口页自己的状态码;
- 确认失效的地址,按情况改成 301 或 410,不要长期留 404;
- 不要把登录页、验证页、参数缺失的空页当落地页写进入口页;
- 更新过一批链接后,回到日志里看蜘蛛回访频率有没有变化,用数据判断,而不是凭感觉。
几个常见误区
- 以为入口页发现了 URL,目标页就一定会被抓、被收录;
- 以为目标页打不开只是目标页的问题,和入口页无关;
- 以为入口页里链接越多,发现量就越高。
发现和抓取是两个独立环节。入口页能做的,是让 URL 尽量干净、直接地出现在搜索蜘蛛面前;至于走过去之后能不能站得住,取决于目标地址本身的状态是否稳定、内容是否真实存在。