很多做入口页的人会遇到这样的情况:日志里能看到搜索蜘蛛访问,目标 URL 也确实被抓过一次,但过了一段时间去查,页面依然没有出现在索引里。这时候容易怀疑入口页没生效,其实需要把“被发现”“被抓取”“被索引”拆开看。
发现、抓取、索引是三件不同的事
搜索蜘蛛在入口页上读到一条链接,这只是URL 发现。它愿不愿意去抓、什么时候去抓,是抓取调度。抓回来之后要不要放进索引,是内容评估。三个环节各有各的判断依据,入口页能直接影响第一环,间接影响第二环,基本影响不了第三环。
- 发现:链接能被解析出来,且页面本身没有被明确屏蔽
- 抓取:目标站的权重、服务器响应、抓取配额、URL 返回状态
- 索引:目标页内容质量、与站内已有内容的重复度、站点整体表现
入口页能管到的范围
一、链接是否真的可发现
先确认目标链接是以搜索蜘蛛能读到的形式出现在 HTML 里的。只靠 JavaScript 渲染、需要交互才展开、被 rel 属性覆盖的链接,都可能读不到。另外也要排除 robots.txt 是否拦住了蜘蛛对入口页本身的抓取,入口页都进不去,里面的链接自然无从谈起。
二、入口页自身的响应
入口页响应慢、频繁返回 5xx、内容为空或跳转到登录页,都会让搜索蜘蛛降低对这个入口页的访问频率。稳定、快速、返回 200 的页面,更容易被持续回访。
三、链接规模与更新节奏
一次堆几千条链接,蜘蛛往往只抓前面一部分。分批次放,或者让入口页有新增、有变动,更容易被反复访问。这个数量没有通用标准,结合日志里实际的抓取条数来调整,比照搬经验值更可靠。
入口页影响不了的部分
目标页自己返回 404 或 410、被自身 robots.txt 禁止抓取、反复 503 超时、内容与站内其他页面高度重合,这些情况下,即便蜘蛛每天从入口页发现它,也很难进入索引。入口页只是通道,决定不了目标页自身的状态。
把入口页当成“告诉搜索引擎这里有个地址”的工具,而不是“让页面被收录”的工具,预期会更贴近实际情况。
一个可用的排查顺序
- 看目标 URL 是否被目标站自己的 robots.txt 拦住
- 确认目标页的返回码和是否带有 noindex 之类的限制
- 翻服务器日志,看目标 URL 有没有抓取记录、抓取时返回了什么
- 检查入口页是否稳定返回 200,目标链接是否可解析
- 更换入口页或改变入口形式,观察抓取行为有没有变化
这个顺序的好处是先排除目标页自身的问题,再回头查入口页。如果目标页本身就不可索引,入口页做多少调整都没有意义。
常见误区
- 日志里出现搜索蜘蛛,就认为一定会收录——它只代表被抓过
- 被抓一次没收录就反复提交——问题多半不在提交次数上
- 入口页越多越好——质量差的入口只会浪费抓取资源
- 只看入口页日志,不看目标站日志——两边对照才能定位问题
把三个环节分开理解之后,入口页该做的事就很清楚了:保证链接能被读到、页面能被稳定访问、更新有节奏。剩下的部分,仍然要回到目标页本身去解决。