- 最終更新日
- SEO
URLを正規化しよう!「.htaccess」と「canonical」の役割と記述方法をご紹介
ホームページを公開したら「URLの正規化」という作業が必要です。
正規化っていう言葉を聞いても何の事だかピンと来ないと思いますが、言葉の意味は考えなくて良いです(笑)。ザックリ言うと「ルールに基づいた形にする」って事です。
チェピレアを例に説明すると「正規化」してない状態では「https://chepirare.com/」でも「https://www.chepirare.com/」でもどちらでもアクセスできるんですが、こうなるのはマズイんですよねぇ。
目次 [閉じる]
正規化とは
検索エンジンでは「https://chepirare.com/」でも「https://www.chepirare.com/」でもアクセスできるという事で「同じページが2ページもある」と認識してしまいます。
これは非常にマズイです。同じページが複数ある事によってページの評価が分散されてしまうんです。これは検索順位にも関わってくる問題なのでその誤解を解いてあげないといけない。
そのためにはURLの正規化をおこなって検索エンジンに正しい情報を伝える事が重要です。
正規化の方法は「.htaccess(ドット・エイチ・ティー・アクセス)」と「canonical(カノニカル)属性」で指定する2パターンがあります。
これらは2つとも設定しておきましょう。「canonical」に関しては「canonical属性で正規化する」で説明しますので、まずは「.htaccess」について見ていきます。
「.htaccess」とはサーバーの動作をフォルダ単位で制御するファイルです。ファイル名はそのまま「.htaccess」となります。
メモ帳やテキストエディタで簡単に作る事ができますので保存の時にファイル名を「.htaccess」とすればOKです。
「.htaccess」の設置場所は上記のようにルートディレクトリの直下です。次項から条件に合わせた記述内容をご紹介します。
.htaccessで正規化【index.html(.php)を無しに設定】
ひとつ目は「index.html」や「index.php」を無しに設定します。「https://chepirare.com/index.html」を「https://chepirare.com/」にするという事です。
URLはできるだけ短くわかりやすくする事が重要になってきますので「index.html」や「index.php」は表示しない方が良いです。
.htaccess
- <IfModule mod_rewrite.c>
- RewriteEngine on
- RewriteCond %{THE_REQUEST} ^.*/index.(html|htm|php)
- RewriteRule ^index.(html|htm|php)$ https://chepirare.com/$1 [R=301,L]
- </IfModule>
チェピレアではURLをSSL化(https://~)としているので3行目は「RewriteRule ^(.*)index.(html|htm|php)$ https://chepirare.com/$1 [R=301,L]」としています。
ご自身のサイトがSSL化していない場合は「RewriteRule ^(.*)index.(html|htm|php)$ http://ご自身のドメイン/$1 [R=301,L]」としてお使いください。
.htaccessで正規化【wwwの有無を設定】
ふたつ目は「www」の有無を設定します。「https://www.chepirare.com/」にするか「https://chepirare.com/」にするかという事です。
「www」というのは「World Wide Web(ワールド・ワイド・ウェブ)」の略称で僕らは「ダブ・ダブ・ダブ」って読んだりします。
これは気持ちの問題です(笑)。有りでも無しでもどちらでも構いません。ちなみにGoogleをはじめ大手の会社や組織は「www」を付ける事が多いです。
.htaccess
- <IfModule mod_rewrite.c>
- RewriteEngine on
- # www有りに設定
- RewriteCond %{HTTP_HOST} ^chepirare\.com$
- RewriteRule ^(.*)$ https://www.chepirare.com/$1 [R=301,L]
- # www無しに設定
- RewriteCond %{HTTP_HOST} ^www\.chepirare\.com$
- RewriteRule ^(.*)$ https://chepirare.com/$1 [R=301,L]
- </IfModule>
ご使用の際は「chepirare\.com」と「chepirare.com」の部分をご自身のドメインに変更すればOKです。
ちなみにチェピレアは「www」無しの設定をしています。理由はURLが短くなってスッキリするから(笑)。ここはご自身の好みで決めてもらって構いません。
.htaccessで正規化【SSL化後の設定】
みっつ目はSSL化した後の設定です。「http://chepirare.com/」を「https://chepirare.com/」にしていく作業です。
これからのホームページはできるだけSSL化(https://~)にする方が良いです。その方がGoogleも推奨していますし、検索順位にも関係してくるかなといったトコロです。
.htaccess
- <IfModule mod_rewrite.c>
- RewriteEngine on
- RewriteCond %{HTTPS} off
- RewriteRule ^(.*)$ https://chepirare.com/$1 [R=301,L]
- </IfModule>
今では無料でSSL化をおこなってくれるレンタルサーバーがありますのでご自身のサイトもぜひSSL化してみてください。
ご使用の際は上記タグをコピペして「chepirare.com」の部分を設定されるドメインに変更してください。
canonical属性で正規化する
「canonical」というのは各ページのheadタグ内に設置します。
ユーザーが見ているモニター上には表示されない部分でクローラーに伝えるページ情報です。ワードプレスであればプラグインを使えば自動で記述されたりします。
ワードプレスを使わない静的なサイトなら全ページのhead内に記述しなければいけないのでしっかりと設定していきましょう。
チェピレアのトップページの場合
.htaccess
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="UTF-8">
- <title>コピペで作れるホームページ | 初心者でも簡単に作れるホームページを紹介! | チェピレア</title>
- <link rel="canonical" href="https://chepirare.com/">
- </head>
今ご覧の記事ページの場合
.htaccess
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="UTF-8">
- <title>URLを正規化しよう!「.htaccess」と「canonical」の役割と記述方法をご紹介 | チェピレア</title>
- <link rel="canonical" href="https://chepirare.com/seo/seikika/">
- </head>
余計なタグは省きましたが上記のようにhead内にcanonical属性を記述するだけでOKです。
- <link rel="canonical" href="ページのURL">
大事なのはcanonical属性のlinkタグを記述するコト。hrefにそのページのURLを記述してやれば正確な情報をクローラーに伝える事ができます。
ホームページは公開した後も色々と設定をしなければいけないので面倒ですね(笑)。でも大切な事なのでひとつずつこなしていきましょう。