この記事ではURLを正規化する方法を解説します。
正規化の意味は以下の通りです。
正規化(せいきか、英語: normalization)とは、データ等々を一定のルール(規則)に基づいて変形し、利用しやすくすること。
参考: 正規化 | Wikipedia
目次
URLの正規化とは
URLの正規化は『コンテンツ(記事やページ)は同じでURLが異なる』場合、どれが正規のページなのかを検索エンジンがわかるようにすることです。
『wwwのありなし』『モバイル用サイトとPC用サイトが別々にある』といったものが代表的な例です。
wwwのありなし
- http://example.com/
- http://www.example.com/
モバイル用サイトとPC用サイトが別々にある
- http://example.com/pc/
- http://example.com/phone/
URL正規化の方法は『あるURLにアクセスした時に正しいURLに転送する』『検索エンジンに対し、HTMLタグを使用して正しいURLを宣言する』『正しいURL以外をクローラーが巡回しないようにする』といったアプローチがあります。
正規化されていないURL例
同一ページでURLが違うよくある事例として、下記のケースが考えられます。
パラメータの有無
- https://example.com/
- https://example.com/?sc_e=1234
「www」のありなし
- https://www.example.jp/
- https://example.jp/
「index.html」のありなし
- https://example.com/index.html
- https://example.com/
URL末尾の「/」ありなし
- https://example.jp/
- https://example.jp
SSL化(暗号化)されたURLとされていないURL「s」のありなし
- https://example.net/
- http://example.net/
PC用とモバイル用で違うアドレスを採用している
- https://example.com/pc
- https://example.com/mobile
URL正規化の方法
URLを正規化する代表的な方法は以下の3つです。
- 301リダイレクト
- canonical
- サーチコンソール
正規化するべきURL内容によって上記3つを使い分けます。
301リダイレクトでURLを正規化する方法
301リダイレクトは『恒久的な転送処理』を行う手法です。
http://example.com/old/にアクセスがあった
↓ 301リダイレクト
http://example.com/new/
上記の場合、Googleのクローラー(世界中のWebサイトを巡回しているシステム)もoldからnewの方へ転送されます。
oldの内容は私たちもGoogleクローラーもアクセスできませんし、読むことができません。
301リダイレクトでGoogleはnewのみを評価します。
301リダイレクト処理をするURLは以下の通りです。
- wwwありなし
- index.htmlありなし
- URL末尾の「/」ありなし
- SSL化適用/不適用
301リダイレクトの使い方
301リダイレクトを設定する事前準備として、Webサーバが次の内容を満たしているか確認してみてください。
- .htaccessファイルが使用できる 例:さくらインターネット、Xseverなど
- WebサーバソフトウェアがApache
- mod_Rewriteという機能をサポートしている
代表的なレンタルサーバーは上記を満たしています。確認は後にして、「まずはやってみる」でも良いかと思います(やってみる場合はテスト用環境で)。
・新しいドメインに301リダイレクトする場合
# example.com/をご自身のURLに変更してください。 Redirect permanent / http://example.com/
・個別のページをリダイレクトする場合
# /1234/1.htmlが旧URL、http://example.com/abcd/a.htmlが新URLです。 Redirect permanent /1234/1.html http://example.com/abcd/a.html
・httpにアクセスがあったらhttpsに転送
RewriteEngine on RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
canonical
canonicalは正規のURLであることをHTMLタグに書いて、Googleクローラーに「こちらが正規のURLですよ」伝えてあげる処理です。
301リダイレクトは『転送処理』です。転送元のURLにアクセスできません。ただ、コンテンツは全く同じだけど、どちらもアクセス出来なければならない場合があります。
例えば以下のような場合です。
- http://example.com/bag-black/
- http://example.com/bag-white/
上記はECサイトで色違いのバッグを掲載している場合です。両方にアクセスが出来ますが、色以外のコンテンツは重複してしまいます。
どちらもアクセス可能で且つコンテンツが重複している場合はcanonicalを使います。
canonicalタグのサンプルコード
canonicalタグはソースコードのヘッダーにリンクタグを使って指定します。
Googleはcanonicalタグの設定方法例として下記を提案しています。
例:正規 URL として以下を設定する場合:
https://example.com/dresses/green-dresses重複するすべてのページを rel="canonical" リンク要素でマークします。rel="canonical" 属性を指定した <link> 要素を、重複ページの <head> セクションに追加して、正規ページを指すようにします。この例では次のようになります。
<link rel="canonical" href="https://example.com/dresses/green-dresses" />正規ページにモバイル版がある場合、rel="alternate" リンクを追加してモバイル版のページを指すようにします。
<link rel="alternate" media="only screen and (max-width: 640px)" href="http://m.example.com/dresses/green-dresses">
正規のURL: https://example.com/dresses/green-dresses
重複ページのURL: https://example.com/dresses/white-dresses
『重複ページのURL』に以下を記載します。
# 重複ページの方に記載 <link rel="canonical" href="https://example.com/dresses/green-dresses" />
下の方に書かれているalternateタグは「モバイル用サイトが別にあるよ」ということをGoogleに伝えます。
ややこしいですが、alternateタグは『正規のURL』の方に記載します。
# 正規のURLに記載 <link rel="alternate" media="only screen and (max-width: 640px)" href="http://m.example.com/dresses/green-dresses">
逆にモバイルページ(http://m.example.com/dresses/green-dresses)の方はcanonicalを指定します。
# モバイルページの方に記載 <link rel="canonical" href="https://example.com/dresses/green-dresses" />
サーチコンソール
Google Search Consoleでは以下の2点を行うことができます。
- 優先ドメインの設定
- URLパラメータ
こちらの2つを見ていきましょう。
優先ドメインの設定は廃止
サーチコンソールの機能として「設定」→「サイトの設定」から「www」があるURLとないURLのいずれかを優先ドメインとする設定がありました。
しかし、Googleは2019年6月に、この設定を廃止すること、「www」のあるURL、ないURLの優先をGoogleが判断することを正式発表しました。
正規化する方法の1つとして優先ドメインの設定を行っていた方は、301リダイレクトやcanonicalタグの設定を念のため見直しておくのがおすすめです。
URLパラメータ
Google Search Console(サーチコンソール)でURLパラメータの設定が可能です。
Googleクローラーの制御を行います。
ただし、URLパラメータ設定は上級者向けの機能です。Googleも以下の要件を満たしている場合を推奨しています。
- サイトのページ数が1000ページをオーバーしている
- URLパラメータのみが違う重複ページが多く残っている
- 重複ページがインデックス登録されていることをログから確認できる
- URL パラメータ ツールの使い方やSEO について豊富な経験をお持ちの上級者ユーザーである
URLの正規化がSEOに効果的である理由
そもそも、なぜURLを正規化する必要があるのでしょうか。
結論から言うと、ユーザーに親切でSEO上でも正しい処理だからですね。
SEOでは以下の2つを改善することができます。
- 正規化をするとGoogleの評価が分散しない
- 正規化をすると重複判定を受けない
順に説明していきましょう。
正規化をするとGoogleの評価が分散しない
URLの正規化がSEOに影響すると考えられる理由として評価の分散が挙げられます。
例えば100人が見たいと思うコンテンツが5つのURLに分散している時に、URLの正規化を行えば100人全員が同じURLのページにたどり着けます。
しかし、正規化を行わなければ、100人が別々のURLにアクセスするためアクセス数が分散してしまいます。
Googleクローラーも最大で4ページ余分に巡回しなければならなくなってしまいます。Googleにも不親切です。
評価すべきページは1ページに集約しましょう。
正規化をすると重複判定を受けない
Googleが2012年に行ったパンダアップデートは低品質なコンテンツの順位を下げるアップデートでした。
低品質なコンテンツの1つに『重複コンテンツ』があります。
複数の同じコンテンツが存在する場合、低評価の判定を受けて順位が上がらない(下げられる)可能性があります。
複数のURLで同じページにアクセスできる場合や、別個のページのコンテンツが類似している場合(たとえば、ページにモバイル版と PC 版の両方がある場合)、こうしたページは Google で同じページの重複と見なされます。
出典: 重複した URL を統合する - Search Console ヘルプ
重複コンテンツがあると、Googleはどれがユーザーにとって最適なページであるかの判定が困難になります。
コンテンツ同士が足を引っ張りあって正当な評価を受けられないこともあります。
低品質なコンテンツと判定されないためにも、まずはURLの正規化を行っておきましょう。
まとめ: 正規化は行うべき
URLの正規化というSEOでもちょっとテクニカルな部分を解説しました。
SEOでは「これやった方がいいの?」「やらない方がいいの?」と判断が難しいものがあります。特にライティングの話になるとこの手の判断は難しくなってきます。
URLの正規化に関しては「やった方がいい」になります。
理由は今まで説明してきた通りです。ユーザーにもGoogleにも親切だからです。
URLの正規化は必ず行っておきましょう。