IPジオロケーション
弊社では、ジオロケーション機能を使用して、サイト訪問者の位置情報に応じて、ウェブサイトで表示されるコンテンツを調整することができます。
MyKinstaから利用でき、サイト訪問者のアクセス元である場所に基づいてトラフィックを誘導します。柔軟性に優れ、条件に応じた特定の情報を提供することができます。
ジオロケーションとは
ジオロケーションは利用者の位置情報を扱う技術で、IPジオロケーションとは、IPアドレスを特定することでコンピュータの物理的な位置を特定するジオロケーションの一種です。
IPジオロケーションにより収集した情報を利用して、訪問者の所在地に応じて、特定のサブドメインやページに誘導するルールを設定することができます。これによりサイトの柔軟性が高まり、ユーザーの現在に基づいて、適切なコンテンツを指定可能です。
さらに、ジオロケーションとCloudflareのようなエッジベースのキャッシュシステムを組み合わせることで、ユーザーの所在地に近いキャッシュデータを自動的に配信することができ、TTFB(Time To First Byte)を大幅に短縮することも可能です。
注意点として、IPジオロケーションは、GPSなどの他のジオロケーションほど正確ではありません。また、ユーザーがブラウザのジオロケーションを無効にしたり、仮想プライベートネットワーク(VPN)などのIPクローキングサービスを使用している場合は、IPジオロケーションによるターゲティングを行うことができません。
しかしながら、エンゲージメントとコンバージョンの観点から、パーソナライズされた設計は不可欠です。IPジオロケーションは、訪問者により良いユーザー体験を提供するための重要な機能になります。
IPジオロケーションの使用例
IPジオロケーションには、主に以下のような用途があります。
- 訪問者の位置情報に基づくリダイレクト
- 訪問者の位置情報に基づくページキャッシュの区別
- 特定の地域からのトラフィックのブロック
以下、それぞれの用途についてご紹介します。
位置情報に基づくリダイレクト
例えば、「example.com」というサイトを運営しているとします。イギリスからの訪問者をターゲットにした新しいページを構築し、イギリスからの全訪問者を「example.com/uk/」にリダイレクトしたい場合に、MyKinstaのジオロケーション機能が便利になります。
先の条件を必要に応じて拡張することも可能です。例えば、世界各地からの訪問者を想定し、次のような設定を行うことができます。
- ルール1:イギリスからの訪問者を「example.com/uk/」にリダイレクトする
- ルール2:アメリカおよびカナダからの訪問者を「example.com/us/」にリダイレクトする
- ルール3:メキシコからの訪問者を「example.com/mx/」にリダイレクトする
- ルール4:インドからの訪問者を「example.com/in/」にリダイレクトする
- ルール5:オーストラリアからの訪問者を「example.com/aus/」にリダイレクトする
- いずれのルールにも該当しない場合:その他のすべての訪問者に「com」を表示
位置情報に基づくキャッシュの区別
プラグインやテーマの中には、訪問者の位置情報を検知し、その場所に応じて言語や通貨などのコンテンツをカスタマイズする機能を持つものがあります。IPジオロケーションを活用すると、国ごとに個別のキャッシュを構築し、その地域からの訪問者に特別なコンテンツを表示したり、読み込み時間を短縮したりすることができます。
例えば、サイト「example.com」で、円、米ドル($)、ユーロ(€)で商品価格を表示しているとします。
検出された訪問者の位置情報に基づいて、これら3つの通貨を自動的に切り替えるプラグインをインストールし、IPジオロケーションルールを用いて、3つのキャッシュバケットを構築します。サイトの高速性と拡張性を維持するため、サーバーのキャッシュは継続的に使用しながら、訪問者の位置情報に適した通貨を表示することができます。
- ルール1:アメリカからの訪問者には、キャッシュバケット1のキャッシュを配信し、米ドルで価格を表示
- ルール2:フランスからの訪問者には、キャッシュバケット2のキャッシュを配信し、ユーロで価格を表示
- いずれのルールにも該当しない場合:その他のすべての訪問者には、キャッシュバケット3のキャッシュを配信し、円で価格を表示
このような設定を応用し、買い物客の位置情報に基づいて消費税を自動計算など、さらなる利便性の実現も可能です。
商品購入のプロセスがシンプルであるほど、消費者のユーザー体験が向上します。買い物客が合計金額を自分で計算しなければならないような状況は、できる限り避けるのが賢明です。
位置情報を利用したトラフィック拒否(ジオブロッキング)
ジオブロッキング(位置情報に基づいてサイトへのトラフィックをブロックすること)は、非常にシンプルな活用例です。
例えば、日本国内のユーザーのみを対象にしたオンライン販売を行いたい場合には、MyKinstaのリダイレクトルールを使用して、サイトへのアクセスを簡単に日本国内の訪問者のみに制限することができます。
日本国外からアクセスする訪問者には、「403 Forbidden」のようなシンプルなメッセージを表示したり、任意のランディングページにリダイレクトしたりすることも可能です。
IPジオロケーション機能の組み合わせ
また、複数のIPジオロケーションに基づいたルールを組み合わせることで、よりきめ細かな制御を行うことも可能です。例えば、以下のような構成が考えられます。
- ルール1:アメリカからの訪問者を「example.com/us/」にリダイレクト
- ルール2、3、4:アメリカ、カナダ、ヨーロッパからの訪問者に別々のキャッシュバケットを適用
- ルール5:サービス提供の対象外である国からの訪問者はアクセスできない
IPジオロケーションとWordPress
WordPressには、IPジオロケーションの利用を可能にするプラグインが存在します。IP Geolocation Country RedirectやGeoTargetingWPは、訪問者の位置情報に基づいてサイト内のトラフィックを分岐させることができます。また、CF Geo Pluginのようなプラグインは、マーケティングの強化を目的とした、より広範なIPジオロケーション機能を搭載しています。
このようなプラグインが多数存在しますが、MyKinstaにジオロケーションが組み込まれているのには、いくつか理由があります。
まず、プラグインの保持には手間がかかり、サイトをスムーズに運営するには、プラグインの更新を随時行う(更新前にはリリースノートに目を通すなど)必要があります。また、アップデートによりサイトの一部が壊れてしまうリスクも拭いきれません。
また、プラグインは、サイトに固有のセキュリティリスクをもたらす可能性があります。プラグイン自体は第三者によって管理されているため、悪意のあるコードがプラグインを介してサイトに侵入し、保管されているデータが失われ、結果として評判に傷がつく可能性がゼロではありません。
プラグインは概して機能の拡張に便利なツールですが、使用する数は最小限に抑えることをお勧めします。プラグインは頻繁に更新され、十分に文書化されているもの、信頼できる開発者によって構築されたもののみを使用してください。
このような理由から、クライアント側のセキュリティリスクから保護されたインスタンスのサーバー上でジオロケーションを設定できるよう、MyKinstaにIPジオロケーション機能を組み込んでいます。
国単位でIPジオロケーションが有効になっている場合、以下のIPベースの位置情報がPHPに渡され、$_SERVER
変数で使用可能になります。
GEOIP_COUNTRY_CODE
GEOIP_COUNTRY_CODE3
GEOIP_COUNTRY_NAME
国および都市単位でIPジオロケーションが有効になっている場合、以下のIPベースの位置情報がPHPに渡され、$_SERVER
変数で使用可能になります。
GEOIP_CITY
GEOIP_CITY_CONTINENT_CODE
GEOIP_CITY_COUNTRY_CODE
GEOIP_CITY_COUNTRY_CODE3
GEOIP_CITY_COUNTRY_NAME
GEOIP_COUNTRY_CODE
GEOIP_COUNTRY_CODE3
GEOIP_COUNTRY_NAME
GEOIP_LATITUDE
GEOIP_LONGITUDE
GEOIP_POSTAL_CODE
GEOIP_REGION
これらを使用して、IPジオロケーションに基づいた独自のPHPスニペットを書くことができます。
IPジオロケーションとNginx
弊社では、ウェブサーバーにNginxを採用しています。Nginxはオープンソースのウェブサーバーで、その速度に加えてリバースプロキシ、ロードバランサ、HTTPキャッシュなどの多様な機能で知られています。
Nginxの強みは、GeoIPモジュールに対して、コンパイル済みのMaxMind GeoIP2データベースを使用できる点にあります。このモジュールは、HTTPとTCP/UDPの両方のトラフィックを処理可能で、訪問者のIPアドレスに基づき柔軟なルールを作成します。
MaxMind社のGeoIP2データベースは継続的に更新されており、すべてのリクエストについて、不正でないか、センシティブなデータでないか(EU圏内の訪問者からのGDPR関連のリクエストなど)といったスキャンが実行されています。
NginxのGeoIPモジュールに関する詳細は、公式ドキュメントをご覧ください。
MyKinstaでIPジオロケーションを設定する
MyKinstaでサイトにIPジオロケーションを設定する方法は、非常に簡単です。
ジオロケーション機能を有効にする
MyKinstaにログイン後、「サイト」>(サイト名)>「ツール」に移動し、「ジオロケーション」セクションの「利用する」をクリックします。
表示される画面で以下のどちらかを選択します。
- 国単位で適用:国レベルでIPジオロケーションを有効にします。
- 国と都市単位で適用:国と都市の両方のレベルでIPジオロケーションを有効にします。
いずれかを選択し、「利用する」ボタンをクリックして、ジオロケーション機能を有効にします。
しばらくすると、「ツール」画面に戻り、有効化完了のメッセージが表示されます。これで、弊社でホストするサイトでIPジオロケーションが有効になり、訪問者の現在地に応じたページの表示を指定することができます。
MyKinstaでIPジオロケーションルールとリダイレクトを設定する
サイトのIPジオロケーションを有効にしたら、リダイレクトルールを追加して、トラフィックを制御します。
「リダイレクト」画面に移動し、「リダイレクトルールの追加」を選択します。
「リダイレクトルールの追加」のポップアップ画面で、リダイレクトのパラメータを定義します。
トラフィックのリダイレクトに関するすべてのフィールドに情報を入力します。
- ドメイン:リダイレクトを追加するドメインを選択します。サイト内のすべてのドメインでリダイレクトを設定する場合は、デフォルト(「すべてのドメイン」)のままにしてください。
- リダイレクト元:トラフィックリダイレクトの起点となるページやディレクトリを入力してください。regexを使用することができます。
- リダイレクト先:トラフィックをリダイレクトする先となるページやディレクトリを入力します。
- 対象トラフィック:リダイレクトを適用したいトラフィックの国(国/都市レベルのIPジオロケーションを有効にしている場合には都市もあわせて)を選択します。
- HTTPステータスコード:リダイレクトを「一時的(302)」にするか、「恒久的(301)」にするかを決めます。詳しくは以下の「ジオロケーション設定のベストプラクティス」セクションをご覧ください。
必要な情報の入力が完了したら、下部にある「リダイレクトルールを追加」をクリックします。
これで、IPジオロケーションを活用して、特定の場所からのトラフィックをサイトの別のエリアにリダイレクトすることができます。
作成したルールは、必要に応じて「リダイレクト」画面で編集可能です。
MyKinstaでリダイレクトルールを追加する方法についてはこちらをご覧ください。
ジオロケーション設定のベストプラクティス
リダイレクトルールの使い方を誤ると、予期しない結果がもたらされ、SEOやサイトのユーザーエクスペリエンスに悪影響を及ぼす可能性があります。そのような事態を避けるため、リダイレクトルールの設定時には、以下のベストプラクティスに従うことをお勧めします。
1. ステージング環境でテストする
いきなり本番環境で設定を変更する前に、ステージング環境でリダイレクトルールをテストすることをお勧めします。これにより、訪問者が予期せずリダイレクトの問題に遭遇する前に、修正を行うことができます。
2. プラグインの競合がないか確認する
WordPressプラグインの中には、独自のリダイレクトで自動的にCookieを設定するものがあります。この手のプラグインとMyKinsta ジオロケーション機能を併用すると、競合が発生する可能性があります。
これについても、本番サイトにリダイレクトを適用する前に、ステージング環境でテストすることをお勧めします。
3. ロケーションに基づいたリダイレクトには302を使用する
Googleは、ロケーションベースのリダイレクトやサイトの移転には、(301 ではなく)「302 リダイレクト」を使用することを推奨しています。詳しくは、300番台リダイレクトのステータスコード一覧をご覧ください。
4. 複数の場所からテストする
VPNやプロキシサービスを使って別の地域からサイトにアクセスし、ロケーションベースのルールを確認することをお勧めします。海外からアクセスしたユーザーを再現し、サイトがどのように表示されるのか(リダイレクトを含む)をチェックすることができます。
5. 検索エンジンのボットをブロックしない
検索エンジンは一般的に、その企業が拠点とする国からクロールを行います。Deepcrawlによると、GoogleとBingの検索ボットはアメリカから、Baiduは中国から、Yandexはロシアからクローリングしています。
不適切なロケーションベースのリダイレクトでこれらの検索エンジンをブロックすると、SEOに悪影響を与えます。サイトをクロールしてもらいたい検索エンジンを決めて、リダイレクトルールを慎重に再確認し、ブロックしないようにしてください。
例えば、英語以外のページにアクセスした米国在住のユーザーを、英語ページに誘導するリダイレクトを設定を行うとします。すると、GoogleやBingのボットもリダイレクトされてしまい、英語以外のページのクロールやインデックスを行うことができなくなり、最終的には検索結果から除外されてしまう恐れがあります。
なお、都市単位のリダイレクトは、これらのボットに影響を与えることはありません。検索エンジンがどの国からクロールしているのかがわからない場合は、DNSの逆引きを行ってクローラーの出所とその信頼性を確認することができます。
また、ほとんどの検索エンジンは「クローキングゼロ」ポリシーを採用しているため、検索ボット用の特別なルールを作らないようにすることも重要です(ユーザーはリダイレクトされるが、ボットはされないなど)。
6. リダイレクトを可視化する
検索ボットをブロックしないことに加えて、検索エンジンのボットに対してリダイレクトを「見えるように」することも重要です。これにはいくつかの方法があります。
- XMLサイトマップを作成して、各言語版でインデックスさせたいすべてのページを明確にします。このサイトマップを、Google Search ConsoleやBing Webmaster Toolsなど、対象とする検索エンジンに送信するようにしましょう。その後、各検索エンジンに付随するツールやサービスを使用して、サイトのクローリングやインデックスの問題がないか確認します。
- Google Search Consoleの「URL検査」を使って、個々のページがクロールやインデックスの対象になっているかどうかを確認します。
- Googleの検索演算子を使って、自分のページがインデックスされているかどうかを確認します。ドメインやサブドメインに「site:」を付けることで利用できます(「site:example.com/pt/」とすると、このパスを持つインデックスされたURLがすべて返されます)。
- 多言語サイトである場合は、hreflang属性を実装して、サイト内にあるすべての言語バリエーションの違い(例:英語ページなのか、日本語ページなのか)を明確にします。Google Search Consoleのインターナショナルターゲティングを利用して、hreflangの設定に関する問題を監視することができます。
- 国のパスごとにGoogle Search Consoleのプロパティを作成し、ターゲットとする特定の国を設定します(一つの言語で複数の国をターゲットにする場合は推奨されません)。
7. Cookieに依存しない
Coookieは訪問者の体験を向上するものですが、すべてのユーザーが利用しているわけではありません。ユーザーが仕事や個人的な理由から、VPNを使用している場合は、デフォルトでCookieが無効になり、位置情報の検出に問題が生じます。
また、検索ボットはCookieを無視することもあり、SEOにも悪影響を与えます。このような理由から、Cookieを使用したリダイレクトはお勧めできません。
ソリューションの一部としてCookieを使用する場合、GooglebotとBingbotはCookieを保存しないことを念頭においてください。
まとめ
MyKinstaでは、サイトのIPジオロケーションが簡単に設定できます。具体的には、数回クリックするだけで、国または国/都市レベルでIPジオロケーション機能を有効にできます。そして、お客様のニーズに適したロケーションベースのリダイレクトを設定可能です。
ご不明な点がございましたら、弊社カスタマーサポートまでお気軽にお問い合わせください。