エス技研

WordPress、CakePHP、PHP、baserCMSなどの Web系システムを中心に情報を提供します!


Webサイト公開時に重複コンテンツを排除する.htaccessのリダイレクトの設定のまとめ

      2017/03/11

重複コンテンツを排除する.htaccessの設定

 

SEO的視点から重複コンテンツは排除すべき

 
Googleは、同じ内容のページを重複コンテンツとして処理します。
 
「記事の使いまわしもしていないし、コピーコンテンツもないから重複コンテンツなんてないよ」と思っていても、知らず知らずのうちに重複コンテンツを生み出している場合があります。
 
今回紹介する方法は、下記の 4つの対応です。
 

  • 「http」を「https」にリダイレクトする
  • 「www.」を表示するかしないかを正規化する
  • 「index.html」を表示するかしないかを正規化する
  • エックスサーバでサブフォルダを表示させない

 
例えば、
 http://s-giken.net/index.php
 http://s-giken.net
は同じページが表示されますので、内容は全く同じなのですが、URLは違うものとなります。
そのため、これが重複コンテンツとして処理されてしまうわけです。
 
これは意図して重複コンテンツを作ろうとしたのではなく、サーバの仕様、使用している WordPressの仕様などによって発生しうる重複コンテンツなのです。
 
これらの意図せずに発生する重複コンテンツを一つにする(正規化する)ことで重複コンテンツをなくし、Googleから正しい評価を与えてもらえる環境にしよう、ということがこの記事での趣旨です。
 
 

「http」を「https」にリダイレクトする

 
SSLの対応をした場合、URLは
 http://...
から
 https://...
に変わります。
 
ですが、何も設定しない場合は、httpでも httpsでもアクセスすることができますので、重複コンテンツとなってしまいます。
そのため、httpでアクセスした場合は httpsにリダイレクトさせる必要があります。
 
ドキュメントルートにある .htaccessに下記の記述を追加します。
 

 
 

「http」を「https」にリダイレクトする .htaccessの解説

 
上記の .htaccessの記述ですが、内容は非常にシンプルです。
 
1行目は URLをリダイレクトするための処理を開始します、という宣言です。
 
2行目はアクセスが httpsかどうかの判断です。
httpsでのアクセスが offの時、つまり、httpでアクセスしたとき、という条件です。
 
3行目が、リダイレクトをする処理です。
「example.com」の部分を自分のサイトの URLを設定します。また、「www.」やサブドメインがある場合はそれも含めて記述をします。
「^(.*)$」は、正規表現で記述されたドメインを除いた URLの部分で、「$1」の部分に置き換えられて編集されます。
 
「[R=301,L]」は、301リダイレクト(恒久的に URLが変更になったリダイレクト)であり、「L」の部分はリダイレクトをしたらこのリダイレクトルールの適用は終了です、ということを指定しています。
 
また、3行目は、下記のように表現することもできます。
 

 
 

「http」と「https」の両方にアクセスできる場合の Googleの処理

 
httpと httpsの両方の URLが存在する場合の Googleの検索結果への対応ですが、現状では特にペナルティもなく、httpsの方を優先的に出してくれます。
 
そのため、httpと httpsの両方でアクセスできることにメリットがあれば、積極的に httpsにリダイレクトする設定をしない、という判断も可能です。
 
 

SSL対応する場合の WordPressの対応

 
WordPressでは、左メニューの「設定」-「一般」から遷移する「一般設定」の画面に「WordPress アドレス (URL)」「サイトアドレス (URL)」を設定する項目があります。
 
ここにはサイトの URLを入力しますが、SSLに対応するサイトを構築した場合は、個々の設定も https://... のURLになっているかを確認しておきましょう。
 
 

「www.」を表示するかしないかを正規化する

 
多くのレンタルサーバでは、下記のように「www.」があってもなくても同じページを表示するようになっている場合が多々あります。
 
 http://example.com/
 http://www.example.com/
 
「www.」のありなしのどちらでもアクセスできる便利な機能なのですが、SEOの視点から見た場合は、これも重複コンテンツとしてみなされてしまいますので、「www.」を付けるのか、なしでいくのか、それを決めたうえで統一をする必要があります。
 
SEOの視点からは、「www.」があるか、ないかによる違いはありません。
入力が楽、という理由で「www.」なしの方がいいんじゃないか、と思う程度です。
 
この「www.」あり、なしの統一も .htaccessにリダイレクトの設定をすることで対応を行うことができます。
「example.com」の部分は、各自のドメインに変更をしてください。
 

「www.」ありに統一する場合

 

「www.」なしに統一する場合

 
 


 

「index.html」を表示するかしないかを正規化する

 
最初のサンプルで説明しましたが、弊社のコーポレートサイトは、下記のいずれの URLでも同じページが表示されます。
 
 http://s-giken.net/index.php
 http://s-giken.net
 
ですが、Googleは別のページとして認識しますので、これもどちらかに統一しておく必要があります。
 
※弊社のコーポレートサイトで、inxe.phpのありなしの正規化をしていないのは特に理由はありません。単に面倒でやっていないだけです。
 が、ここで記事にしてしまったのでやれなくなりましたね(苦笑)。
 
WordPressの場合は index.phpは表示されませんが、静的な HTMLで組んだサイトの場合は、index.htmlを出すか出さないかは好みの問題です。
出さない方が URLが短くなるのでいいかな、と思う程度です。
 
 
「index.html」を表示するかしないかを正規化する場合の .htaccessのリダイレクト設定は以下のようになります。
 

 
3行目で「index.html」を条件にして「index.html」を表示しないようにする設定になっています。
「index.html」を「index.php」に変更することもできます。
 
