WordPressクッキー監査:テーマとプラグインがサイトをトラッカーだらけにする仕組み
WordPressに潜むクッキー問題
多くのWordPressサイト運営者は、自分のサイトがどれほど多くのクッキーを設定しているかを把握していません。人気テーマと一般的なプラグインをいくつか入れただけの新規WordPressインストールでも、さまざまなドメインにわたって15〜30個のクッキーが簡単に設定されます。その多くは、訪問者が同意する機会を得る前に設定されます。これは意図的なトラッキングの結果ではなく、テーマやプラグインが、それ自体がクッキーを伴う外部リソースを読み込むことの累積的な結果です。
これらのクッキーがどこから来ているのか、何をしているのか、そしてどのように制御するのかを理解することは、GDPRやePrivacy、その他類似の規制に準拠する必��があるすべてのWordPressサイトにとって不可欠です。本ガイドでは、その監査プロセスをステップごとに解説します。
なぜWordPressサイトにはクッキーが大量にたまるのか
WordPressのプラグインアーキテクチャは、その最大の強みであると同時に、最大のプライバシーリスクでもあります。各プラグインは半ば独立して動作しており、多くの開発者は機能性を優先し、クッキーコンプライアンスにはあまり注意を払っていません。典型的なWordPressサイトでの主なクッキー発生源は次のとおりです。
テーマとGoogle Fonts
多くのWordPressテーマは、Google Fontsをfonts.googleapis.comから直接読み込みます。訪問者のブラウザがこれらのフォントをリクエストすると、Googleはクッキーを設定し、訪問者のIPアドレス、ブラウザ情報、リファラーページを収集できます。2022年には、Google FontsをGoogleのサーバーから同意なしで読み込むことはGDPR違反であるとドイツの裁判所が判断し、影響を受けた訪問者1人あたり100ユーロの罰金が科されました。解決策はフォントをローカルにホストすることですが、多く���テーマのデフォルト設定はいまだにGoogleのサーバーを指しています。
ページビルダーとアナリティクス
最も人気のあるWordPressページビルダーであるElementorは、フォントを含む外部リソースを読み込み、利用状況トラッキング用のクッキーを設定することがあります。一部のElementorウィジェットは、独自のクッキーを設定するサードパーティコンテンツ(YouTube動画、Google Mapsなど)を埋め込みます。無料版のElementorであっても、設定で明示的に無効化しない限り、匿名化された利用データを送信する場合があります。
SEOプラグイン
Yoast SEOやRank Math自体が設定するクッキーは多くありませんが、Google Search Consoleとの連携や、Google Analyticsトラッキングコードの追加を促します。これらのプラグインが導入を手助けするアナリティクススクリプトは、クッキーの大きな発生源です。Yoastのプレミアム版はSEO分析のためにYoastのサーバーと通信しており、ここでもクッキーが関与する可能性があります。
JetpackとWordPress.comサービス
Jetpackは、WordPressエコシステムの中でも特に多くのクッキーを設定するプラグインの一つです。有効化されているモジュールによって、Jetpackは次の用途でクッキーを設定します。
- サイト統計(WordPress.com stats)
- ソーシャル共有ボタン(Facebook、Twitter、LinkedInからスクリプトを読み込み)
- コメントシステム(Gravatarクッキー)
- セキュリティ機能(Protectモジュールのクッキー)
- CDN利用(WordPress.com CDNのクッキー)
デフォルト設定のJetpackを1つ導入するだけで、さまざまなドメインから8〜12個のクッキーが設定されることがあります。
WooCommerceとEコマース
WooCommerceはいくつかのクッキーを設定しており、これらはEコマース機能に厳密に必要なものと見なされています。
- woocommerce_cart_hash: カートの内容が変更されたかどうかをWooCommerceが把握するために使用。
- woocommerce_items_in_cart: カートに商品が入っているかどうかを追跡。
- wp_woocommerce_session_*: 各顧客セッションごとの一意のコードを含む。
これらは一���的に「厳密に必要なクッキー」として同意要件から除外されますが、決済処理、カゴ落ちメール、マーケティングオートメーション用のWooCommerce拡張機能は、同意が必要な多くのクッキーをさらに追加します。
お問い合わせフォームとreCAPTCHA
Contact Form 7、WPForms、Gravity Formsなどのお問い合わせフォームプラグインは、スパム対策としてGoogle reCAPTCHAを利用することがよくあります。reCAPTCHA v2およびv3は_GRECAPTCHAを含む複数のクッキーを設定し、google.comからスクリプトを読み込むことで、追加のトラッキングクッキーを設定する可能性があります。つまり、シンプルなお問い合わせページであっても、広告関連のクッキーが発生しうるということです。
キャッシュプラグイン
WP Super Cache、W3 Total Cache、WP Rocketなどのキャッシュプラグインは、キャッシュ動作を管理するために独自のクッキーを設定します。これらは通常、(ログインユーザーにはキャッシュをバイパスするなどの)機能的クッキーですが、クッキーポリシーでの記載は依然として必要です。
WordPressサイトでクッキー監査を行う方法
徹底したクッキー監査は、訪問者の視点からサイトをスキャンすることから始まります。基本的な流れは次のとおりです。
ステップ1:ブラウザの開発者ツールを使う
Chromeでサイトを開き、DevTools > Application > Cookiesに移動し、自ドメインおよびサードパーティドメインに設定されているすべてのクッキーを確認します。初回訪問者をシミュレートするため、シークレットウィンドウで行いましょう。各クッキーの名前、ドメイン、有効期限、ファーストパーティかサードパーティかを記録します。
ステップ2:専用のクッキースキャナーを使う
手動での確認はページ読み込み時に設定されるクッキーは把握できますが、ボタンのクリック、フォーム送信、スクロールなどの操作によって設定されるクッキーは見落としがちです。Cookiebotの無料スキャナー、CookieYesスキャナー、EditThisCookieのようなブラウザ拡張機能など、専用スキャナーを使う��より包括的な結果が得られます。トップページだけでなく、複数のページでスキャンを実行してください。
ステップ3:すべてのクッキーを分類する
検出したクッキーを、一般的なカテゴリにグループ分けします。
- 厳密に必要: セッションクッキー、認証、セキュリティ、カート機能など。これらは同意不要。
- 機能: 言語設定、UIカスタマイズなど。形式上は同意が必要ですが、リスクは比較的低いカテゴリです。
- アナリティクス: Google Analytics、WordPress.com stats、ヒートマップツールなど。同意が必要です。
- マーケティング/広告: Google Ads、Facebook Pixel、リマーケティングクッキーなど。同意が必要であり、最優先でブロックすべきクッキーです。
ステップ4:クッキーを発生源にひも付ける
各クッキーについて、どのテーマまたはプラグインが原因なのかを特定します。ここがWordPressの難しいところで、1ページの中で5つ以上のプラグインからスクリプトが読み込まれ、それぞれがクッキーを設定していることも���ります。プラグインを一つずつ一時的に無効化し、どのプラグインがどのクッキーを設定しているかを突き止めていきます。
よくあるクッキー発生源とその対処法
代表的なWordPressのクッキー発生源と、その対処方法を簡単にまとめると次のとおりです。
- Google Fonts: ローカルホストされたフォントに切り替えます。OMGFのようなプラグインやテーマ設定で自動化できます。
- Google Analytics: 同意が得られるまでブロックする必要があります。これはCMP側で制御します。
- YouTube埋め込み: youtube.comの代わりにyoutube-nocookie.comドメインを使用します。これにより多くのトラッキングクッキーを防げます。
- Google Maps: 同意後にのみ読み込むか、プレースホルダーとして静的な地図画像を使用します。
- Facebook Pixel: マーケティング同意が得られるまでブロックする必要があります。
- reCAPTCHA: よりプライバシーに配慮したhCaptchaなどの代替や、外部スクリプトを必要としないハニーポット手法の利用を検討します。
完全準拠のためのFlexyConsent WordPressプラグイン設定
クッキー監査を行い、制御すべき対象が把握できたら、WordPressでFlexyConsentを実装するのは難しくありません。
FlexyConsentのWordPressプラグインは、WordPress管理画面に直接統合され、ネイティブな設定体験を提供します。
- プラグインディレクトリからインストール: 「プラグイン > 新規追加」で「FlexyConsent」を検索し、インストールして有効化します。手動でファイルをアップロードする必要はありません。
- サイトを接続: プラグイン設定画面でFlexyConsentのサイトIDを入力します。プラグインは同意スクリプトを自動的に正しい位置(他のサードパーティスクリプトより前)に挿入しま���。
- クッリーカテゴリを設定: 監査で洗い出したクッキーを、FlexyConsentの同意カテゴリにマッピングします。プラグインは、WordPress管理画面内でこれを行えるビジュアルインターフェースを提供します。
- スクリプトブロッキングを設定: FlexyConsentはConsent Mode V2を通じてGoogleタグを自動的に管理します。その他のスクリプト(Facebook Pixelやカスタムトラッキングなど)については、適切な同意カテゴリが付与されるまで実行を防ぐスクリプトブロッキングルールをプラグイン側で設定できます。
- 徹底的にテスト: シークレットウィンドウを使って、同意が得られるまで不要なクッキーがブロックされているか、また同意後にすべての機能が正しく動作するかを確認します。
Google認定CMPであり、IAB TCF 2.3をサポートするFlexyConsentは、WordPressにおけるクッキーコンプライアンスの最も複雑な部分を自動的に処理します。Consent Mode V2のシグナルは、追加のタグ設定を行わなくてもGoogleサービスに送信され、ジオターゲティングにより、地域ごとに適切な同意インターフェースが表示されます。
重要なポイント: WordPressの柔軟性は、プライバシー面でのコストを伴います。あらゆるテーマやプラグインが、同意を必要とするクッキーを持ち込む可能性があります。体系的な監査と、適切なCMPの実装こそが、コンプライアンスを確保する唯一の信頼できる方法です。自分のサイトが「把握しているクッキーだけ」を設定していると考えないでください。実際には、ほとんどの場合、想像以上に複雑です。