SEO

知らない間にコンテンツ重複?リダイレクトで正規化しよう

この記事はSEOにも気に掛けるウェブ担当者向けの記事です。

サーバーの設定により、クローラーが同じページを複数インデックス登録してしまうことをご存知ですか?コンテンツが重複してしまうと、ページの評価が正しく行われず、Googleの検索結果にも影響が出る可能性も。

この記事では、Googleの重複コンテンツへの影響を確認し、重複が発生するパターンとその対応方法をご紹介します。

複数の同じページが登録される理由

サーバーの設定により、www ありと www なし、http と https のような異なるURLが公開されます。

以下がその例です。

http://example.com
https://example.com
https://example.com
https://www.example.com
https://example.com/
https://example.com/index.html

実際に表示されるページは同じであっても、URLが異なるため、クローラーは別のページとして認識します。これにより、複数の同じページがGoogleに登録されるのです。

重複コンテンツの作成を避ける

では、同じページがインデックスに登録されることは望ましくないのでしょうか?サーチコンソールヘルプでは以下のように記載されています。

ユーザーが検索結果で実質的に同じコンテンツを何度も見ることになり、ユーザーエクスペリエンスの低下につながります。

Google は、固有の情報を持つページをインデックスに登録して表示するよう努めています。

重複コンテンツの作成を避けるhttps://support.google.com/webmasters/answer/66359?hl=ja

Googleはユーザエクスペリエンスの低下に繋がるとして重複したコンテンツの配信を嫌います。同じ内容が書かれているページが複数あると混乱しますよね?

ウェブ担当者としては、こういった重複するURLを正規化してあげる必要があります。

正規化すべきURLと設定方法

同じコンテンツが複数のページに含まれる場合、どれか1つのURLを正規のページとして設定します。これを正規化と呼びます。正規化には複数の方法がありますが、今回の場合はリダイレクトさせるのが一般的です。

リダイレクトすべきパターンは以下です。

  • 通信プロトコルをhttpsに統一する
  • www の有無を統一する
  • index.html の有無を統一する

ひとつずつ解説していきます。なお、詳しい設定方法は各サーバーごとに異なるためマニュアルを確認してください。

通信プロトコルをhttpsに統一する

レンタルサーバーにドメイン設定した時点ではhttp通信のみSSL設定をすると常時SSL化されたURLとそうでないURLとふたつ作成されます。SSL設定している方も多いですが、そのままだとどちらにもアクセスできる状態です。

http://example.com
https://example.com

「http://example.com」にアクセスされたら「https://example.com」にリダイレクトする設定を行いましょう。


・エックスサーバーの設定例https://www.xserver.ne.jp/manual/man_server_fullssl.phphttps://communityserver.org/contents/4515/

・mixhostの設定例
https://communityserver.org/contents/4515/

「.htaccess」ファイルに以下を追記します。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>

httpでアクセスし、httpにリダイレクトされたら設定完了です。

www の有無を統一する

お使いのレンタルサーバーにドメインを設定するとwwwつきとwwwなしのドメインを利用することができます。どちらでも良いですが、どちらかひとつに統一しましょう。

https://example.com
https://www.example.com

wwwのリダイレクトはサーバー側で設定されている場合があります。

このブログはmixhostを利用していますが、特に設定せずとも「https://www.state-action.net」から「https://state-action.net」にリダイレクトされました。

index.html の有無を統一する

HTMLファイルでホームページを作成した場合に設定が必要です。

https://example.com/
https://example.com/index.html

実は「https://example.com/」にアクセスするとディレクトリ配下のindex.htmlが表示される仕組みになっています。つまり実際には「https://example.com/」にアクセスすると「https://example.com/index.html」にアクセスしています。どちらのURLでも同じファイルが表示されますが、URLは異なるためどちらかに統一しましょう。

参考サイト:index.html「あり・なし」のURL正規化 – 301リダイレクト応用編

「.htaccess」ファイルに以下を追記します。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{THE_REQUEST} ^.*/index.(html|php)
RewriteRule ^(.*)index.(html|php)$ https://%{HTTP_HOST}/$1 [R=301,L]
</IfModule>

必須ではないがウェブ担当者なら設定したい

リダイレクト設定は必須ではありませんが、複数のURLの存在により、ユーザが混乱するよりは設定しておいた方が良いでしょう。特にSSLはセキュリティの観点でも設定すべきですので、http へのアクセスは https にリダイレクトさせましょう。