Site KitでConsent API警告が出た話|自作同意バナー×Consent Modeの落とし穴と対処

WordPressのSite KitでConsent API警告対処 WordPress
この記事は約9分で読めます。

2026年1月。前日まで出ていなかった推奨項目が、WordPressのサイトヘルスに増えていました。

WordPressサイトヘルスに表示されたConsent API未準拠の警告画面

One or more plugins are not conforming to the Consent API.
(Consent APIに準拠していないプラグインがあります)

心当たりはひとつだけありました。前日、Google公式プラグインSite KitConsent ModeをONにしています。

Site KitのConsent Mode設定画面

「GDPR向けの同意バナーを自作しているのが原因か」「未対応プラグインの開発者に総当たりで連絡しろということか」と一瞬ヒヤッとしましたが、どちらも違いました。この表示は致命的エラーではありません。Consent ModeをONにしたことで、WP Consent APIに未対応のプラグインが検出されるようになっただけです。やることは2つ。計測系と広告系が同意拒否でちゃんと止まるかを自分の目で確かめること、そして自作バナーの選択結果をWP Consent APIへ通知する実装を足すこと。仕組みから調べ直した内容を、以下に整理しました。

検証環境:WordPress 6.8.3 / Cocoon 2.8.9 / Site Kit 1.174.0 / Xserver / PHP 8.3.21(2026年1月時点)

警告の正体

サイトヘルスのこの表示は、たいていの場合サイトが壊れているとか即アウトという類ではありません。

Site KitのConsent ModeをONにすると、WordPress側で同意情報を受け渡す仕組みが必要になります。そこで登場するのがWP Consent API、同意の共通言語です。ただ、いまはまだエコシステム全体で対応(宣言・実装)が追いついていないようです。だから未対応プラグインがある、という推奨が出がちになります。

サイトヘルスの推奨項目は、永続オブジェクトキャッシュのときもそうでしたが、出たからといって全部を潰しにいく必要はありません。ここから先は、自分のサイトの構成だと放置していいのか、という判断になります。

Consent Mode / WP Consent API / CMP の3層

混乱するのは似た言葉が3つ並ぶからです。担当範囲が違います。

1) Consent Mode(Google側)

Googleのタグ(Analytics / Adsなど)が、ユーザーの同意状態に応じて動作を変える仕組みです。Site KitはConsent ModeをONにすると、同意状態に沿ってタグのふるまいを制御するための設定・コードを扱います。

2) WP Consent API(WordPress側の共通言語)

WP Consent APIは同意バナーを表示するプラグインではありません。同意を取得する仕組み(CMP/同意バナー)と、同意に応じて動作を変えたいプラグインの間で、同意状態を共通の方法で受け渡すためのAPIです。

プラグインを公開している側から見ると、「準拠」の実体は思ったより小さい話です。同意が要らない挙動しかしないプラグインなら、宣言はフィルタ1行で済みます。

Cookieを置いたり外部スクリプトを読んだりする場合は、そこに同意状態を見る分岐が足されます。

つまりサイトヘルスに並んでいる未対応プラグインの多くは、対応が技術的に難しいのではなく、まだ宣言していないだけ、という状態です。【要確認:Rapls Works公開プラグイン4本がこの宣言を入れているかを確認して、入れていないなら「自分のプラグインも入っていなかった」と正直に書くほうが強い】

3) CMP(同意管理プラグイン)/ 自作同意バナー

ユーザーの許可・拒否を取って保存し、必要なら各タグやプラグインの挙動を制御する実働担当です。自作の場合は、この実働を自分で作ることになります。

CMPプラグインとしてはComplianzが有名ですが、Cocoonテーマとの組み合わせでスマホメニューが壊れるCSS競合を踏みました。私が自作バナーに切り替えたきっかけの一つがこれです。

私の環境で起きていたこと

同意バナーは自作(JavaScriptで表示・保存)、計測はGoogle AnalyticsをSite Kit経由で連携、そこにConsent Modeの有効化が乗りました。

この状態でConsent ModeをONにしたことで、WordPress側は同意を受け渡す基盤としてWP Consent APIを前提にした世界に入ります。そしてサイトヘルスが「このプラグインたちはConsent API対応(宣言/実装)してないよ」と教えてくる、という流れでした。

ただし未対応イコール悪、ではありません。そもそも同意に関係しないプラグイン(必須Cookieだけを扱うものなど)もあれば、同意が要るのに対応が追いついていないものもあります。

放置していいのか、連絡すべきなのか

全開発者への総当たり連絡はやめました。代わりに、サイトヘルスに出ている未対応プラグインを、同意に関係する可能性で3段階に分けました。

優先度 高は、広告タグ・Google Ads・アフィリエイト計測、Analytics・ヒートマップ・アクセス解析、外部読み込みのあるSNS埋め込み、GTMなどのタグ管理系。同意と絡みやすいので、まず「同意拒否でも動いていないか」を確認します。拒否しても動いていたなら、置換を検討するか開発者に連絡、が現実的なところです。

