WordPressプラグイン「IP Geo Block」による海外からのアクセス阻止

サイトコンテンツが日本語で、ユーザも日本人を想定しているのであれば、海外からのアクセスは微々たるものになるはずです。しかし、海外からのアクセスが少なくても注意を払う必要があります。

理由としては、海外からのアクセスはサーバへの不正アクセスだったり、アドフラウド(ネット広告の不正行為)だったりする確率が高いからです。

サーバへの不正アクセスの場合は、WordPress のバージョンアップを適宜行ったり、管理画面へのアクセス制限やパスワード管理などにより大部分を防ぐことができます。

しかし、アドフラウドの場合は、自動的に広告を表示したりクリックしたりするだけなので防ぐことが難しい。ひとつの国からアドセンス広告を 1 日何十回もクリックされたりすると、アドセンスの運用に悪影響が生じる可能性もあります。

そこで、WordPress プラグイン「IP Geo Block」を使うことで、海外からのアクセスを遮断する方法についてご説明します。

ホワイトリストによる国単位でのアクセス拒否ルール作成

プラグインをインストールしたら、プラグイン設定画面「設定」「検証ルールと振る舞いの設定」「マッチング規則」を「ホワイトリスト」にして、「国コードのホワイトリスト」を JP,US,AU に設定します。これにより、日本、アメリカ、オーストラリア以外からのアクセスを拒否します。

US と AU をホワイトリストに追加した理由は、海外サービスを使えなくなる場合があって面倒というのが理由です。ページの表示速度改善ツール lighthouse は、AU をホワイトリストに入れないと使えませんでした。海外サーバからサイトへのアクセスが必要なサービスを利用している場合、適宜ホワイトリストに国を追加します。

なお、ブラックリストでのルール設定も可能です。お好みで。

アクセス拒否ルールをページ表示に設定する

プラグイン設定画面「設定」「フロントエンドの設定」「一般公開ページ」「国コードで遮断」にチェックを入れます。「マッチング規則」は「検証ルールと振る舞いの設定に従う」のままにしておきます。

これで、サイトのページを表示する際にアクセス拒否ルールが適用されます。

アクセス拒否できているかを確認する

プラグイン設定画面の「統計」タブから、アクセスを遮断した回数が確認できます。少なくとも数回程度は遮断できていて、かつ遮断した国が想定通りか確認しましょう。

アクセス拒否しすぎていないかを確認する

Google ボットはブロック対象から除外されているため、検索エンジンからのアクセスには影響ありません。

フロントエンドの設定 | IP Geo Block

Google:HOST,bot:HOST,slurp:HOST
spider:HOST,archive:HOST,*:FEED
embed.ly:HOST,Twitterbot:US,Facebot:US

しかし、万が一悪いことが起きると、検索エンジンからの流入が大幅に減少してしまうリスクがあります。なので、Search Console でインデックス化可能か確認しておきます。

サーチコンソールの上部に『「hoge.com」内のすべての URL を検査』というテキストボックスがあるので、サイトの URL を入力します(左メニュー「URL 検査」をクリックすると、対象のテキストボックスが明るく表示されます)。

URL がインデックス登録されていれば、「URL は Google に登録されています」と表示されます。ここで、右上「公開 URL をテスト」ボタンを押してください。

Google のクローラがサイトに問題なくアクセスできるようなら、「URL は Google に登録できます」というメッセージが表示されます。