很多站点都不止一个访问入口:正式域名、预发布域名、CDN 分配的默认域名、历史遗留的旧域名,还有一些只能在特定网络里打开的测试地址。对运营和开发来说,这只是方便,对搜索蜘蛛来说,却是一批同样能返回内容的入口。只要其中一个被外部发现,半成品页面、过期文案、还没上线的活动就可能进入索引,等发现时再清理,往往要多花几倍力气。
蜘蛛常见的几条侧门
抓取入口泄漏通常不是因为被刻意提交,而是这些地方没被当成对外的地址来管理:
- 预发布、测试域名可以公网解析,且没有加任何访问限制。
- 使用 CDN 或云服务的默认域名直接回源,源站内容通过这些域名也能打开。
- 旧域名、备用域名仍在解析,但没有做跳转,也没有屏蔽抓取。
- 页面模板、资源引用、站点地图里写死了测试域名,正式站上线后仍指向测试环境。
- 分享给外部合作方的链接、需求文档、群聊记录里直接贴了测试地址。
- HTTPS 证书的域名列表把内部域名一并暴露出来,等于给了一条线索。
上线前做一次隔离自查
与其等收录了再处理,不如把下面这些项放进上线检查表,逐条确认:
- 确认解析范围。测试域名是否只在内网或办公网可解析,公网能否直接打开。
- 加访问控制。能用 HTTP 认证、IP 白名单或 VPN 的,就不要只靠一个不好猜的路径名。
- 检查 robots.txt。测试环境通常直接返回 Disallow: /。但要注意,屏蔽抓取和让页面退出索引是两件事,下面会展开。
- 检查响应头。在 CDN 或反向代理层给测试域名加上 X-Robots-Tag: noindex,覆盖各类返回内容。
- 检查站点地图与内链。正式站的 sitemap 里不应该出现测试域名,页面里也不应留下指向测试环境的链接或图片地址。
- 检查默认域名。CDN 的回源域名、对象存储的默认访问域名,尽量做限制或跳转到正式域名。
- 检查旧域名。确定是保留并 301 到新站,还是彻底停掉解析,不要让它长期处于能打开但没人管的状态。
已经进了索引,按什么顺序处理
先想清楚目标:是让这个域名彻底从抓取路径里消失,还是只想让里面的页面退出索引。两种目标的做法并不一样。
- 如果希望长期不再被抓,直接在 robots.txt 屏蔽,或在网关层拒绝搜索引擎的访问。但要注意,robots.txt 屏蔽之后,蜘蛛就无法读取页面上的 noindex 标签,已经收录的页面可能长期留在索引里。
- 如果希望页面尽快退出索引,正确顺序是先允许抓取、让页面返回 noindex,确认索引移除之后再考虑屏蔽抓取。
- 已经确定不再提供的测试内容,返回 404 或 410,比留一个 200 的空页面更清楚。
- 通过搜索平台提供的移除工具提交,能缩短等待时间,但前提是上面的设置已经生效。
- 回头排查站内还有没有指向测试域名的链接,否则处理完还会被再次发现。
抓取隔离的关键不是藏得好,而是让外部根本无法访问,或者即使访问到也明确表达不要收录。靠一段随机路径来保密,风险比想象中高。
把隔离做成固定流程
临时处理一次不难,难的是每次新建环境都记得处理。可以把它固化成几个动作:
- 新环境创建时默认开启访问控制,需要对外时再单独放开,而不是反过来。
- 上线清单里固定包含解析、robots、响应头、内链四项检查。
- 每隔一段时间用站点的域名列表做一次巡检,看看有没有已经停用但仍能打开的地址。
- 整理一份域名台账,写清楚每个域名的用途、负责人和当前状态,交接时不会漏掉。
测试环境和备用域名本身不是问题,问题在于它们常常游离在日常运营的视野之外。把入口数量收敛到可控范围,把每一个入口的状态写进台账和上线清单,蜘蛛能抓到的就只是你希望它看到的那部分内容。