スポンサーリンク

【WordPress】Site KitがConnectedなのにGA4で計測されない時の原因と対処法

雑記

はじめに

ある日、自分のブログのGoogle Analytics(以下、GA4)を眺めていたら、ある時期から急にアクセスが0になっていた。「ついにブログが完全にオワコンになったか…」と一瞬絶望しかけたが、よく見ると計測自体が止まっているっぽい挙動だった。

たまたま同時期にPHP 7→8の移行作業をやっていたので「PHP移行のせいでアナリティクスが死んだ」と思い込んで調査を始めたのだが、実際の犯人は全く別のところに潜んでいた。

同じような状況でハマる人もいるかもしれないので、調査の過程と最終的な原因をまとめておく。

環境

  • WordPress + Cocoonテーマ
  • Site Kit by Google(GA4連携プラグイン)
  • LiteSpeed Cache(これが今回の犯人)
  • PHP 8系(直前にPHP 7から移行済み)

事象

GA4ホーム画面のグラフを見ると、ある日を境にアクティブユーザー・イベント数・表示回数が一気に落ち込んで、ほぼ平坦な線に張り付いていた。明らかに「アクセスが減った」ではなく「計測が止まっている」ような落ち方。

同じ時期にPHP 7→8の移行作業をしていたため、当然これを疑った。

仮説1: PHP 8移行でエラーが出ている? → 外れ

PHP 8では非推奨機能の削除や警告のエラー昇格があるので、GAタグの出力箇所より前でFatal Errorが出ていれば、その時点で出力が止まる可能性がある。

そう思ってブラウザの「ページのソースを表示」(Ctrl+U)で確認したところ、GAタグ自体はちゃんと出力されていた。ということは、PHPエラーで出力が止まっているわけではなさそう。

仮説2: Site Kitの認証切れ? → 半分正解

WordPress管理画面でSite Kitを開いたら「再ログインしてください」のメッセージが表示されていた。再ログインしたところ Connected 状態に復旧。

「これで解決か!」と思ったが、GA4のリアルタイムレポートを開いても、自分でブログにアクセスしてもユーザー数は0のまま反映されない。

検証中の罠: ブラウザのトラッキング防止機能

「ちゃんと計測されているか」を自分のブラウザで確認しようとしたのだが、ここで2つの罠にハマった。

罠1: Vivaldi(シークレットウィンドウ)の広告ブロッカー

シークレットウィンドウなら拡張機能オフだしクリーンだろうと思ってVivaldiで開いたが、Vivaldiは内蔵で広告ブロッカーを持っており、これが googletagmanager.com へのリクエストもブロックしていた。

罠2: Microsoft Edgeのトラッキング防止

EdgeのDevTools(F12)でConsoleタブを開いてリロードすると、こんなエラーが大量に出ていた。

Tracking Prevention blocked access to storage for <URL>

これはEdge標準の「トラッキング防止」機能がGoogle Analyticsをブロックしている証拠。設定 → プライバシー/検索/サービス → 「トラッキング防止を有効にする」をオフにして検証することにした。

検証時の注意点

自分のブラウザがGAをブロックしていると、いくらサーバー側を直しても「計測されない」と勘違いしてしまう。検証用にはスマホの4G/5G回線+標準ブラウザが最もクリーンな環境。

真犯人の発見: ページソースからgtagが消えていた

ブラウザのブロックを全部解除した状態でNetworkタブを見ても、 googletagmanagergoogle-analyticscollect のいずれのリクエストも飛んでいない。

「あれ?」と思って view-source:https://k1persia.com/ でソースを直接確認したところ、先ほどあったはずの gtag の文字列が、1件も含まれていなかった

最初にソース確認した時はGAタグが見えていたのに、今は消えている。これはキャッシュの仕業しかありえない。

Cocoonキャッシュをクリア → 復活せず

Cocoon設定 → キャッシュ から「全てのキャッシュの削除」を実行したが、ソースに gtag は戻ってこなかった。

LiteSpeed Cacheが本命だった

WordPressのプラグイン一覧を見直したら、LiteSpeed Cache がしっかり有効化されていた。これが古いHTML(GAタグなし版)をキャッシュして配信し続けていたのが真の原因。

LiteSpeed Cacheの管理画面 → ツールボックス → パージ →「すべてをパージ」を実行。

その後、 view-source: で確認すると、見事に gtag/js?id=GT-XXXXXXX が復活。GA4のリアルタイムレポートでもアクセスがカウントされるようになり、無事に計測復旧となった。

WordPressでGA計測が止まった時のチェック順序

今回の経験から、同じ事象が起きた時のチェックリストをまとめる。上から順番に確認していくのが効率的だと思う。

  1. Site KitのConnected状態を確認。認証切れなら再ログイン。
  2. view-source:サイトURLgtagを検索。出力されているか確認。
  3. ↑で見つからない場合、キャッシュ系プラグインを全パージ。LiteSpeed Cache、WP Super Cache、W3 Total Cache、Cocoonキャッシュ等を全部
  4. 検証時のブラウザ環境に注意。広告ブロッカー、Edgeのトラッキング防止、Vivaldi/Braveの内蔵シールドはオフに。
  5. WordPressログイン状態の影響を考慮。Site Kitの「Excluded from Analytics: All logged-in users」設定が有効だと、ログイン中ユーザーは計測対象外。

運用上の注意点(自分用メモ)

LiteSpeed Cache関連

  • Site Kitの設定変更後、テーマ・プラグイン更新後はLiteSpeed Cacheのキャッシュをパージする習慣をつける
  • 管理バー(画面上部)の「LiteSpeed Cache」メニューから「全てパージ」が一発で実行可能
  • 「ページ最適化」でJS結合・遅延ロードを有効にしている場合、GAタグが正しく動かないリスクあり。問題発生時はこれもオフにして切り分け

検証用ブラウザ環境

  • 自分の検証アクセスがブロックされる可能性を常に念頭に置く
  • DevToolsのConsoleタブで Tracking Prevention blockednet::ERR_BLOCKED_BY_CLIENT が出ていないか必ず確認
  • リアルタイムで反映されない時の切り分けには、スマホ4G回線が最強のクリーン環境

まとめ

PHP 7→8移行という大きな作業の直後だったため、当初はPHP移行を強く疑った。しかし実際の原因はそれとほぼ独立したキャッシュ問題だった。

時系列で関連していそうに見えても、実際の処理フロー(HTML出力 → ブラウザ取得 → JS実行 → GA送信)のどこで止まっているかを一段一段切り分けることが、結果的に最短ルートになる。

特に「ソースに gtag があるか」を view-source: で確認するのは、キャッシュ問題発見の決定打になった。WordPress + GA計測トラブルでは、最初にここを見るのがおすすめ。

あと、自分のブラウザ環境がGAをブロックしている可能性、これは想像以上に検証を混乱させるので、スマホ4G回線で確認するクセをつけたほうがいいなと痛感した一件だった。

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