自分のサイトがPerplexityに表示されないのはなぜ?

公開日

結論

Perplexityが表示しリンクできるのは、PerplexityBotがクロールを許可され、実際に取得できたページだけです。よくある原因は、PerplexityBotを禁止するrobots.txtのルール、403やチャレンジページを返すファイアウォールやCDN、JavaScriptの実行後にしか現れないテキストの3つです。この3点を確認し、Perplexityが公開しているIPレンジを許可してください。

Perplexityに自社の製品について尋ねると、競合他社、レビューサイト、フォーラムのスレッドは引用されるのに、自社のページだけが出てこない。関連性の問題である場合もありますが、数分で見つかる技術的なブロックが原因であることも少なくありません。Perplexityは、どのエージェントを使い、それぞれが何をし、どこからアクセスするのかを公開しています。そのため、robots.txt、サーバーが返す応答、応答の中身という流れの各段階を確認できます。

このページの内容
  1. Perplexityはどうやってページを見つけて読むのか
  2. robots.txtがPerplexityBotをブロックしていないか
  3. ファイアウォールやCDNがPerplexityをブロックしていないか
  4. 公開されているIPレンジでPerplexityを許可するには?
  5. JavaScriptのレンダリングが原因でPerplexityがページを読めないことはある?
  6. すべて開放しているのに表示されない場合は?

Perplexityはどうやってページを見つけて読むのか

Perplexityは2つのエージェントを公開しています。役割が異なり、どちらか一方に問題があるだけで、ページが回答に出てこなくなることがあります。

実際には、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、ボット対策です。自分のブラウザでは正常に見えていても、Perplexityには403、429、チャレンジページを返していることがあります。Perplexityのドキュメントには、WAF(ウェブアプリケーションファイアウォール)の内側にあるサイトでは、同社のボットを明示的に許可する必要がある場合があると書かれています。

同じURLをブラウザとして、そして各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の応答が返る場合は、いずれもファイアウォールが原因と考えられます。このテストはPerplexityではなくあなたのIPアドレスから行うため、ユーザーエージェントに対するルールの扱いはわかりますが、本物のクローラーに対するIPベースのルールの動作は異なる可能性があります。

Cloudflareを使っている場合は、2点に注意してください。Perplexityのドキュメントは、Bot Fight ModeはWAFのカスタムルールでスキップできないというCloudflare自身の説明を引用しています。そのため、この機能がPerplexityにチャレンジを出している場合、許可ルールを追加しても効果がありません。また、2025年8月にCloudflareは、申告されていないクロールを確認したとして、Perplexityを検証済みボットのリストから外したと発表しました。Perplexityはこの説明に異議を唱えています。したがって、検証済みボットだけを通すルールでは、Perplexityが通らない可能性があります。思い込まず、現在の状況をダッシュボードで確認してください。

公開されているIPレンジでPerplexityを許可するには?

誰でもPerplexityBotを名乗るリクエストを送れるため、ユーザーエージェントだけに一致する許可ルールでは、なりすましも通してしまいます。Perplexityは両エージェントのアドレス範囲を公開しており、ユーザーエージェントと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でページを取得し、出力の中に本文の一文があるか探すことです。なければ、そのテキストはスクリプトによって追加されています。サーバーサイドレンダリング、静的生成、クローラー向けのプリレンダリングを行えば、Perplexityだけでなく、すべてのAIクローラーに対してこの問題が解消します。

すべて開放しているのに表示されない場合は?

読み取れることは前提条件であり、保証ではありません。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によると、システムがrobots.txtの変更を反映するまで最大24時間かかることがあります。ファイアウォールの変更は、プロバイダーが適用した時点で有効になりますが、結果を判断する前に、クローラーが戻ってくる時間を見込んでください。

robots.txtでPerplexity-Userをブロックできる?

確実にはできません。Perplexityによると、このフェッチャーは、ユーザーが取得を依頼したものであるため、通常robots.txtを無視します。止める必要がある場合は、Perplexityが公開しているIPレンジに基づくファイアウォールのルールが確実な手段です。

ユーザーエージェントの確認だけで、Perplexityのトラフィックを見分けられる?

できません。ユーザーエージェントは簡単にコピーできます。送信元IPを、Perplexityがperplexitybot.jsonとperplexity-user.jsonで公開しているレンジと照合し、ファイアウォールのルールではユーザーエージェントとIPの両方で一致させてください。

参考資料

ほかの記事