為什麼我的網站沒有出現在 Perplexity?

發布於

簡短回答

Perplexity 只能顯示並連結 PerplexityBot 獲准爬取、且實際拿得到的頁面。常見原因有三個:robots.txt 規則禁止了 PerplexityBot;防火牆或 CDN 以 403 或驗證挑戰頁回應它;文字要等 JavaScript 執行後才會出現。請逐一檢查,再放行 Perplexity 公布的 IP 範圍。

你向 Perplexity 詢問自己的產品,它引用的卻是競爭對手、評測網站或論壇貼文,唯獨沒有你自己的頁面。有時這是相關性的問題,但更常見的是幾分鐘就能找出的技術性阻礙。Perplexity 公開說明了它使用哪些代理程式、各自的用途,以及流量來自哪裡,因此鏈條上的每一環都可以檢查:robots.txt、你的伺服器送出的回應,以及回應的內容。

本頁內容
  1. Perplexity 如何找到並讀取頁面?
  2. 你的 robots.txt 是否封鎖了 PerplexityBot?
  3. 你的防火牆或 CDN 是否封鎖了 Perplexity?
  4. 如何依 Perplexity 公布的 IP 範圍放行?
  5. JavaScript 渲染會讓 Perplexity 讀不到頁面嗎?
  6. 如果一切都已開放,網站仍然沒有出現怎麼辦?

Perplexity 如何找到並讀取頁面?

Perplexity 公開說明了兩個代理程式。它們的任務不同,任何一個出問題,都可能讓你的頁面無法出現在答案中。

實際上,PerplexityBot 決定 Perplexity 在有人提問之前是否知道你的頁面,而 Perplexity-User 決定問題需要時它能否即時開啟某個頁面。如果你希望被引用,兩者拿到的頁面都應該與瀏覽器拿到的相同。

你的 robots.txt 是否封鎖了 PerplexityBot?

開啟 https://yourdomain.com/robots.txt,找找看有沒有點名 PerplexityBot 的群組。如果沒有,爬蟲就會遵循 User-agent: * 群組。依據 RFC 9309,比對時不分大小寫,而且點名的群組會完全取代 * 群組,而不是在其基礎上疊加。

這種封鎖很常見。在我們對最受歡迎的 1,000 個網域所做的 robots.txt 研究中,在提供 robots.txt 的 518 個網站裡,有 86 個(16.6%)對 PerplexityBot 禁止了首頁。這是我們測試的所有 AI 搜尋爬蟲中比例最高的;OAI-SearchBot 在 58 個網站(11.2%)被封鎖。其中有些網站可能原本是想阻止 AI 訓練,但 Perplexity 表示 PerplexityBot 不是訓練爬蟲,因此封鎖它只會損失搜尋能見度,達不到那個目的。

讓 Perplexity 進入、同時保持私人區域關閉的設定如下:

User-agent: PerplexityBot
Allow: /
Disallow: /account/

User-agent: *
Allow: /
Disallow: /account/

Sitemap: https://example.com/sitemap.xml

也要確認檔案本身能正確回應。如果 robots.txt 回傳伺服器錯誤,RFC 9309 規定爬蟲必須假設整個網站都被禁止。robots.txt 網址若以狀態碼 200 回傳 HTML 頁面,其中不含任何有效規則。Perplexity 表示,變更最多可能需要 24 小時才會反映。

你的防火牆或 CDN 是否封鎖了 Perplexity?

robots.txt 只是請求,不是存取控制。真正決定回傳什麼的是你的防火牆、CDN 或機器人防護,它們可能以 403、429 或驗證挑戰頁回應 Perplexity,而你自己用瀏覽器造訪時一切正常。Perplexity 的文件指出,位於 Web 應用程式防火牆(WAF)之後的網站,可能需要明確放行它的機器人。

測試方法是分別以瀏覽器和每個 Perplexity 代理程式的身分請求同一個網址,再比較狀態碼與回應大小:

for UA in "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36" \
          "Mozilla/5.0 (compatible; PerplexityBot/1.0; +https://perplexity.ai/perplexitybot)" \
          "Mozilla/5.0 (compatible; Perplexity-User/1.0; +https://perplexity.ai/perplexity-user)"; do
  curl -s -o /dev/null -w "%{http_code} %{size_download}\n" -A "$UA" https://example.com/page
done

只有 Perplexity 的代理程式收到 403、429 或 503,頁面標題為 Just a moment...,或是回傳的 200 回應比瀏覽器的小得多,這些都指向防火牆。這個測試來自你自己的 IP 位址,而不是 Perplexity 的,所以它只能顯示你的規則如何對待這個 user agent;對真正的爬蟲,以 IP 為基礎的規則仍可能有不同結果。

