蜘蛛池知识

蜘蛛池入口頁的 noindex 與 nofollow:两條指令的邊界和常见誤用

noindex 和 nofollow 是入口頁配置里最常被随手加上的两個指令,但它們管的事情完全不同:一個决定頁面進不進索引,一個决定連結跟不跟随。本文說明两條指令各自的作用邊界、在入口頁上的适用场景,以及寫错层級或同时叠加後可能出現的结果和上线前的检查顺序。

蜘蛛池知识

蜘蛛池入口頁的 noindex 與 nofollow:两條指令的邊界和常见誤用

在蜘蛛池的配置項里,noindex 和 nofollow 大概是出現频率最高、也最容易被随手寫上的两個指令。不少人把它們当成"减弱頁面權重"的開關,但這两條指令管的事情其實完全不同:noindex 管的是頁面要不要進索引,nofollow 管的是頁面上的連結要不要被跟随。入口頁该怎么用,取决于你想让蜘蛛做什么。

noindex 在入口頁上到底做了什么

noindex 的作用是請求搜尋引擎不要把頁面放進索引库,但它並不阻止蜘蛛来抓。蜘蛛照样可以爬到入口頁、讀取内容、顺着連結繼續走,只是這個頁面本身不會出現在搜尋结果里。這一点经常被誤解成"加了 noindex 蜘蛛就不来了",其實屏蔽抓取要靠 robots.txt 或者 401、403 這類响應,两者的效果差別很大。

什么情况下入口頁可以加 noindex

  • 入口頁只是通道,本身没有获取搜尋流量的诉求;
  • 頁面内容是批量生成的,质量偏低,不希望它進入索引影响站点整体观感;
  • 入口頁内容與目标頁高度重复,避免两邊同时出現在索引里造成混淆。

反過来,如果入口頁本身承担着承接搜尋流量的任務,加 noindex 就等于主動放弃這部分入口。配置之前先想清楚目的,再下手。

頁面級 nofollow 和連結級 nofollow 不是一回事

連結級的寫法是 rel='nofollow',只作用于挂着這個属性的那一两條連結;頁面級的寫法是在 head 里放 meta name='robots' content='nofollow',作用于整頁所有連結。實践中寫错层級的例子很多,比如只想控制一條連結,却在 head 里寫了頁面級 nofollow,结果整頁連結都不再被跟随。

简單记:rel 管一條,meta 管一頁。動手之前先確認自己要控制的范围。

几種常见的誤用

  1. noindex 和 nofollow 一起寫在入口頁。頁面不進索引,連結也不跟随,蜘蛛爬到這一頁基本就停住了,通道等于自己堵上。
  2. 把 noindex 当成屏蔽抓取的手段。它不减少抓取,只是不收錄,日誌里依然會看到蜘蛛訪問的记錄。
  3. 只靠前端脚本插入 meta robots。如果初始 HTML 里没有,部分蜘蛛讀到的可能是没有该指令的版本,頁面行為就不受控了。
  4. 响應头里的 X-Robots-Tag 與頁面 meta 寫了相反的值。两者冲突时通常按更嚴格的一方生效,很容易在不知情的情况下把頁面屏蔽掉。
  5. 誤把 noindex 加到了目标頁上。這是代價最大的错誤,等于整條鏈路白跑,上线前必须單獨核對目标頁的配置。

一個相對稳妥的配置思路

  • 入口頁:保持可抓取,允许連結被跟随;是否需要 noindex 看你的索引策略,两種都可以,但不要同时再叠 nofollow。
  • 目标頁:保持可抓取、可索引,不加任何屏蔽類指令。
  • 不想被抓的目錄:用 robots.txt 或訪問控制處理,而不是用 noindex 硬扛。

上线前值得過一遍的检查項

  • meta robots 是否寫在初始 HTML 的 head 中,而不是靠脚本後置插入;
  • 响應头里的 X-Robots-Tag 是否和頁面内的声明一致;
  • 入口頁和目标頁的指令是否寫反;
  • 修改後隔一段時間看服務器日誌,確認蜘蛛的實际行為符合预期。

noindex 和 nofollow 都不是"加了更安全"的指令,它們會實打實改變蜘蛛的行為。入口頁加不加、加哪一條,最好在配置前就寫清楚理由,而不是照着別人的模板抄一遍。