对照测试环境与线上的搜索引擎爬虫,核心不是比较两边页面长得是否一样,而是确认同一批URL在两边分别得到什么响应:能否访问、是否被robots.txt挡住、返回码是200还是301/403/503、内容是否一致。时间人手有限时,先处理线上被误挡的URL,再处理测试环境被外部爬虫抓到的问题。
选5到10个有代表性的URL,覆盖首页、栏目页、详情页和需要登录或参数的页面。对每个URL分别请求测试环境和线上地址,记录以下项目:
/robots.txt,看是否对同一路径给出不同规则。测试环境常写成Disallow: /,这是正常的,但要确认它没有被复制到线上。X-Robots-Tag、Set-Cookie、Location等字段,判断是否存在禁止索引或强制跳转。如果线上某URL返回403或503,而测试环境正常,问题通常出在线上服务器、WAF或CDN的访问策略,而不是页面模板。如果测试环境被外部爬虫频繁抓取,说明该环境缺少访问限制,可能暴露未发布内容。
不是所有差异都值得处理。按影响程度排序:
需要区分“可能原因”和“已定位原因”。例如线上返回503,可能是服务器过载,也可能是维护开关未关闭,还可能是CDN回源失败。只有逐项排除后,才能确定是哪一种。
另外要记住:robots.txt的抓取限制不等于可靠的索引移除。即使测试环境用robots.txt禁止抓取,已经公开过的URL仍可能留在搜索结果中,需要配合其他方式处理。站点地图也不保证收录,它只是提交URL的渠道之一。HTTPS同样不保证安全无漏洞或排名提升,它只是传输层加密。
按以下顺序操作,每步都能独立验证:
/robots.txt,确认没有误写Disallow: /或屏蔽关键目录。如果发现误写,立即修正并记录修改时间。X-Robots-Tag: noindex或强制跳转到测试域名。假设某详情页在测试环境返回200且正文完整,线上却返回503。先查线上服务器日志和CDN回源记录,确认是源站问题还是边缘节点问题;不要直接改robots.txt,因为robots.txt不控制状态码。
每次修改后,用同样的URL清单重新请求两边,对比修改前后的状态码、robots.txt规则和正文关键内容。检查项包括:
不同搜索引擎对robots.txt、站点地图和响应头的支持情况需要分别核查,不能因为一个搜索引擎能抓取就认为全部都能抓取。复查时至少覆盖两个主要搜索引擎的爬虫标识,观察它们对同一URL的请求结果。
下一步:把上面选出的URL清单整理成一张对照表,标注每个URL在测试环境和线上的状态码、robots规则和正文差异,然后按“线上被挡优先”的顺序逐项处理并复查。