※当記事内には、商品プロモーションを含む場合があります
読んでほしい記事
.htaccessを利用したURLの正規化でSEO対策

.htaccessを用いたURLの正規化について

「URLの正規化」とは、同一ページのURLを統一する為の対策です。
同じページなのに、複数のURLが存在すると、Googleに別々のコンテンツとみなされてしまう可能性もあります。

例えば、"index.htmlの有り無し""www有り無し"などです。

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

これらの4つのURLは同じページを指していますよね。

でも、何も対策をしていなければユーザーによって「https://example.com/」へアクセスしたり「https://example.com/index.html」へアクセスしたりと、アクセスするURLがバラバラになってしまいます。
そうなると、同一ページなのにGoogleの評価が分散されてしまう可能性も出てきます。

 

また、http://~とhttps://~が混在するのも同様に良くないですよね。
この場合には、"HTTPをHTTPSへリダイレクト"させて、常時SSL化の設定も必ず行っておきましょう。

そこで、今回はいずれかのURLへ統一するための.htaccessの記述方法をまとめておきます。

 

最近のWEB制作の流れからすると、URLは「https://example.com/」の形に統一するのが一般的です。

古いWEBサイトだと、「https://example.com/index.html」や「https://www.example.com/」に統一されている場合も多いです。
ですが、これから新しく作るWEBサイトであれば、「https://example.com/」に統一するようにしましょう。

 

index.htmlやindex.phpをスラッシュ終わりに統一

まずは、index.html(index.php)の付いたURLを、スラッシュ終わりに統一する方法です。

 

  • index.htmlをスラッシュ終わりに統一
RewriteEngine On
RewriteCond %{THE_REQUEST} ^.*/index.html
RewriteRule ^(.*)index.html$ http://example.com/$1 [R=301,L]
  • index.phpをスラッシュ終わりに統一
RewriteEngine On
RewriteCond %{THE_REQUEST} ^.*/index.php
RewriteRule ^(.*)index.php$ http://example.com/$1 [R=301,L]
  • index.html、index.phpをまとめてスラッシュ終わりに統一
RewriteEngine On
RewriteCond %{THE_REQUEST} ^.*/index.(html|php)
RewriteRule ^(.*)index.php$ http://example.com/$1 [R=301,L]

これにより、「https://example.com/index.html」のURLを「https://example.com/」へリダイレクトすることができます。

 

wwwあり、なしを統一

次は、wwwあり、なしのURLをどちらかに統一する方法です。

因みに、最近はwwwなしで運営しているWEBサイトが多いです。
ですが、既にwwwありで運営している場合には、無理にwwなしに統一するのは避けましょう。

 

  • wwwなしに統一
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.sample\.com
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]
  • wwwありに統一
RewriteEngine on
RewriteCond %{HTTP_HOST} ^example\.com
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]

 

「http://~」へのアクセスを「https://~」へ統一

今では、「http://~」へのアクセスは「https://~」へリダイレクトさせて統一させるのが一般的になってきました。
いわゆる「常時SSL化(SSL通信を強制化)」の設定と同じ内容になります。

 

#SSL通信設定
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

 

ページナビ(ページング)にも要注意

WEBサイトによっては、ページナビを設定している場合も多いです。

この場合、2ページ目のURLは、「https://example.com/2/」となります。

これは問題ないですよね。

ですが、1ページ目のURLには、「https://example.com/1/」と「https://example.com/」の2つが存在することになります。

細かいところですが、こういったURLの分散も起こらないように注意しましょう。

 

canonicalタグを用いた正規化方法もあり

URLの正規化には、canonical(カノニカル)というタグを用いた方法もあります。

記述方法は簡単で、<head>~</head>内に以下のようにcanonicalタグを記述するだけです。

<head>
<link rel="canonical" href="https://outswan.com/">
</head>

今回は、canonicalタグについての説明はこのくらいにしておきます。

ですが、canonicalタグもよく利用されるので、覚えておきましょう。

 

設定後の注意点

.htaccessの設定を行った後は、必ず各ページのURLへアクセスして、設定が上手く行えているかのチェックを行いましょう。

仮に、設定に失敗していると、ページが正常に表示されなくなる不具合が発生する可能性もあります。
設定後は、必ずチェックを行うようにしましょう。

 

まとめ

今回は、.htaccessを利用したURLの統一方法についてまとめました。

同一ページにも関わらず、複数のURLが存在するはSEO上は良くないです。
必ず、"index.htmlありなしの統一"や"wwwありなしの統一"、"HTTP→HTTPSへのリダイレクト"を行って、アクセスできるURLを一つに統一しておきましょう。

 

この記事を書いた人
userimg
ダッチ
    プログラミング15年、WEB制作15年以上になります。

    ブログ・WordPress・レンタルサーバーに関して分からないことがあればご質問ください!
    ご質問・ご相談は無料で受け付けています。

    https://dacchi.hp.peraichi.com/

    WEB制作に関するお仕事の依頼は、こちらのホームページからお願いします。

    丹波のホームページ屋さん

    Twitterでフォローしよう

    おすすめの記事