ウェブサイトアドレスの重複
Silktide は、ウェブサイトが単一のウェブアドレスから提供されているかをチェックします。よくある問題は、優先する 1 つのバージョンにリダイレクトせず、同じサイトを複数のアドレス(「www」の有無や、安全な接続と安全でない接続の両方など)で利用できるようにしてしまうことです。
たとえば、次の 4 つすべてから同じサイトを提供できます。
http://example.com/
https://example.com/
http://www.example.com/
https://www.example.com/
ウェブサイトには正規アドレスを 1 つ設定し、その他のバリエーションからはそこへリダイレクトする必要があります。そうしないと、それぞれのバリエーションがサイトの別個のコピーとして扱われます。
重要な理由
複数のアドレスから同一のコンテンツを提供すると、サイトの評価が分散し、実際上の問題が発生します。
- ユーザーはアクセスしたバージョンの URL にリンクするため、バックリンクの検索上の価値が複数のコピーに分散します。
- ソーシャルメディアでのシェアも同様に分散し、重複する URL 間で「いいね」やシェア数が分かれてしまいます。
- 検索エンジンはどのバージョンが正規のものかを推測する必要があり、意図していないバージョンをインデックスに登録する可能性があります。
- 一方のバージョンで設定された Cookie が別のバージョンでは読み取れない場合があり、訪問者がそれらの間を移動するとログインやショッピングカートが機能しなくなることがあります。
- なしで提供されるバージョンでは、訪問者が安全でない接続を使用することになります。
修正方法
- 正規アドレスを 1 つ選びます。通常は
https://バージョンを選び、「www」の有無は好みに応じて決めます。 - ウェブサーバーまたは を設定し、その他すべてのバリエーションから正規アドレスへ恒久的にリダイレクト(HTTP ステータス 301)します。ホスティングプロバイダーのコントロールパネルに設定が用意されていることが多く、そうでない場合も、次のような小規模なサーバー設定の変更で対応できます。
# Apache: すべてを https://www.example.com にリダイレクト
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ https://www.example.com%{REQUEST_URI} [L,R=301]
- 内部リンクとサイトマップを更新して正規アドレスを使用し、訪問者やクローラーがリダイレクトを経由しないようにします。
Silktide によるテスト方法
- ウェブサイトのドメインについて、
http://とhttps://のそれぞれに「www」の有無を組み合わせた 4 つのバリエーションを作成します。カスタムサブドメイン(blog.example.comなど)上のウェブサイトはテスト対象外です。 - 各バリエーションに直接リクエストを送り、リダイレクトがあればその後も追跡して、最終的に到達したアドレスを記録します。自動生成されたクエリ文字列とフラグメントは、異なる移動先として扱われないよう無視します。
- 応答したすべてのバリエーションが同じアドレスに到達した場合、チェックは合格です。
- それ以外の場合は、応答した各バリエーションを実際のウェブブラウザーで再テストします(一部のサイトでは を使ってリダイレクトしており、ブラウザーでしか追跡できません)。そのうえで、両方の種類のリクエストについて、各バリエーションと、そこから移動したアドレスを報告します。
トラブルシューティング
サイトはリダイレクトしますが、チェックに失敗します
すべてのバリエーションがリダイレクトされることを確認してください。よくある漏れは、http://example.com はリダイレクトしているものの http://www.example.com はリダイレクトしていない場合や、異なる移動先(片方はホームページ、もう片方は言語選択画面など)にリダイレクトしている場合です。
ブラウザーではリダイレクトが機能します
JavaScript によるリダイレクトはブラウザーでは機能しますが、サーバー側のリダイレクトよりもクローラーにとって遅く、信頼性が低く、検索エンジンからの評価も低くなります。Silktide では、直接のリクエストとブラウザーで確認できた内容の両方を表示するため、この違いを確認できます。サーバー側の 301 リダイレクトを使用してください。