ページのコード内のhreflangマークアップは一つのものであり、ドイツ、ポーランド、ブラジルの訪問者が実際に受け取るものはまったく異なります。Googleはタグを無視することがあり、CDNは誤ったリダイレクトを行うことがあり、サーバーはIPに基づいて誤ったバージョンを提供することがあります。すべてが正常に機能していることを確認する唯一の方法は、異なる国から「リアルタイム」でサイトを確認することです。紙の上のマークアップを信じるのではありません。
hreflangとは何か、なぜコード内のタグだけでは不十分なのか
hreflangは、検索エンジンに対して、どの言語または地域のバージョンのページがどのユーザーに向けられているかを伝える属性です。技術的には、これは<head>内またはsitemap.xml内のリンクのセットとして表示されます。各ページはその代替ページを参照します:ru-RU、en-US、de-DEなどです。
問題は、コードバリデーター(Screaming Frog、Ahrefs、Semrush)を通じての確認は、マークアップに書かれていることだけを示すということです。これは、ワルシャワやマドリードの生身の人間があなたのサイトを開いたときに実際に何が起こるのかという主な質問には答えません。必要なロケールへのリダイレクトは機能していますか?CDNがキャッシュのために英語版にリダイレクトしていませんか?ユーザーがモバイルオペレーターを通じてアクセスしている場合、geo-IPは国を正しく特定していますか?
マーケティング担当者やSEO専門家にとって、異なる地域のサイトや特定の国向けのGoogle AdsやFacebook Adsのキャンペーンをテストすることは重要です。hreflangが正しく設定されていない場合、必要な国のユーザーが間違ったバージョンのサイトを見てコンバージョンを失い、検索エンジンがその国の結果に誤ったURLをインデックスする可能性があります。
なぜhreflangは「嘘をつく」のか:5つの典型的な理由
実際には、マークアップとサイトの実際の動作との間に乖離が生じる理由はいくつかあり、そのほとんどはページのコードを見ているだけでは発見できません。
- Geo-IPリダイレクトがhreflangを上書きします。 サーバーはIPに基づいて国を特定し、ユーザーが明示的に別の言語バージョンを直接リンクで開いても、強制的にロケールにリダイレクトします。
- キャッシュされたCDNが古いバージョンを提供します。 Cloudflareや他のCDNは、リクエストの国を考慮せずにHTMLをキャッシュすることがあり、すべてのユーザーが地理に関係なく同じバージョンを受け取ります。
- 言語と地域のコードの不一致。 マークアップには
enと記載されているが、en-GBとen-USを別々に指定する必要があり、最終的にイギリスとアメリカのユーザーが同じバージョンを見ています。 - 自己参照タグが欠如しています。 ページがhreflangリスト内で自分自身を参照していないため、Googleはマークアップを有効なものとして認識しない可能性があります。
- wwwありとなし、httpとhttpsの異なるURLオプション。 タグは一つのプロトコルを指し示しますが、サーバーは実際には別のプロトコルにリダイレクトを提供し、確認のチェーンを壊します。
これらの問題は、必要な国のIPから実際にアクセスした場合にのみ現れます。したがって、テストするための唯一の信頼できる方法は、各ターゲット国の訪問者をエミュレートし、サイトが実際に何を提供しているかを見ることです。
10か国からの確認に必要なもの
hreflangを「リアルタイム」で確認するには、物理的またはプログラム的に各ターゲット国からのIPアドレスを取得し、そのIPに対してサーバーがどのバージョンのサイトを提供しているかを確認する必要があります。これには、3つの実用的な方法があります:
- 必要な国にジオバインドされたプロキシサーバー — 最も柔軟でスケーラブルな方法で、手動確認にも自動化にも適しています。
- アンチデテクトブラウザ(Dolphin Anty、AdsPower、Multilogin、GoLogin、Octo Browser) — 各国ごとに個別のブラウザプロファイルを保存し、クッキーやキャッシュの混乱なしに視覚的に比較するのに便利です。
- コマンドラインツール(curl、httpie)を使用したプロキシ — インターフェースをロードせずにHTTPヘッダー、リダイレクト、サーバーの応答を迅速に確認するために使用します。
10か国からのhreflangテストには、レジデンシャルプロキシが最適です — これらは特定の国の実際のユーザーのIPを使用しているため、geo-IPサービスやCDNはそれらをサイトの通常の訪問者と同様に認識します。データセンタープロキシは、時々ジオサービスのブラックリストに載り、サーバーが「データセンター、国不明」として認識する場合に誤った結果を提供することがあります。
アンチデテクトブラウザでのプロキシ設定
プログラミングスキルのないマーケティング担当者にとって最も実用的な方法は、10か国それぞれのためにアンチデテクトブラウザに個別のプロファイルを作成し、視覚的にhreflangを確認することです。
Dolphin AntyやAdsPowerでの手順は次のようになります:
- 新しいブラウザプロファイルを作成し、国名で名付けます。例えば、ドイツの場合は「hreflang-DE」とします。
- プロファイルの設定で「プロキシ」セクションを開き、
HTTP/SOCKS5タイプを選択します。 - ドイツにジオバインドされたプロキシのデータを入力します:IPまたはホスト、ポート、ログイン、パスワード。
- プロファイルを保存し、確認を待ちます — アンチデテクトブラウザは特定のジオロケーション、タイムゾーン、IPを表示します。
- プロファイルを起動し、検索からではなく直接URLでサイトを開きます。
- どのバージョンが開かれたかを確認します:アドレスバーのURL、コンテンツの言語、ページソースの「ページコードの表示」を通じてのhreflangの値。
- 10か国それぞれのために繰り返し、各国ごとに個別のプロファイルを作成します。
このアプローチは、プロファイルが保存されるため便利で、1週間または1ヶ月後に戻って、CDNの更新や新しいバージョンのデプロイ後にサイトの動作が変わっていないか確認できます。このタスクには、特定の都市にバインドされたレジデンシャルプロキシが適しています。これは、実際の訪問者のより正確なエミュレーションを提供します。
コマンドラインとcurlによる確認
ビジュアルバージョンではなく、HTTPヘッダー、リダイレクト、サーバーの応答を迅速に確認する必要がある場合、ブラウザは常に完全な画像を提供するわけではありません — 一部のロジックは応答ヘッダーに隠されています。これには、プロキシを使用したcurlが便利です。
必要な国にバインドされたプロキシを使用した基本的な確認:
curl -x http://login:password@proxy-host:port \
-I https://example.com/ \
-H "Accept-Language: de-DE"
フラグ-Iは、ページの本文なしで応答ヘッダーのみを表示します。これにより、リダイレクトコード(301または302)、サーバーがリダイレクトする場所を示すLocationヘッダー、およびAccept-Languageがキャッシングに考慮されているかどうかを示すVaryヘッダーを迅速に確認できます。
HTMLを抽出してサーバーの応答内のhreflangタグを見つけるには、-Iを外し、出力をフィルタリングします:
curl -x http://login:password@proxy-host:port \
-s https://example.com/ | grep -i hreflang
このリクエストは、サーバーから返されたHTML内のhreflangに言及するすべての行を抽出します。これは、ドキュメントに期待されるものではありません。リクエストがどの国のプロキシを通じて送信されたかによって結果が異なる場合、サーバーは実際にIPによってコンテンツを変更していることを意味します。単に静的なマークアップでそれを宣言しているわけではありません。
すべての10か国を確認するための自動化スクリプトを簡単に作成できます。プロキシのリストをループし、各リクエストの応答を比較用に別々のファイルに保存します:
for country in de fr es it pl nl br mx jp kr; do
curl -x "http://login:password@${country}.proxy-host:port" \
-s https://example.com/ | grep -i hreflang > "result_${country}.txt"
done
スクリプトを実行した後は、ファイルを比較するだけです — すべてのhreflangタグが同じであれば、サーバーは地理に基づいてマークアップを変更していないことを意味します。これは期待される動作(マークアップが静的で普遍的)であるか、問題である可能性があります(異なる地域ごとに異なるカノニカリゼーションが期待されていた場合)。
ブラウザとDevToolsによる確認
ビジュアル確認とユーザーエクスペリエンスの分析には、設定されたプロキシと開いた開発者ツールを持つ通常のブラウザを使用するのが便利です。これはコードを必要とせず、ユーザーが何を見ているのかを自分の目で確認したいマーケティング担当者に適しています。
手順は次のとおりです:
- ブラウザでプロキシを拡張機能(例えば、FoxyProxy)を通じて設定するか、ネットワークのシステム設定を通じて確認する国のIPを指定します。
- サイトを開き、すぐにF12を押してDevToolsを開き、「Network」タブに移動します。
- ページをリロードし、ドキュメントの最初のリクエストを見つけます(通常、サイトのドメインと同じ名前です)。
- 右側のパネルで「Headers」タブを開き、リダイレクトや
Content-Languageの値があるかどうかを確認します。 - 「Elements」タブを開き、Ctrl+Fを使ってページのソースコード内のすべての
hreflangの出現を見つけます。 - アドレスバーのURLを、あなたがその国で見ることを期待していたURLと比較します。
この方法は、マークアップの技術的な正確さとコンテンツの視覚的な表示の両方を同時に確認する必要がある場合に特に便利です。たとえば、特定の国向けに通貨、日付形式、ローカライズされたバナーが正しく表示されているかどうかを確認することができます。
ジオターゲティングテストに適したプロキシの選び方
すべてのプロキシタイプがhreflangの確認に同じように適しているわけではありません。違いは、ジオロケーションを特定するサービスがIPをどのように認識するか、そしてプロキシが宣言された国にどれだけ安定してバインドされているかにあります。
| プロキシの種類 | ジオ-IPの精度 | 使用するタイミング |
|---|---|---|
| レジデンシャルプロキシ | 高精度、実際のプロバイダーのIP | 特定の国と都市からの生の訪問者の正確なエミュレーション |
| モバイルプロキシ | 高精度、通信事業者のIP | モバイルトラフィックとAMPバージョンの動作確認 |
| データセンタープロキシ | 低い、時々データセンターとしてマークされる | ジオ精度が重要でない場合のcurlを介したヘッダーとリダイレクトの迅速な確認 |
多言語サイトの立ち上げやGoogle Adsでの国際広告キャンペーンの最終確認には、レジデンシャルプロキシまたはモバイルプロキシを使用するのが最適です。これらは、ターゲット国の実際のユーザーが見る結果に最も近いものを提供します。
10か国のhreflang確認チェックリスト
大量確認の際に何も見逃さないよう、以下のリストを10か国それぞれに使用してください:
- この国のIPを持つプロキシが接続されており、ジオロケーションがIPチェッカーで確認されています。
- 直接URLが開かれている(検索からの遷移やリファラーなし)。
- すべてのリダイレクト後の最終URLが確認されており、期待されるロケールと一致しています。
- ページコード内に自己参照のhreflangが自分自身を指している。
- hreflangリストに他の9つの言語バージョンが漏れなく含まれています。
- 言語と地域のコードがISO標準に準拠しています(例えば、
pt-BRではなく、単にptでは、ブラジルとポルトガルを区別する必要があります)。 - コンテンツがブラウザの言語に依存する場合、
Vary: Accept-Languageヘッダーが存在します。 - ページのコンテンツ(通貨、価格、バナー)が宣言された地域に一致しています。
- カノニカルタグ
rel="canonical"が自分自身を指しており、他のロケールを指していない。 - 1週間後に再確認 — CDNのキャッシュが更新された後、結果が予期せず変わっていない。
テスト中の一般的なエラー
プロキシを通じてhreflangを手動で確認する際、マーケティング担当者はしばしば結果を歪めるいくつかの繰り返しのエラーを犯します。
まず第一に、ログインしたアカウントまたは保存されたセッションから確認が行われる場合、サーバーは新しい訪問者が見るものではなく、パーソナライズされたコンテンツを表示する可能性があります。常にインコグニートモードまたは履歴のないクリーンなアンチデテクトブラウザのプロファイルで確認してください。
第二に、プロキシを切り替える際にDNSとブラウザのキャッシュをクリアするのを忘れることがあり、そのため古いバージョンのページが表示され続けることがあります。地理を切り替えるたびにページを強制的にリロード(Ctrl+Shift+R)してください。
第三に、内部セクションや商品カードを無視して、メインページのみをテストすることがあります。実際には、動的に生成されたURLのためにhreflangマークアップが壊れることが最も多いのはそこです。
第四に、すべての10か国に対して同じプロキシを使用し、Accept-Languageヘッダーだけを変更することがあります。これは実際のジオ-IPと同等ではなく、サーバーがIPに基づいている場合、偽陽性の結果をもたらす可能性があります。
結論
ページのコードによるhreflangの確認は、全体の画像の半分しか提供しません。特定の国のユーザーが実際に何を受け取っているのかを理解するためには、その国のIPを通じて訪問をエミュレートする必要があります — プロキシ、アンチデテクトブラウザ、または単純なcurlリクエストを使用して。このアプローチは、静的監査では見つけられない問題を明らかにします:geo-IPリダイレクト、地域を考慮しないCDNキャッシング、言語コードの不一致、壊れる自己参照タグです。
定期的に多言語サイトをテストしたり、10か国以上の広告キャンペーンを準備したりする場合は、レジデンシャルプロキシを試してみることをお勧めします — これらはターゲット国ごとの実際の訪問者の最も正確なエミュレーションを提供し、hreflangを生のユーザーが見るように確認することができます。