很多站点都不止一個訪問入口:正式域名、预發布域名、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、响應头、内鏈四項检查。
- 每隔一段時間用站点的域名列表做一次巡检,看看有没有已经停用但仍能打開的地址。
- 整理一份域名台帳,寫清楚每個域名的用途、负责人和目前狀態,交接时不會漏掉。
測試环境和备用域名本身不是問题,問题在于它們常常游离在日常运营的视野之外。把入口數量收敛到可控范围,把每一個入口的狀態寫進台帳和上线清單,蜘蛛能抓到的就只是你希望它看到的那部分内容。