ウェブサイトパーソナライゼーションのプロジェクトを検討し始めたB2Bマーケターは、いずれSEOチームの誰かから同じ質問を受けます。「これでオーガニック検索の順位が急落したりしない?」この懸念はたいていクローキングの問題として語られ、ほぼ例外なくパーソナライゼーションのプロジェクトを始まる前に止めてしまいます。Googlebotが見るページと人間の訪問者が見るページが異なり、内容の食い違いを理由にGoogleがサイトにペナルティを科すのではないか、という不安です。
簡潔に答えると、正しく構築すれば問題はありません。Googleのスパムに関するポリシーが対象とするのは、順位を操作するために変更されたコンテンツであり、訪問者に合わせて調整されたコンテンツではありません。本当のリスクは技術的なものです。誤ったバリアントがインデックスされる、URLが重複する、レンダリングが遅いまたはブロックされる、キャッシュの設定ミスなどです。これらはペナルティとは無関係な自ら招く順位の問題であり、計画段階で備えるべきはこちらです。
本記事では、Googleのドキュメントの記述、パーソナライズとSEOが衝突する具体的なケース、両方を機能させるための技術的な設定、そして最もよくある計画上の失敗について解説します。
要点:パーソナライゼーションがSEOに与える影響
パーソナライゼーションがSEOに影響するのは、Googleがクロールするページとその読み込み速度を通じてだけです。クローラーと初回訪問者が1つのURLで完全なデフォルトページを取得でき、バリエーションがページを遅くせずにその上でコンテンツを差し替えるなら、検索順位には影響しません。SEOへの悪影響は、バリエーションのインデックス化、URLごとのバリエーションの分割、レンダリングのブロック、あるいはある訪問者向けのバージョンを全員向けにキャッシュすることから生じます。
「パーソナライゼーションと SEO」の裏には異なる2つの問いが隠れているので、分けて考えると役に立ちます。
- Google自身による検索結果のパーソナライズ。Googleは所在地、言語、そして限られた範囲で検索履歴に応じて結果を調整します。そのため、同じクエリでも2人の人がわずかに異なる順位を目にすることがあります。これは制御できず、ほとんどのB2Bキーワードでは順位がわずかに変わる程度です。順位は中立的な場所から追跡し、自分のブラウザでのスポットチェックではなくSearch Consoleの平均値を使いましょう。
- 自社でWebサイトをパーソナライズする。この記事の残りで扱うのはこちらです。自社のページで訪問者ごとに異なるコンテンツを表示する方法と、それらのページの検索順位を損なわずに行う方法です。
パーソナライゼーションの種類とSEOリスク
パーソナライゼーションの種類によってリスクは異なります。よくあるB2Bのパターンに対する私たちの評価は以下のとおりです。
| パーソナライゼーションの種類 | SEOリスク | 理由 | 安全な設定 |
|---|---|---|---|
| 業種に応じたロゴ、導入事例、お客様の声の差し替え | 低 | ページの主なトピックとコピーは同じまま | デフォルトをHTMLで設定し、読み込み後またはエッジで差し替える |
| セグメント別の見出しとCTAのバリエーション | 低〜中 | H1はランキングシグナルなので、デフォルトのH1にはキーワードを含める必要がある | キーワードはデフォルトのH1に残し、バリエーションではセグメント向けの文言を加える |
| 地域や言語によるリダイレクト | 中 | Googlebotは主に米国からクロールするため、他のバージョンを一度も見ない可能性がある | hreflangを使った別々のURL。リダイレクトは強制せず提案する |
| それぞれ独自のクエリ文字列URLを持つバリアント | 中 | 重複ページが競合し、リンクが分散する | すべてのバリアントのcanonicalをデフォルトのURLに設定する |
| 一部の訪問者に対してセクション全体を非表示にしたり差し替えたりする | 高い | クロールされるコンテンツは、ユーザーが見る内容と大きく異なる場合がある | セグメント向けのセクションは追加し、デフォルトのコンテンツは削除しない |
| Googlebotにすべての人間とは異なるコンテンツを表示する | 高い(クローキング) | Googleのクローキングの定義に該当する | ボットには、不明な訪問者と同じ標準ページが表示される |
パーソナライズされたコンテンツについてGoogleが実際に述べていること
パーソナライゼーションに対するGoogleの立場は、多くのSEOチームが想定しているよりも寛容です。Googleはスパムに関するポリシーで、クローキングを「検索順位を操作してユーザーを欺く目的で、ユーザーと検索エンジンに異なるコンテンツを表示すること」と定義しています。鍵となるのは「操作して」という部分です。ヘルスケア企業からの訪問者に業種別の導入事例を見せるような、訪問者の属性に基づくパーソナライゼーションは、Googlebotを欺いたり順位を不正に操作したりするためのものではないため、クローキングにはあたりません。訪問者により良い体験を提供するためのものです。外部の被リンク獲得会社にサイトを監査してもらう場合は、パーソナライズされたページを問題視する前に、この違いを理解してもらうようにしましょう。
Googleのダイナミックレンダリングに関するページも関連する指摘をしています:"As long as your dynamic rendering produces similar content, Googlebot won't view dynamic rendering as cloaking."(ダイナミックレンダリングで同様のコンテンツを生成している限り、Googlebotはそれをクローキングとは見なしません)。同じページでは、ダイナミックレンダリングはもはや推奨しない回避策だとされているため、ボットに特別なバージョンを配信することへのお墨付きと受け取ってはいけません。安全な解釈は、「Googlebotが受け取る内容は、未知の人間の訪問者が受け取る内容と同じであるべき」というものです。
言語や国別のバリエーションについて、Google の多地域サイトの管理に関するガイドでは、言語に基づいてユーザーを自動的にリダイレクトしないよう勧めており、Google のクロールの大半は米国から行われるため、地域限定のコンテンツはクロールされない可能性があると指摘しています。代わりに、hreflang を設定した別々の URL を使いましょう。
実際に検索順位を下げる原因は技術的なものです。誤ったバリアントのインデックス、canonicalシグナルの破損、重要なコンテンツへのGooglebotのブロックなどが挙げられます。
パーソナライゼーションとSEOが実際に衝突する場面
問題が生じるポイントは、多くのチームが想定するよりも限られています。パーソナライゼーションの導入で起こり得るSEOの問題のほとんどは、5つのパターンでカバーできます。
1. パーソナライズしたバリアントを正規版としてインデックスさせてしまう
例:あるチームが、5つの業界バリアントを持つパーソナライズされたホームページを作ったとします。Googlebotがクロールしたときにサーバーがたまたま医療業界のバリアントを返し、突然その業界向けバージョンが検索順位に表示されるようになりました。社名で検索した人は誰でも、自分が属していないセグメント向けのページに着地してしまいます。
解決策は、Googlebotからバリアントを隠すことではありません。デフォルトの体験、つまり不明または未分類の訪問者に表示される体験が、Googlebotにも一貫して表示されるようにすることです。ボットは常にデフォルトに振り分けられるべきで、セグメントに入れてはいけません。
2. 誤ったURLを指すcanonicalタグ
パーソナライズされた各バリアントに独自のURL(/?segment=healthcare、/?segment=finance)を割り当てながら、canonicalタグを正しく設定していないチームがあります。するとGoogleはどのバリアントをインデックスするかを選ばなければならず、選ばれるのはたいてい上位表示させたいものではありません。パーソナライズのバリアントを別々のURLに置きたい場合は、すべてのバリアントのcanonicalタグをデフォルト版に向けてください。訪問者に応じて変わる単一のURLにしたい場合は、URLを1つに保ち、サーバーサイドで配信するか、インデックス後にハイドレートするクライアントサイドレンダリングでコンテンツを配信します。
3. サーバーサイドのパーソナライゼーションによるTTFB(Time to First Byte)の遅延
パーソナライズの呼び出しがクリティカルパス上にある場合、レスポンスの前にどのコンテンツを描画するかを判定すると、すべてのリクエストに遅延が加わります。Core Web Vitalsはこれを捉えます。GoogleはLargest Contentful Paintを2.5秒以下で「良好」としており、判定処理によって主要なページがその基準を超えると、ユーザーとページエクスペリエンスのシグナルの両方に悪影響を及ぼします。公開前に、パーソナライズの呼び出しあり・なしで最初の1バイトまでの時間(TTFB)を測定してください。対策は、重要でないパーソナライズの判定をエッジかクライアントに移すこと、そしてベンダーが地域ハブ経由のルーティングではなく本当のエッジ実行に対応していることを確認することです。
4. レンダリングをブロックするクライアントサイドのパーソナライゼーション
セグメントの取得中にメインスレッドをブロックするクライアントサイドのパーソナライゼーションスクリプトは、レイアウトシフトと操作可能になるまでの遅延を引き起こします。GooglebotはJavaScriptをレンダリングできますが、高速でブロックしないスクリプトを優先します。パーソナライゼーションのライブラリがセグメントの判定を待ってからヒーローセクションを表示する場合、Googlebotは空のヒーローをインデックスしたり、コンテンツをまったく取得しなかったりする可能性があります。すぐにレンダリングされるデフォルト状態を用意し、セグメントが確定した時点でコンテンツを差し替える、ブロックしないセグメント判定を使いましょう。差し替えたブロックがページを押し動かさないよう領域を確保する仕組みについては、Cumulative Layout Shiftを防ぐためのこちらのガイドをご覧ください。
5. CDNのキャッシュがパーソナライズされたレスポンスと衝突する
CDNがパーソナライズされたレスポンスをキャッシュし、後続の訪問者に配信すると、2つの問題が同時に起こります。その訪問者にとってパーソナライゼーションが誤ったものになり、さらにキャッシュされたバリエーションがGooglebotの再クロール時に見られることになります。CDNより手前で行うパーソナライゼーションには、セグメントのシグナルに対するVaryヘッダーが必要です。そうでなければ、キャッシュを汚さずに訪問者ごとに判断できるエッジで行う必要があります。
両方を機能させ続ける技術的な設定
SEOに配慮したパーソナライゼーションの設定には、いくつか必須の要素があります。最初にそれらを正しく整えれば、上記の問題を防げます。
- 安定した標準の体験。不明な訪問者やボットに表示するページは、完全で一貫性があり、上位表示させたい内容を反映している必要があります。これがSEO上の正規コンテンツです。パーソナライズしたバリアントはその上で差し替えるものであり、置き換えるものではありません。
- 論理的なページ1つにURL1つ。ホームページはURL1つで、5つではありません。業界別ページもそれぞれURL1つです。バリアントは同じURL内で表示し、クエリ文字列を付けた個別のバージョンにはしません。これによりcanonicalシグナルがきれいに保たれ、リンクの評価が集約されます。
- ファーストビュー内のコンテンツはサーバーサイドまたはエッジで実行。Googlebotがインデックスのために見る必要のあるコンテンツは、クライアントサイドの判定を待たずにレンダリングされるべきです。ファーストビューより下のパーソナライゼーションは、描画後に実行して構いません。
- ボットにはベースラインを表示する検知機能。ほとんどのパーソナライゼーションプラットフォームには、Googlebotなど既知のクローラーにデフォルトの体験を返す設定があります。有効にしましょう。これはクローキングではなく、一貫性の確保です。インデックスされる内容を、検索向けに最適化したベースラインと一致させているのです。
- Schema.orgのマークアップはベースラインに合わせる。構造化データは、パーソナライズされたバリエーションではなくデフォルトのコンテンツを参照する必要があります。導入事例セクションが業種によって切り替わる場合、Articleスキーマは現在表示されている事例ではなく、デフォルトの事例を記述するべきです。
- Varyヘッダーまたはエッジでの判定。オリジンと訪問者の間にあるCDNは、いつキャッシュをバイパスすべきかを知る必要があります。Varyヘッダーの欠落は、パーソナライゼーションが訪問者間で混ざってしまう最も一般的な原因です。
簡単に言えば、パーソナライゼーションは検索に最適化されたベースラインの上に重ねる層であり、その代わりではありません。問題が起きるのは、パーソナライズされた体験が主となり、標準ページが後回しになったときです。
多くのチームが陥る間違い
私たちの考えでは、パーソナライゼーションによる最大のSEOリスクは、クローキングやペナルティではありません。誤ったベースラインから始めてしまうことです。
パーソナライゼーションを、弱い標準ページを補う手段として扱ってしまうチームがあります。どうせ大半の訪問者には上書きされるだろうと考え、あえて汎用的なベースラインを作り、その結果順位が下がるのです。Googleがインデックスするのはベースラインであり、オーガニックトラフィックの大半はパーソナライゼーションのルールに該当しません。標準ページが弱ければ順位も低くなり、パーソナライゼーションでコンバージョンできたはずのトラフィックはそもそも訪れません。
私たちが推奨する順序は逆です。まず SEO のために可能な限り強い汎用ページに投資し、その上にパーソナライゼーションを重ねましょう。ホームページのパーソナライゼーションガイドとB2B Web サイトパーソナライゼーションの仕組みの解説でも、コンバージョンの観点から同じことを述べています。
高ACVで営業サイクルの長いブランドを支援するB2B SaaSのSEO & AEOコンサルタント、Max Desiakは、営業サイクルが長い場合こそベースラインが重要だと付け加えます。「購買委員会は通常、セグメントのシグナルが存在する前に、オーガニック検索やAI検索を通じてまずデフォルトのページにたどり着きます。そのページは単独でキーワードと主張を担わなければなりません。パーソナライゼーションが改善できるのは、すでに獲得したトラフィックだけだからです。」
よくある2つ目の間違いは、SEOとパーソナライゼーションを、別々のロードマップを持つ別々のチームとして扱うことです。実際には、SEOチームがベースのコンテンツ、メタタグ、構造化データを担当し、パーソナライゼーションチームがその上に重ねるバリアントを担当します。両者が連携しないと、パーソナライズされたバリアントがSEOチームの最適化した内容から少しずつずれていき、インデックスされたページとパーソナライズされたページの差が広がって、レポートが不可解なものになります。典型的な症状は、SEOチームは上位表示されているページのコンバージョンが低い理由に首をかしげ、パーソナライゼーションチームはターゲットアカウント向けに作ったバリアントがなぜ表示されないのかに首をかしげる、というものです。重要なページごとに共通の責任者を置き、標準のコピーを合意済みの基準とすることで、こうした問題の大半は防げます。
展開前の実践的なテスト
自然検索のトラフィックがあるページでパーソナライゼーションを開始する前に、次の確認を行ってください。Cookieなしのシークレットウィンドウでページを開きます。次に、ユーザーエージェント切り替えツールかGoogle Search ConsoleのURL検査ツールを使って、Googlebotとして再度開きます。2つを比較します。メインのコンテンツは一致しているはずです。一致していなければ、ボット向けのルールが間違っているか、発火すべきでないパーソナライゼーションのルールによってデフォルトが汚染されています。プログラム全体については、パイプラインを軸に計画するB2B SEOのガイドをご覧ください。
次に、元のHTMLではなくレンダリング後のHTMLを確認します。Search ConsoleのURL検査ツールを使い、Googlebotが実際にインデックスした内容を確認してください。料金、導入事例、お客様の声などの重要なコンテンツが、パーソナライズの処理後にレンダリング結果にしか現れない場合、クライアントサイドのタイミングの問題があります。そのコンテンツはサーバーのレスポンスに含めましょう。
最後に、Core Web Vitalsが悪化していないか確認します。トラフィックの多いページでパーソナライゼーションを有効にする前後でPageSpeed Insightsを使いましょう。数百ミリ秒の悪化は、意識して見ていなければ見逃しがちです。パーソナライゼーションプラットフォームがクリティカルパス上にあって遅延を加えている場合は、急がない判断を後段に移しましょう。
ほかのパーソナライゼーションの安全策との関係
SEOの安全性は、B2Bパーソナライゼーションを展開する際に必ず問題になる3つの運用上の懸念の1つです。残りの2つは、データプライバシーのコンプライアンスガイドで取り上げたプライバシーの遵守と、パーソナライズされたB2B Webサイトのデザインパターンの記事で取り上げたバリエーション間の見た目の一貫性です。3つに共通する原則は同じです。パーソナライゼーションはしっかりした土台の上に重ねる安全なレイヤーであるべきで、土台の規律の代わりになるものではありません。
どのツールを使うにしても、展開前に4つの点を確認しましょう。既知のクローラーにはデフォルトの体験が表示されること、バリエーションが同じURL上にある(またはそのURLにcanonicalを設定している)こと、デフォルトがセグメントの判定を待たずに表示されること、そしてパーソナライズされたレスポンスが他の訪問者向けにキャッシュされないことです。Markettailorを使う場合、そのセグメンテーションのルールとA/Bテストは既存のURL上のバリエーションとして動作するため、上記の確認がそのまま当てはまります。いずれにしても、自社のページでシークレットモードとURL検査を比較するテストを行いましょう。
2文での要約
Webサイトのパーソナライゼーションは、しっかりしたベースラインから始め、論理的なページごとにURLを1つに保ち、ボットにはデフォルトを表示するようにしていれば、SEOに悪影響を与えません。悪影響が出るのは、チームがパーソナライゼーションを良質な汎用コンテンツの代わりとして扱ったり、技術的な設定を省いたり、クライアントサイドのスクリプトが重要なコンテンツへのGooglebotのアクセスを遅らせたりする場合です。
SEOへの懸念がパーソナライゼーションのプロジェクトを止めているなら、上記のローンチ前テストを1ページで実施し、結果をSEOチームと共有しましょう。漠然とした不安が、確認可能なリストに変わります。データ面については、訪問者識別がどのようにセグメントを支えるかをご覧いただくか、料金ページでプランを比較してください。
よくある質問
パーソナライゼーションはクローキングに該当しますか?
いいえ。目的が訪問者により良く対応することであり、Googlebotが不明な訪問者と同じ標準ページを受け取る限り該当しません。クローキングとは、検索順位を操作する目的で、ユーザーが見るものとは異なるコンテンツを検索エンジンに見せることです。業種に応じて導入事例を差し替えることは、それには当たりません。
Googlebotにはパーソナライズした版のページを見せるべきですか?
いいえ。クローラーには常にデフォルトの体験を表示しましょう。そうすればインデックスされるコンテンツが安定し、クロール時にたまたま表示されたセグメント向けの内容ではなく、最適化した内容でページが評価されます。
クライアントサイドのパーソナライゼーションはCore Web Vitalsに悪影響がありますか?
影響する場合があります。セグメントが判定されるまでコンテンツを隠すスクリプトは、Largest Contentful Paintを遅らせ、レイアウトのずれを引き起こします。デフォルトを即座に表示し、差し替える要素の領域を確保し、パーソナライゼーションのスクリプトは非同期で読み込みます。
Googleは検索結果をパーソナライズしていますか?
はい。主に地域と言語によって、また程度は小さいものの検索履歴によってもパーソナライズされます。これは自社 Web サイトのパーソナライズとは別の話題です。順位の判断には、自分のブラウザではなく Search Console の平均掲載順位を使いましょう。
SEOに悪影響を与えずに、パーソナライズされたページのA/Bテストはできますか?
はい。Google の Web サイトテストに関するガイダンスでは、パターンの URL に rel=canonical を使うこと、テストのパターンには301ではなく302リダイレクトを使うこと、答えが出たらテストを終了することが推奨されています。妥当な期間で終わるテストの計画方法は、コンバージョン率最適化ガイドで解説しています。