2026年7月18日

2026年7月18日

WordPressサイトのゴーストスパム対策(GA4の偽アクセスを見分けて除外する)

ゴーストスパムは、あなたのサイトを一度も訪れずに、Googleアナリティクスへ直接偽のデータを送りつける迷惑行為です。サーバーにはアクセスが来ないため、.htaccessやセキュリティプラグインでは止められず、対策はGA4側での「見分け方」と「レポートからの除外」が中心になります。この記事では、GA4で偽アクセスを特定する手順、計測IDを他サイトで使われた場合の防ぎ方、実際にサイトへ来るリファラースパムとの違いと対処までを説明します。

ゴーストスパムとリファラースパムの違い

対策を間違えないために、まず2種類のスパムを区別しておきます。

ゴーストスパムは、GA4の計測ID(G- で始まるID)を宛先にして、計測用のエンドポイントへ偽のヒットを直接送信するものです。計測IDはページのHTMLに書かれていて誰でも見られるため、スパム送信者はIDさえ分かれば、あなたのサーバーを経由せずにデータを送れます。サーバーのアクセスログには何も残りません。

リファラースパム(クローラースパム)は、ボットが実際にあなたのサイトにアクセスし、参照元(リファラー)に宣伝したいドメインを入れてくるものです。こちらはサーバーに到達するので、アクセスログに記録が残り、サーバー側でブロックできます。

もうひとつ紛らわしいのが、あなたの計測タグがコピーされて別のサイトに貼られているケースです。サイトを丸ごと複製された、テーマのデモにタグが残っていた、といった場合に、他サイトのページビューがあなたのGA4に入ってきます。

ユニバーサルアナリティクス(UA)の時代には、ゴーストスパムが参照元レポートを埋め尽くすことが珍しくありませんでした。UAは2023年7月に標準版の計測を終了しており、現在はGA4が前提です。GA4ではMeasurement Protocolでの送信にAPIシークレットが必要になったこともあり、UA時代ほどの量は見かけなくなりましたが、ウェブ用の計測IDを狙った偽データの報告はGA4でも出ています。

GA4で偽アクセスを見つける手順

以下の画面名は2026年10月現在のGA4のものです。GA4の画面は頻繁に変わるため、名称が違う場合は近い項目を探してください。

参照元と「ホスト名」を確認する

いちばん有効な手がかりは「ホスト名」です。正規のアクセスなら、ホスト名はあなたのドメイン(例: example.com や www.example.com)になります。ゴーストスパムやタグのコピーでは、無関係なドメインや (not set) になることが多くなります。

  1. 「探索」から「自由形式」の探索を新規作成する
  2. ディメンションに「ホスト名」と「セッションの参照元 / メディア」を追加する
  3. 指標に「セッション」「エンゲージメント率」などを追加する
  4. 行にホスト名、列または2つ目の行に参照元 / メディアを配置する

自分のドメイン以外のホスト名が一定数あれば、それがスパムまたはタグのコピーです。あわせて、エンゲージメント率がほぼ0%、平均エンゲージメント時間が0秒、見覚えのない参照元ドメイン、といった特徴が重なっていないかも見ます。送信者がホスト名をあなたのドメインに偽装している場合もあるので、ホスト名が正しくても、存在しないページパスや不自然な言語設定が並んでいれば疑ってかまいません。

急増した日のデータを切り分ける

「レポート」の集客系レポートで、セッションが不自然に跳ね上がった日を見つけたら、その日だけに期間を絞って上記の探索を開きます。同じ日にWordPress側のアクセスログでは増加が見られないなら、サーバーを経由しないゴーストスパムの可能性が高いと判断できます。

GA4のデータからスパムを除外する方法

ここが誤解されやすい点ですが、GA4の「データフィルタ」は内部トラフィックとデベロッパートラフィックを除外するためのもので、ホスト名や参照元を条件にした除外は設定できません。そのため、ゴーストスパムに対しては次の方法を組み合わせます。

分析時にホスト名で絞り込む