ただし、「index.html」と「index.php」の両方の対処をしたい場合は下記のようになります。(2通りの記述の方法があります。)
 

 
※「RewriteCond」は条件を記述するところですが、「[OR]」を指定しない場合は「[AND]」が指定されたものとみなされますので、条件に合致しなくなりますので注意が必要です。
 
 

サブフォルダがサブドメインの場合(エックスサーバ)

 
エックスサーバのサーバ設定では、サブドメインのドキュメントルートは、ドメインフォルダの中にサブフォルダとして設定されます。
 
そのため、下記の 2つの URLが同じページを見ることになります。
 http://blog.example.com
 http://example.com/blog
 
エックスサーバなど一部の共有サーバの場合は、サーバの仕様上サブフォルダとサブドメインが同じ場所となりますので、そのままにしておくとこれも重複コンテンツとなってしまいます。
そのため、サブフォルダ形式ではアクセスできないように制限を行います。(ロリポップサーバなどは全く関係ない話ですが。)
 
そのほかの設定と同じく、.htaccessに下記の情報を設定します。
 

 
 

重複コンテンツに対する正確な理解

 
重複コンテンツを作るとペナルティを受ける、と考えている方は多いのですが、正確にはマイナスのペナルティーを受けるわけではありません。
 
 
例えば、先に説明したとおり、下記のページは同じページが表示されます。
 http://s-giken.net/index.php
 http://s-giken.net
 
これに対して、Googleがどちらかのページにペナルティーを与えるということはありません。
 
ですが、これらの重複コンテンツに限った話ではないのですが、同じような情報が掲載されているページが複数あった場合、Googleは、検索結果の一覧には「一番重要な情報が掲載されている」と判断したページのみを表示しようとします。
 
そのため、重複コンテンツのページは、いずれか 1ページのみ表示がされることになります。
 
「どちらかが表示されるならいいじゃないか」と思うかもしれませんが、同じ内容のページが複数ある場合、Googleの評価もアクセスも複数のページに分散されるため、トータルで見ると検索結果の上位には出てきにくくなる、ということにつながるわけです。
 
分かりやすく数値で表現するなら、正しい処理(正規化)をしている場合は、1ページだけとなりますので、100点の 1ページが存在していると判断されます。
ですが、重複ページが存在すると、50点のページが 2ページ存在していると判断されます。
 
そうなると、100点のページは検索にヒットする可能性がありますが、50点のページではその他のサイトのページの方がポイントが高くなりますので、そもそもどちらも表示されなくなる、ということにつながるわけです。
 
なので、重複コンテンツにつながる事象は排除し、このサイトではこの URLの表現が唯一のものです、ということを明確にすべきなのです。
 
そして、その作業のことを Googleは「正規化」と呼んでいて、サイトの管理者は対応すべきものとして案内しています。

 - プログラミング・Web関連技術

GoogleAdwords

GoogleAdwords

最後までお読みいただきましてありがとうございます。
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

下記の空欄を埋めてください。 * Time limit is exhausted. Please reload CAPTCHA.

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

※入力いただいたコメントは管理者の承認後に掲載されます。

  関連記事

mod_pagespeedカスタマイズで高速化を詳細解説・Google謹製

mod_pagespeedをデフォルトのまま使っていませんか?mod_pagespeedはデフォルトのままでも速い!でも仕組みを理解し設定し直せばより速くなる!

エックスサーバーで独自SSLは永久無料で取り放題。利用方法と理由を解説!

エックスサーバーでは独自SSLが無料でいくつでも設置できるように!しかも、国、都道府県などの数項目の入力と数クリックだけという超簡単!SSL化しない理由がない!

Selenium WebDriver、Pythonをインストールしブラウザ自動操作の環境構築手順のまとめ

ブラウザを自動操作しテストを実行するロボットをselenium WebDriver+Pythonの環境を構築し、動作確認までの手順のまとめ。初心者向けに詳細解説。サンプルソースも。

Beautiful Soupを利用してPythonでスクレイピングを行う環境構築方法の解説

BeautifulSoupはPythonでスクレイピングを行う際に便利なツール。インストール方法も簡単。ただ、事前にpipのインストールが必要でその解説もしてます。

コピーコンテンツ・直リンクの3つの対策Google通報などのまとめ

コピーコンテンツを発見したときにやること!Googleに通報、画像の直リンクを禁止、RSSの全文配信を停止。この対策をしないとあなたのサイトの評価も下がるかも!

EストアのショップサーブのWordPressサービスにメリット無し

ショップサーブのオプションサービスのWordPressを使ってみましたがデータベースには直接触れず使えないサービスでした。

借りてはいけないレンタルサーバ実例4社・アルファメール・WEBアリーナ

餅は餅屋。サーバはサーバ屋が提供するサービスを利用するべきという記事で、具体例 4サービスを例にこんなサーバはNGと紹介しています。

WordPress、Webサイトの表示高速化!画像を軽くする基本的な考え方

画面表示の高速化には画像のファイル容量を小さくする方法があります。ツールを使わなくても小さくするための基本的な考え方を解説します。

Selenium WebDriverでFirefoxをプライベートウィンドウ/Chromeをシークレットモードで起動する方法・言語はpython

Seleniumでは初期状態でブラウザを起動する   Seleniumでブラウザ …

ブラウザのキャッシュを活用するの対策!広告バナーを消して表示を高速化

あなたのサイトが遅いのはバリューコマースのバナーではないですか?バリューコマースのバナーを外すだけでmod_deflateとmod_expiresを設定するより効果があります!