如果你使用 Cloudflare,請留意兩點。Perplexity 的文件轉述了 Cloudflare 自己的說法:WAF 自訂規則無法略過 Bot Fight Mode,所以如果該功能對 Perplexity 發出驗證挑戰,放行規則也無濟於事。此外,2025 年 8 月,Cloudflare 表示在觀察到其所稱的未聲明爬取行為後,已將 Perplexity 從已驗證機器人清單中移除;Perplexity 對此說法提出異議。因此,只放行已驗證機器人的規則可能並不涵蓋 Perplexity。請在你的控制台查看目前的狀態,不要想當然耳。

如何依 Perplexity 公布的 IP 範圍放行?

任何人都可以送出自稱是 PerplexityBot 的請求,所以只比對 user agent 的放行規則,也會放進冒充者。Perplexity 公布了兩個代理程式的位址範圍,並建議同時比對 user agent 與 IP 位址:

curl -s https://www.perplexity.ai/perplexitybot.json | jq -r '.prefixes[] | .ipv4Prefix // .ipv6Prefix'
curl -s https://www.perplexity.ai/perplexity-user.json | jq -r '.prefixes[] | .ipv4Prefix // .ipv6Prefix'

Perplexity 表示這些清單會定期更新,並建議將 WAF 規則的更新自動化。請把放行規則放在所有封鎖或驗證請求的規則之前:在 Cloudflare 的自訂規則中放在第一位,在 AWS WAF 中則使用較小的優先順序數字。接著觀察你的日誌,因為防火牆的變更可能需要一段時間才會生效。

JavaScript 渲染會讓 Perplexity 讀不到頁面嗎?

有可能。Perplexity 的爬蟲文件沒有說明它的代理程式是否執行 JavaScript,所以穩妥的假設是:爬蟲需要的文字應該包含在伺服器送出的 HTML 中。完全在瀏覽器中建構的頁面,例如沒有伺服器端渲染的單頁應用程式,送達時可能只是一個帶著載入動畫的空殼。

快速檢查的方法是用 curl 擷取頁面,然後在輸出中搜尋主要內容裡的一句話。如果找不到,代表文字是由指令碼加入的。伺服器端渲染、靜態產生或針對爬蟲的預先渲染,可以一次解決所有 AI 爬蟲的問題,而不只是 Perplexity。

如果一切都已開放,網站仍然沒有出現怎麼辦?

可被讀取是先決條件,而不是保證。Perplexity 沒有公布它如何挑選引用來源,所以即使每個代理程式都讀得到的頁面,仍可能輸給更直接回答問題的頁面。你能控制的是不讓任何技術問題擋路:清楚的頁面標題、在文字前段就給出答案,以及與你在其他地方所說一致的正確事實。

也要記住 robots.txt 涵蓋不到的情況。Perplexity 表示,由於是使用者要求了擷取,Perplexity-User 通常會忽略 robots.txt。因此,針對 Perplexity-User 的規則並不是阻止即時造訪的可靠方法,而允許它的 robots.txt 也不能證明它能通過你的防火牆。

AISeeWhy 會以 PerplexityBot、Perplexity-User 和另外 12 個爬蟲的身分,連同瀏覽器一起請求你的頁面,對每個爬蟲套用你的 robots.txt 規則,辨識驗證挑戰頁,並顯示不執行 JavaScript 時能收到多少文字,讓你看清鏈條上是哪一環出了問題。

常見問題

Perplexity 會用我的內容訓練模型嗎?

Perplexity 表示,PerplexityBot 不會用於爬取內容來訓練 AI 基礎模型,Perplexity-User 也不會為了訓練而蒐集內容。因此禁止 PerplexityBot 並不能當作退出訓練的手段,只會降低你在 Perplexity 搜尋結果中的能見度。

修正 robots.txt 後,Perplexity 多久會發現?

Perplexity 表示,其系統可能需要最多 24 小時才會反映 robots.txt 的變更。防火牆的變更會在服務供應商套用後生效,但在判斷結果之前,請給爬蟲回訪的時間。

可以用 robots.txt 封鎖 Perplexity-User 嗎?

不可靠。Perplexity 表示,由於是使用者要求了擷取,這個擷取器通常會忽略 robots.txt。如果需要阻止它,依其公布的 IP 範圍比對的防火牆規則,才是可靠的控制方式。

只檢查 user agent 就足以辨識 Perplexity 的流量嗎?

不夠。User agent 很容易被複製。請把來源 IP 與 Perplexity 在 perplexitybot.json 和 perplexity-user.json 中公布的範圍比對,並在防火牆規則中同時比對 user agent 與 IP。

資料來源

更多文章