站点运营

站点运营:草稿與预览連結自查,別让没定稿的頁面被蜘蛛收進索引

很多站点會在抓取日誌里看到一批不该出現的地址:带临时參數的预览連結、測試域名下的草稿頁、接口直接吐出的未發布 URL。這類頁面没有導航入口,却可能被外部引用。本文梳理它們漏出的常见途径、被收錄後的麻烦,以及從發布流程上堵住缺口的做法。

站点运营

站点运营:草稿與预览連結自查,別让没定稿的頁面被蜘蛛收進索引

不少站点的抓取日誌里會出現一些不该出現的地址:带 token 的预览連結、staging 子域名下的頁面、還没排期的草稿内容。這些頁面通常没有導航入口,也没有内鏈指向,但只要有一個人把連結分享出去,或者某個接口把地址吐给了前端,蜘蛛就有机會摸到。

预览連結是怎么漏出去的

  • CMS 的预览按钮會生成带簽名參數的临时地址,分享到外部後被別的頁面引用或轉存。
  • 測試域名、staging 环境没有加訪問限制,又和正式站共用同一套模板與站点地图生成逻辑。
  • 前端路由把草稿狀態的内容也渲染成了可訪問 URL,只是没有在列表里展示。
  • App、小程序或接口返回的字段里直接带上了未發布頁面的地址,被用戶複製走。
  • 發在邮件、群聊里的预览連結被贴進了公開文档或论坛。

這些途径的共同点是:它們绕過導航和内鏈,直接给蜘蛛一個可請求的地址。蜘蛛不判断你的意图,它只認狀態碼和响應内容。

被收進索引之後會带来什么

草稿意味着内容還會改,标点、事實、價格、日期都可能變,用戶搜到的是舊版本。同一主题下出現正式頁和预览頁两個版本,彼此消耗權重。预览頁往往還缺少版權說明、联系方式,也可能带着内部批注。數量一多,還會占用本就不宽的抓取配額。

自查:先弄清有多少、来自哪里

  1. 用 site: 指令配合品牌词和栏目词,看看是否存在測試域名、预览域名下的结果,注意這只是參考,查不全。
  2. 翻原始抓取日誌,過滤含有 token、preview、draft、staging、dev、uat、beta 等字样的路径。
  3. 检查站点地图、RSS 輸出、接口响應里是否混進了未發布地址。
  4. 確認 CMS 预览連結的有效期,以及它在未登入狀態下能否打開。

處理方式:分三层做

能關掉的就直接關掉

測試站優先加基础認證或 IP 白名單,別指望 robots.txt 挡人。robots 文件是請求,不是强制措施,防護强度和一個提示牌差不多。

關不掉的用 noindex

预览頁在 HTTP 响應头里返回 X-Robots-Tag: noindex,比頁面里的 meta 标簽更稳,對非 HTML 资源同样有效。需要注意的是,不要让同一批 URL 同时被 robots.txt 屏蔽又指望 noindex 生效——被規則挡住的頁面,蜘蛛讀不到你寫的 noindex。

已经進索引的逐個處理

  • 確認頁面确實要下线後,返回 410 或 301 指向正式頁,別只删資料库记錄留下空白响應。
  • 在搜尋资源平台提交移除請求,把它当作临时手段而不是長期方案。
  • 检查是否有外部頁面連結到它,必要时联系對方更新地址。

把检查提前到發布流程

事後清理的成本遠高于事前拦截。几個可以落地的做法:

  • 预览連結預設带有效期,過期自動失效,並限制同一連結的訪問次數。
  • 發布動作触發一次比對,草稿狀態對應的 URL 统一返回 404 或 403,而不是正常渲染。
  • 上线前跑一遍待發布内容里的地址清單,確認没有内網域名、临时參數外泄。
  • 站点地图和 RSS 只允许正式域名下、狀態為已發布的頁面進入,規則寫死在生成逻辑里,而不是靠人工把關。

如果团队規模不大,至少可以先做一件事:每月花十分钟翻一次抓取日誌里的異常路径,把新冒出来的预览地址记下来,回头补上對應的拦截規則。問题通常不是一次爆發的,而是一個入口一個入口慢慢漏出来的。

预览連結對内部来说是草稿,對外部来说就是一個公開頁面。蜘蛛不會替你区分這两者,它只按收到的响應行事。