如何防止Google索引GCP VM外部IP(负载均衡场景)
解决方案
阻止Google索引任意IP地址的通用方案
- 所有直接通过IP发起的请求,不要返回200成功状态,也不要配置301跳转到正式域名——301跳转只会让Google判定IP与域名内容强关联,大幅延长索引移除周期,正确处理方式是直接返回403/404状态码拒绝访问
- 针对IP访问的请求返回独立的robots.txt,内容如下,明确禁止所有爬虫抓取,注意该规则仅对IP访问生效,不要覆盖域名下正常的robots配置:
User-agent: * Disallow: /
- 给所有非域名Host的请求响应添加
X-Robots-Tag: noindex, nofollow头,就算有漏网的请求被爬虫抓到,也不会被建立索引。 - 规则生效2-4周后,可直接在Google Search Console以IP地址为主体提交站点验证,选择HTML文件/标签验证方式通过后,即可手动提交索引移除申请,无需等待自然掉量。
GCP Load Balancer架构下防止VM外部IP被收录的针对性配置
核心思路是从网络入口、LB层、应用层三层做校验,彻底堵上IP可访问的路径:
- 调整VM实例的VPC防火墙入站规则:公网方向仅放通GCP负载均衡健康检查所属IP段
35.191.0.0/16、130.211.0.0/22的80、443端口访问,拒绝所有其他公网来源的入站请求,从根源上避免爬虫绕开LB直接直连VM公网IP。 - 在负载均衡层配置Host路由规则:新建一个返回固定404响应的默认后端服务,所有Host头不等于
example.com的请求(包括直接访问LB IP、VM IP的请求)全部路由到该默认后端,不要转发到运行Wordpress的业务后端。 - 调整Cloud CDN缓存规则:给默认后端配置不缓存4xx响应,同时清空CDN中所有IP访问路径对应的历史缓存,避免CDN节点持续向爬虫返回旧的可访问页面。
- 在Wordpress应用层补Host校验兜底:在wp-config.php文件(Bitnami环境默认路径为
/opt/bitnami/wordpress/wp-config.php)的数据库配置段之前,加入如下校验代码,确保漏到应用层的非域名请求直接被拒绝:
if (isset($_SERVER['HTTP_HOST']) && $_SERVER['HTTP_HOST'] !== 'example.com') { http_response_code(403); exit; }
- 移除之前配置的IP到域名的301跳转规则,替换为上述4xx拒绝逻辑,配合noindex响应头,通常1-2周IP对应的搜索结果就会被Google自动清除。
配置完成后可通过curl命令校验规则有效性:
curl -I http://22.22.22.22/home
确认返回状态码为403/404,且响应头包含X-Robots-Tag: noindex, nofollow即为配置生效。
内容的提问来源于stack exchange,提问作者Organic Heart
相关产品推荐
相关产品推荐