優先度 中は、会員・EC・フォーム・チャットのように、Cookieを置く可能性がある機能系。同意が必要な種類のCookieなのか、必須Cookieなのかで判断が変わります。

優先度 低は、キャッシュ、セキュリティ、バックアップ、管理画面の便利系。同意の文脈と直接関係しないことも多く、推奨項目として残っていても実害がないケースがほとんどです。

複数のWordPressサイトを保守している立場で言うと、この推奨項目自体はそれなりの頻度で見かけます。まだ移行期なので、未対応が数個並ぶのはむしろ普通の状態です。だから未対応の数を0にすることを目標にせず、優先度 高だけ対応方針を決めて、中は必要なら確認、低は残ったままでいい、という線を引きました。【要確認:この一段落、クライアント案件の内情に踏み込んでいないか最終確認を】

開発者に送る文面(英語)

連絡する場合も、短く済ませました。

自作バナーをWP Consent APIにつなぐ

ここが一番手を動かした部分です。自作バナーのままだと、Site Kit(Consent Mode)も、同意を参照したいプラグインも、ユーザーが何を選んだのかを知る手がかりを持てません。バナーが取った選択結果を、WP Consent APIへ通知してやる必要があります。

書くコードは概念としてはこれだけです。

前半の2行は、このサイトはオプトインで運用します、という宣言です。カスタムイベントを飛ばすところまでがセットで、これを忘れると受け取る側が同意タイプを判断できません。後半は、バナーの保存処理から呼ぶだけ。カテゴリは statistics(解析)と marketing(広告)のほかに functional、preferences、statistics-anonymous があるので、自分のサイトが実際に置いているCookieに合わせて増減させます。

上のコードはイメージで、実際は自作バナーの保存処理の中に組み込みます。【要確認:実装時に何行足したか/どのファイルのどこに入れたかを一言入れると、ここが体験の証拠になる】

注意点として、WP Consent APIは入れただけで全プラグインを止めてくれる仕組みではありません。CMP(または自作バナー)が同意状態を提供し、参照側のプラグインがそれを見て自分の挙動を変える、という役割分担です。提供する側が黙っていると、受け取る側は何もできません。

自作同意バナーのUI画面

Consent Modeの二重管理という落とし穴

Site KitのConsent ModeをONにしたのに、別の同意系プラグインやタグ管理側でもConsent Mode相当をONにしていると、設定が競合して挙動が読めなくなります。管理元は1つに寄せたほうが安全です。

私は、Consent ModeはSite Kit側に寄せる、同意の取得は自作バナー、同意の受け渡しはWP Consent API、という分担にしました。

なおSite Kitには、「Sign in with Google」機能が全ページに外部スクリプトを読み込んでPageSpeedスコアを大幅に下げるという別件もあります。この一件があったので、Site Kitの機能は一つずつ有効にして影響を見るようにしました。

拒否したあと、本当に止まっているか

最終的な安心材料はここです。同意バナーで拒否を選んだあと、ブラウザの開発者ツールで実際の通信を見ます。

  1. 同意バナーで「拒否」を選ぶ
  2. 開発者ツールの Network / Application(Storage/Cookies)を開く
  3. Analyticsや広告系のリクエスト(collect系など)が飛んでいないか確認する
  4. Cookieが意図せず作られていないか確認する

DevTools Networkタブで同意拒否後にAnalyticsのリクエストが止まっている画面

DevTools ApplicationタブのCookies一覧で不要なCookieがないことを確認する画面

サイトヘルスの推奨項目が残っていても、ここで止まっていることが確認できていれば、実運用としては先に進めます。

関連記事

FAQ

Q. これが出たらGDPR的に即アウト?

この表示自体が違反確定を意味するわけではありません。WP Consent APIは同意取得を行わず、同意の受け渡しを担う仕組みなので、まずは自サイトの同意設計と実装の整合性を確認するのが先です。

Q. 自作バナーのままでも運用できる?

できます。ただしConsent Modeや他プラグインが同意状態を参照できるように、WP Consent APIへ同意結果を通知する設計にしておくほうが安全です。

Q. サイトヘルスの推奨項目が気になるので消したい

どうしても気になるなら、Consent Modeを運用する必要があるのかどうか、方針から見直すのが近道です。目的がないならOFFに戻すのも選択肢に入ります。

※この記事は技術的な整理であり、法務判断(GDPR等の遵守)を保証するものではありません。運用方針は必要に応じて専門家に確認してください。

WordPress
この記事を書いた人
rapls

WordPressのプラグインを作っているフリーランスエンジニアです。Web開発はもう6年以上。WordPress.orgで Rapls AI Chatbot、Thanks Mail for Stripe、Rapls PDF Image Creator、Prime Cache の4本を公開し、保守を続けながら、日本語ロケールの翻訳エディター(PTE)も務めています。このブログに書くのは、現場で自分が実際にハマって、調べて、直した話です。

raplsをフォローする
raplsをフォローする

コメント

タイトルとURLをコピーしました