站点运营

站点运营:meta robots 與 noindex 自查,別让一個标簽把頁面挡在索引外

robots.txt 决定要不要抓,meta robots 决定抓到了要不要收。noindex 寫错不會报错,只會安静地把頁面挡在索引之外。本文梳理 noindex 的常见来源、全站自查步骤、與 canonical 及 robots.txt 的分工,以及改動後该怎么驗證。

站点运营

站点运营:meta robots 與 noindex 自查,別让一個标簽把頁面挡在索引外

很多站点在排查抓取問题时,第一反應是去看 robots.txt,却忽略了頁面源碼里的 meta robots 标簽。robots.txt 管的是“要不要来抓”,meta robots 管的是“抓到了要不要收、頁面上的連結要不要跟”。两者作用范围不同,出問题的表現也不同。一個寫错的 noindex 不會报错,也不會让頁面打不開,只是安安静静地把頁面挡在索引之外。

noindex 常见的几種来源

noindex 很少是有人故意加的,多數来自模板、插件、複製粘贴和上线前的临时設定。以下几類情况最容易遗留:

  • 測試环境或预發环境上线时,直接把带 noindex 的模板带進了正式环境。
  • 栏目頁、标簽頁、搜尋结果頁批量套用了统一的“防薄頁”模板,结果把需要收錄的列表頁一起挡了。
  • 分頁和篩選參數頁為了控制 URL 數量统一加了 noindex,後来改版时业務頁恰好也落在同一套模板里。
  • 頁面迁移後,舊地址被改成 noindex 而不是 301 跳轉,新地址又没有同步替換進来。
  • CMS 里“發布狀態”和“索引狀態”绑在一起,編輯調整發布時間时顺手關掉了索引開關。

自查步骤

  1. 先全站抓一份 HTML,提取所有頁面的 meta robots 标簽,同时记錄 HTTP 响應头里的 X-Robots-Tag,看看哪些頁面带了 noindex、nofollow 或 none。
  2. 把结果按栏目归類,标出“确實應该挡的”和“不该挡的”。站内搜尋结果頁、篩選參數頁、登入後的後台頁挡掉是合理的;栏目首頁、文章詳情、需要參與搜尋的聚合頁被挡,就要確認原因。
  3. 重点核對响應头。有些站点的 noindex 不在 HTML 里,而是由服務器或 CDN 统一加上去的,只看源碼容易漏掉。
  4. 確認 noindex 與 canonical 是否冲突。一個頁面既声明了規范地址,又给自己加了 noindex,處理逻辑會變得难以预期,通常應该二選一。
  5. 检查是否顺手加了 nofollow。多數场景只需要 noindex,額外加 nofollow 會让頁面上的連結也失去传递價值,除非确實不希望被跟踪。
  6. 把改動寫進上线清單,避免下次換模板时又被覆盖回来。

几個容易混淆的点

robots.txt 里的 Disallow 只是不让抓,頁面仍可能因為外鏈被索引成一個没有摘要的地址;meta robots 的 noindex 需要蜘蛛真正抓到頁面才能生效。两者配合不当會互相抵消。
  • noindex 不等于刪除:頁面照样能訪問,只是不進索引。想彻底移除,需要配合 404 或 410。
  • noindex 生效有延迟:蜘蛛要重新抓取该頁面後才會讀到新标簽,改完立刻查不到,不代表没生效。
  • 被 robots.txt 挡住的頁面,蜘蛛讀不到 noindex:如果既 Disallow 又指望 noindex 生效,通常行不通。

改動之後怎么驗證

改完不要只看首頁。優先复查三類地址:原本次要但确實需要收錄的栏目頁、改版後新生成的詳情頁模板、以及带參數的篩選頁。用站点地图和抓取工具各跑一遍,確認目标頁面的标簽已经恢复為 index、follow,也没有遗留的自定义指令。同时留意响應碼,noindex 頁面如果仍返回 200,說明它還在被正常抓取,只是不進索引,這属于预期狀態,不必再額外處理。

meta robots 是個很轻的标簽,但它决定的是頁面能不能進入搜尋结果的入口。把它纳入常規的站点自查清單,每次改版、換模板、開新栏目时顺手過一遍,比等到流量下滑再回头排查要省事得多。