探索やレポートの比較機能で、「ホスト名が自分のドメインに完全一致するもの」だけを含める条件を作っておき、普段の分析はその条件付きで行います。既存のデータからスパムを消すことはできませんが、判断を誤らないための現実的な方法です。Looker StudioでGA4をデータソースにしている場合も、同じくホスト名のフィルタをレポートに設定できます。

「除外する参照」の設定について

データストリームのタグ設定には、特定のドメインを参照元として扱わない設定(除外する参照のリスト)があります。ただしこれは、決済サービスから戻ってきたユーザーを参照流入として数えないための機能で、スパムのセッション自体を消すものではありません。スパムドメインを登録しても、参照元が「(direct)」扱いに変わるだけなので、スパム対策としては使いません。

Measurement ProtocolのAPIシークレットを整理する

GA4の管理画面で、データストリームごとにMeasurement Protocol用のAPIシークレットを発行できます。サーバー側からイベントを送る仕組みを使っていないのにシークレットが残っている場合は削除し、使っている場合も、テーマのJavaScriptやGitHubの公開リポジトリなど外部から見える場所に書いていないかを確認してください。シークレットが漏れると、正規の送信と区別しにくい偽データを送られる恐れがあります。

タグのコピー対策(Googleタグマネージャー)

タグが他サイトにコピーされている場合は、Googleタグマネージャー(GTM)でタグの配信条件にホスト名を加えると、コピー先ではタグが発火しなくなります。GA4の設定タグ(Googleタグ)のトリガーを「Page Hostname が example.com に等しい」などの条件付きにする方法です。

なお、この対策はコピーされたタグには効きますが、ゴーストスパムには効きません。ゴーストスパムはそもそもあなたのタグを動かしていないからです。WordPressにタグを直接書いている場合や、Site Kit by Googleなどのプラグインで設置している場合は、この条件をタグ側で付けられないので、GTMへの移行を検討する材料になります。

サーバーに届くリファラースパムをブロックする

アクセスログで同じ参照元からの不自然なアクセスが確認できた場合は、サーバー側でブロックできます。Apacheを使っている場合の例です。.htaccess を編集する前にファイルをバックアップし、WordPressが書き込む # BEGIN WordPress より上に追記します。

# 参照元が指定ドメインのリクエストを拒否する(ドメインは例)
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_REFERER} spam-domain-example\.com [NC,OR]
RewriteCond %{HTTP_REFERER} another-spam-example\.net [NC]
RewriteRule .* - [F]
</IfModule>

ドメインを並べるときは、最後の条件以外に OR を付けます。付け忘れるとすべての条件を同時に満たす必要があるルールになり、何もブロックされません。追記後はサイトの表示に問題がないか、自分のブラウザで確認してください。Nginxの場合は .htaccess が使えないため、サーバー設定で $http_referer を条件にします。CloudflareなどのCDNを使っているなら、そちらのWAFルールで止めるほうが管理しやすいこともあります。

アクセスログでの確認は、たとえば次のように行います(ログの場所はサーバーによって異なります)。

# 参照元ごとの件数を多い順に表示(Apacheのcombined形式を想定)
awk -F'"' '{print $4}' /var/log/apache2/access.log | sort | uniq -c | sort -rn | head -20

ここに出てこない参照元がGA4にだけ大量に出ているなら、それはゴーストスパムです。サーバーで止める対象ではないので、前述のGA4側の方法で対処します。

まとめ

  • ゴーストスパムはサーバーを経由せずGA4に直接送られるため、.htaccessやセキュリティプラグインでは防げない
  • GA4では「ホスト名」ディメンションで自分のドメイン以外のデータを見分けるのが有効
  • GA4のデータフィルタはホスト名で除外できないため、分析時の絞り込みやLooker Studioのフィルタで対応する
  • 「除外する参照のリスト」はスパム対策の機能ではない。使っていないMeasurement ProtocolのAPIシークレットは削除する
  • タグのコピーにはGTMのホスト名条件、実際に来るリファラースパムにはサーバーやCDNでのブロックが有効

お気軽にご相談ください

お見積りへ お問い合わせへ
▲