蜘蛛池知识

蜘蛛池里的 robots 與 nofollow:哪些連結會被蜘蛛主動忽略

robots.txt 和 nofollow 常常被当成建站时随手寫的一段配置,之後就不再检查。本文梳理這两類指令在蜘蛛池场景下的作用范围:robots.txt 管的是抓取權限,nofollow 管的是連結權重與跟進意愿,並說明頁面級與連結級寫法的差异、常见誤区以及上线前值得核對的動作。

蜘蛛池知识

蜘蛛池里的 robots 與 nofollow:哪些連結會被蜘蛛主動忽略

在蜘蛛池的日常运营里,robots.txt 和 nofollow 常被当成“次要配置”——很多人只在建站时随手寫一段,之後就不再看第二眼。但對搜尋蜘蛛来说,這两者属于最前置的指令:在它决定抓不抓、跟不跟之前,先要讀這些規則。規則寫错了,入口頁本身再規范,也可能拿不到预期的来訪。

robots.txt 管的是“能不能抓”,不是“能不能收錄”

這是最容易被混淆的一点。robots.txt 限制的是抓取行為,不直接等于收錄開關。一個 URL 被 Disallow 之後,蜘蛛通常不會去取頁面内容,也就很难判断頁面到底寫了什么;如果它從別處拿到連結,甚至可能只凭锚文本建立一條無正文的记錄。

  • Disallow 针對路径前缀:寫 /tmp/ 會连带影响 /tmp-a/ 這類同前缀目錄,路径末尾是否带斜杠要寫清楚。
  • Allow 可以局部放行:在整体屏蔽某個目錄时,若确實希望蜘蛛碰到其中少數入口頁,可用更長的 Allow 路径覆盖。
  • 通配符與结尾符:多數主流蜘蛛支持 *$,但不保證所有抓取工具都遵循,別把關键逻辑全押在通配上。
  • 不要用 robots.txt 處理重复内容:屏蔽參數頁、排序頁更适合用 canonical 或參數處理規則,屏蔽只是让蜘蛛看不到,問题並没有解决。

nofollow 的几種寫法,作用层面並不相同

頁面級:meta robots 與 X-Robots-Tag

寫在頁面 head 里的 meta robots 或响應头里的 X-Robots-Tag,作用對象是整個頁面上的所有連結。它表達的是“這一頁里的連結不必跟進”。對蜘蛛池来说要特別小心:如果某類模板頁统一带了 nofollow,那么经由它扩散出去的入口頁連結,跟進意愿會明顯下降。

連結級:rel 属性的三種取值

  • rel="nofollow":最常用,表示不推荐蜘蛛跟進這條連結,多用于不可控的第三方内容。
  • rel="ugc":用于用戶生成内容里的連結,语义上仍属于不推荐跟進的一類。
  • rel="sponsored":用于付費或商业合作連結。

三者在“是否跟鏈”上的實际表現接近,差別更多在于语义标注。需要注意的是,蜘蛛仍可能抓取這些連結指向的 URL,只是不把它当作推荐信号。所以把 nofollow 当成“彻底阻断”是不准确的。

三個常见誤区

  1. 把 nofollow 当作防抓手段:它不阻止抓取,只影响推荐含义;要阻止抓取,應该用 robots.txt 或登入墙。
  2. 临时改動不清理:測試期把整站 Disallow,上线後忘记删掉,蜘蛛會在相当長一段時間内不再来訪,恢复需要時間。
  3. 入口頁模板自带 nofollow:很多建站模板為了“安全”,預設给頁脚、侧栏連結加 nofollow,结果蜘蛛池最需要跟進的几條路径恰好被压住了。

上线前值得核對的几個動作

  • 直接訪問 /robots.txt,確認返回 200 且内容是目前版本,不要出現舊缓存。
  • 用抓取工具模拟蜘蛛身份,看它實际拿到的 HTML 里,目标連結是否带 rel 属性。
  • 检查頁面响應头里是否残留 X-Robots-Tag: noindex 或 nofollow。
  • 把 robots.txt 的改動记入运营日誌,标注時間與影响范围,方便回溯来訪波動。
  • 對不再使用的測試路径,及时刪除對應規則,避免規則越堆越乱、互相覆盖。
robots.txt 和 nofollow 不是“设一次就完事”的開關,而是會長期影响蜘蛛来訪路径的基础设施。規則越简單、越贴近真實意图,排查問题时的變量就越少。