網站收錄

測試域名與预览連結被索引:收錄核對先做外露 URL 盘点

上线前的预览域名、staging 子域、CDN 預設域名,常常因為一條分享連結或頁面里寫死的绝對地址被爬到。這類 URL 與正式頁面内容近似,容易混進索引。本文给出從訪問日誌按 Host 分组、抽查索引狀態到阻断手段優先級的核對顺序,帮助把索引范围收回到正式域名。

網站收錄

測試域名與预览連結被索引:收錄核對先做外露 URL 盘点

索引里的“自己人”往往不是正式頁面

核對收錄时,很多人先看正式域名的數量變化,却忽略了一件更常见的事:索引里混着測試域名、预览連結和 CDN 預設域名。這些 URL 通常和正式頁面内容几乎一致,只是域名或路径不同,一旦被抓到,就會和正式頁面争夺同一個位置。

它們出現的路径並不复杂:给同事分享一個预览地址、頁面源碼里寫死了绝對地址、對象存储的預設域名没關、測試环境的 sitemap 没有加訪問限制,甚至只是某個内部工具頁面上挂了一條可点連結。對爬虫来说,這些都属于“可以被發現的 URL”。

常见的外露来源

  • 预览域名、staging 子域、临时 IP 没有做訪問限制,公網可直连。
  • CDN、對象存储或托管平台的預設域名與正式域名指向同一份内容。
  • 頁面模板、站点地图、RSS 或邮件模板里寫死了測試环境的绝對地址。
  • 分享連結、内部工具、表單跳轉中带着可被外部訪問的临时地址。
  • 測試环境自己生成了一份 sitemap.xml,並被掃描工具發現。

這些来源的共同点是:不需要被“提交”,只要能被連結到、被猜到,就可能在某次抓取中被带走。

核對顺序:先盘点,再動手

在决定用哪種手段之前,先把范围量清楚,否則容易一邊清一邊漏。

  1. 按 Host 分组看訪問日誌。把日誌里的請求按域名归類,看有哪些域名在被持續抓取,重点看不该出現在公網的那几個。
  2. 抽查索引狀態。用站内检索语法按域名抽查,確認這些域名下是否已有頁面被索引,以及大致規模。
  3. 看返回狀態與内容。確認這些地址返回的是 200 還是登入頁、驗證頁;返回 200 且内容和正式頁面近似的,優先處理。
  4. 與正式域名做内容比對。挑几條样本對比,判断是完整複製還是局部差异,這决定了後續是收敛還是直接阻断。

這四步做完,通常能看清一件事:問题出在“地址被公開”,還是出在“内容被同步發布”。两者的處理方式並不相同。

阻断手段的優先級

最稳的是让它根本訪問不到

给測試环境加訪問限制、改用内網地址、關閉預設域名、避免在公網模板里寫死測試地址,這些做法不影响正式站点的抓取行為,也不用担心指令冲突。能這么做时,優先這么做。

其次是頁面級指令,但別让指令互相打架

如果一时無法關閉訪問,可以用頁面級指令声明不要索引。要注意的是,如果同时在抓取层面做了全站禁止,頁面上的指令往往讀不到,两邊配合不好會得到和预期相反的结果。打算清理已有索引时,通常需要先让頁面可被抓取、再明确表達不入索引的意愿。

已有索引的部分,按頁面逐個收敛

已经進入索引的 URL,需要按狀態分別對待:能直接關掉的直接關掉,必须保留訪問的改指令,确實是正式内容的再做規范化。數量大时不必追求一次清完,先處理被抓取频次高、和正式頁面重合度高的那批。

避免下次再外露

  • 预览與測試环境的預設狀態是“不可公開訪問”,而不是“记得加限制”。
  • 模板、站点地图、RSS 里的域名统一走配置項,不要手寫绝對地址。
  • 上线前抽查一遍頁面源碼和分享連結,看是否带出了内部域名。
  • 把域名清單纳入定期核對,每次看收錄时顺手確認一遍 Host 分布。
收錄本身是抓取與索引流程的结果,不是一個可以随手打開的開關。清理測試域名和预览連結的價值,在于让索引范围回到正式内容上,而不是把數量做大。

把這一步做成常規動作後,再去看正式頁面的收錄情况,判断會清晰很多:哪些是真正没被發現的内容,哪些只是被別的地址提前占位了。