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

www.example.com/“と”www.example.com/index.html“、人間のユーザーにとっては同じページでも、サーチエンジンにとっては、まったく別のページです。
(余談ですが、example.com,example.net,example.orgは、例を出すときに使用するために予約されたドメインです。例えのドメインを示すときには、これらを使いましょう)

異なるページ(=異なるURL)ということは、被リンクもそれぞれ別のページへ向けられたものとして処理され、合算されるわけではありません。
たとえ、実際にはまったく同一のページへ張られていてもです。

SEO塾の石崎さんによれば、Yahoo!ではindex.htmlがある場合と、ない場合(スラッシュで終わる場合)では、インデックスに問題が生じるケースがあるとのことです。

Yahoo!検索でindex.html表示、スラッシュエンドでインデックスされず、またはURLのみ

Yahoo!検索でおかしな現象を見掛けた。

SERPs(検索結果)で、index.html(またはindex.htm)が表示されている。

そして特に、サイトルートよりも、第二階層以下のディレクトリインデックスで問題が生じているようだ。

また、Googleでは、www.exmample.com/とwww.example.com/index.htmlではPageRankが変わってくる場合もあります。

サーチエンジンは改良が進み、index.htmlありとなしを同一ページとして認識するようになってきてはいます。
index.htmlありとなしでも、同じPageRankを表示するページもあります。

ただし、完全ではありません。

そこで、index.htmlありとなしを同一化する方法(専門用語で、“正規化(Canonicalization)”といいます)を、紹介します。

.htaccessファイルによる301リダイレクトを利用します。

301リダイレクトが分からない人は、先にこちらを読んでから戻ってきてください。
『301リダイレクトの設定方法』

「http://www.exmample.com/」と「http://www.example.com/index.html」を正規化し、「http://www.exmample.com/」にそろえる時は、.htaccessに次のように記述します。

Options +FollowSymLinks
RewriteEngine on
RewriteCond %{THE_REQUEST} ^.*/index.html
RewriteRule ^(.*)index.html$ http://www.example.com/$1 [R=301,L]

※www.example.com内のすべてのディレクトリで、「/index.html」が「/」に正規化されます。

もし、index.htmlありとなしの両方でインデックスされたサイトがあれば、上記の301リダイレクトで両者を統一しておきましょう。

よく利用されるもう1つの301の正規化、「wwwあり・なし」の統一は過去のエントリを参照してください。
301リダイレクトを使った「WWWあり」と「WWWなし」の統一