检查访问状态的核心,是确认百度蜘蛛能否顺利抓取并返回正常内容。具体做法是:先看百度搜索资源平台里的抓取异常记录,再用URL抓取测试观察返回码和正文,最后用普通浏览器和不同网络环境复查。若返回200且正文可见,说明页面可访问;若返回4xx、5xx或跳转到无关页,则要按服务器、规则、页面三层依次处理。
很多新手把“我能打开”等同于“百度能抓取”,结果排查方向跑偏。检查时应拆成三层:
这三层任意一层出问题,都会表现为“页面好像没被收录”。所以检查访问状态时,不能只看浏览器,也不能只看抓取测试,要把三者结果放在一起比较。
百度搜索资源平台提供URL抓取测试,可以查看抓取状态、返回码和抓取到的HTML。操作时注意:
这里要区分“可能原因”和“已经定位的原因”。返回200但正文为空,可能是JS渲染,也可能是服务端按UA返回了不同内容,还可能是抓取测试的缓存。只有进一步用不同UA请求同一URL,才能确认是哪一种。
抓取异常常来自三类限制,按优先级检查:
/robots.txt,确认没有Disallow: /或针对具体目录的误封。<meta name="robots">,确认没有noindex或nofollow。例如,假设某页面在浏览器正常打开,但抓取测试返回403,同时服务器日志中该UA被记录为拒绝,那么可以判断是服务器规则拦截,而不是页面内容问题。若抓取测试返回200,但源码里存在noindex,则问题在页面级索引指令,不在访问本身。
处理完上述问题后,不要只看一次抓取结果就下结论。复查应固定以下变量:
如果改动后返回码从403变为200,且正文与浏览器一致,说明访问状态已恢复。此时再去看索引状态,而不是把访问正常直接等同于一定收录。
第一次接触这个问题,最实用的下一步是建一个简单表格,每次只记录四项:URL、抓取返回码、robots与meta状态、复查日期。连续记录几次后,你就能判断问题是偶发限流还是规则误封,而不是凭感觉反复改页面。