Perplexity 的爬蟲:PerplexityBot 與 Perplexity-User
Perplexity 以 PerplexityBot 在搜尋結果中呈現並連結網站,以 Perplexity-User 在使用者的問題需要時造訪頁面。Perplexity 表示 PerplexityBot 會遵守 robots.txt,且不用於訓練基礎模型;而 Perplexity-User 因為是使用者要求的擷取,通常會忽略 robots.txt。
Perplexity 以引用為核心:答案會附上編號連結,指向所依據的頁面。它的爬蟲文件很短,卻清楚說明哪個代理程式遵守 robots.txt、哪個不遵守。這項差異決定了你要控制其中任何一個時該用哪種工具。
本頁內容
PerplexityBot 的用途是什麼?
PerplexityBot 的設計目的,是在 Perplexity 的搜尋結果中呈現並連結網站。Perplexity 表示,它不用於為 AI 基礎模型爬取內容。若想出現在 Perplexity 的搜尋結果中,Perplexity 建議在 robots.txt 中允許 PerplexityBot。
Perplexity 公布的 user agent 如下:
Mozilla/5.0 (compatible; PerplexityBot/1.0; +https://perplexity.ai/perplexitybot)
版本號碼可能變動,所以防火牆規則應比對標記 PerplexityBot。Perplexity 在 perplexity.ai/perplexitybot.json 公布其 IP 範圍。
Perplexity-User 的用途是什麼?
Perplexity-User 支援使用者的操作。當有人向 Perplexity 提問時,它可能造訪網頁,以協助給出準確答案並附上該頁面的連結。Perplexity 表示,它不用於爬取網路或收集訓練資料。
其公布的 user agent 是 Mozilla/5.0 (compatible; Perplexity-User/1.0; +https://perplexity.ai/perplexity-user),IP 範圍則公布在 perplexity.ai/perplexity-user.json。
robots.txt 能控制什麼,不能控制什麼?
這是關鍵所在。Perplexity 表示,由於擷取是使用者要求的,Perplexity-User 通常會忽略 robots.txt 規則。針對 PerplexityBot 的 robots.txt 群組會影響搜尋的索引,卻無法可靠地阻止代表使用者進行的即時擷取。
- 在 robots.txt 禁止
PerplexityBot:你的頁面不會被爬取進 Perplexity 的搜尋索引,因此被呈現與連結的機會較低。 - 在 robots.txt 禁止
Perplexity-User:依 Perplexity 的文件,該擷取程式通常會忽略這項設定,所以這不是可靠的控制方式。 - 在防火牆封鎖
Perplexity-User:擷取會失敗,詢問你頁面的使用者得到的答案中就不會有它。 - 兩者皆允許:Perplexity 可以索引你的頁面,並在使用者詢問時即時讀取。
Perplexity 表示,每一項 robots.txt 設定各自獨立運作,而變更最多可能需要 24 小時才會反映出來。
Perplexity 與 ChatGPT、Claude 有何不同?
三家廠商都把搜尋爬蟲與使用者要求的擷取程式分開。Perplexity 有兩點不同。第一,它沒有獨立的訓練爬蟲:它表示 PerplexityBot 不用於為 AI 基礎模型爬取內容,因此沒有需要選擇的訓練標記。第二,它明確指出其使用者擷取程式通常會忽略 robots.txt;相較之下,OpenAI 表示 robots.txt 可能不適用於 ChatGPT-User,而 Anthropic 表示其機器人(包括 Claude-User)會遵守 robots.txt。
實際上,這代表在 robots.txt 中只需為 Perplexity 的搜尋爬蟲做一個決定;如果你想阻止使用者要求的擷取,則需要在防火牆層面另作決定。
對 Perplexity 該用什麼樣的 robots.txt?
如果你想被引用,請明確允許搜尋爬蟲。請記得,點名的群組不會從 * 繼承規則,所以私人路徑要重複寫一次:
User-agent: PerplexityBot
Allow: /
Disallow: /account/
User-agent: *
Allow: /
Disallow: /account/
由於 PerplexityBot 不是訓練爬蟲,為了退出模型訓練而封鎖它,只會損失搜尋能見度,卻達不到那個目的。
如果你在 robots.txt 中列出 sitemap,請把 Sitemap: 那一行放在任何群組之外,或放在檔案結尾;它適用於所有爬蟲。也請確認 sitemap 本身沒有被防火牆封鎖,因為無法擷取 sitemap 的爬蟲,就無法利用它找到新增或變更的頁面。
如何確保防火牆不會封鎖 Perplexity?
機器人防護常把任何非瀏覽器的請求視為可疑。請分別用各個 Perplexity 的 user agent 請求你的頁面,並將回應與瀏覽器請求相比。如果爬蟲收到 403、429 或驗證挑戰頁,請新增一條允許規則,比對標記,最好再加上公布的 IP 範圍,讓只有真正的 Perplexity 流量通過。在 Cloudflare 中,AI Crawl Control 會列出 AI 爬蟲,並為每個提供 Allow 或 Block 動作。
請驗證,而不要只信任 user agent。任何人都能送出自稱 PerplexityBot 的請求,所以只靠 user agent 的允許規則也會放行冒充者,而以它為依據的封鎖也可以被躲開。把來源 IP 與 Perplexity 公布的清單比對,才能讓兩種規則都可靠。
AISeeWhy 會同時測試 PerplexityBot、Perplexity-User 與另外 12 個爬蟲。由於這兩者都決定 Perplexity 能否在答案中使用你的頁面,任何一個被封鎖都會回報為 P1,並附上修正用的規則。
常見問題
Perplexity 會用我的內容訓練 AI 模型嗎?
Perplexity 表示,PerplexityBot 與 Perplexity-User 都不用於收集內容來訓練 AI 基礎模型。
為什麼 Perplexity-User 會忽略 robots.txt?
Perplexity 的理由是,頁面是使用者要求的,所以這次擷取是代表該使用者進行,而不是自動化爬取。其文件說明,擷取程式因此通常會忽略 robots.txt。
如果需要,如何封鎖 Perplexity-User?
使用你的防火牆或 CDN,比對 user agent 標記與 Perplexity 公布的 IP 範圍。對這個代理程式而言,robots.txt 不是可靠的控制方式。
robots.txt 的變更要多久才會生效?
Perplexity 表示,其系統最多可能需要 24 小時才會反映變更。
封鎖 PerplexityBot 後,Perplexity 就完全不會使用我的內容嗎?
不會。這只會讓你的頁面不被爬取進 Perplexity 的搜尋索引,但使用者詢問某個頁面時,Perplexity-User 仍可擷取它,因為該擷取程式通常會忽略 robots.txt。