URLを正規化して、Googleにページの重要度を伝える方法


投稿日:2012年12月25日
  • 8
  • 0



Googleから正当にサイトを評価してもらおう

Googleでは内容が重複するページがある場合、「グーグルウェブマスターツールの解説」にある通り「URLの正規化」を薦めています。

FC2ブログが非常に厳しいペナルティを受けて話題になりましたが、URLを正規化して対策をしましょう。


重複するページとして認識された場合のデメリット

1.ページの重要度が分散する

本来であればリンクやアンカーテキストで加算されるはずのページの重要度が複数のページに分散してしまいます。結果として上位表示されにくくなります。

2.インデックスされない

重複コンテンツと判断されると、そのうちのどれか1ページだけがインデックスに登録されます。そのため検索結果に意図したページが表示されません。

3.ペナルティを受ける

同じような内容のページを大量に作り、特定の内容を詳しく解説しているかのように見せかける、「ブラックハットSEO」と判断されて「ペナルティ」を受ける場合があります。

正規化が必要な状況

上記デメリットを受けないために、URLの正規化が必要な状況を確認します。

「wwwあり」と「wwwなし」のURL

Googleでは「wwwあり」のhttp://www.example.com/と、「wwwなし」のhttp://example.com/を別のページと認識します。

システム上、重複して作られるページ

例えばECサイトの場合、同じ商品の色違いで別ページを作るとほとんどの内容が重複するため、Googleは重複コンテンツ(もしくはバージョン違い)と判断します。
他にもプリント用のページを用意している場合、多言語で異なるページを作成している場合など、システム上どうしても重複するページが出る場合があります。

このように意図していなくてもURLの正規化が必要になることがあります。
このページではこれらの状況に対応する正規化の方法をまとめました。それぞれ状況に合わせて最適な方法で正規化を行なってください。


「.htaccess」を利用したURLの正規化

.htaccess(ドットエイチティアクセス)」という設定ファイルでリダイレクト(転送)させる方法です。wwwありとwwwなしのページをどちらかに統一する場合によく利用されます。

リダイレクトでよく利用するのは、永久的に転送する場合に利用する「301リダイレクト」と、一時的に転送する場合に利用する「302リダイレクト」です。
301リダイレクト」はサイトの引越し時や今回のようなURLの正規化に利用します。
302リダイレクト」はメンテナンスで一時的に別のサーバへ転送する場合などに利用します。

「.htaccess」の設定方法

.(ドット)」から始まるファイル作成するには手間がかかるため、「hoge.htaccess」と名前を付けて、FTPでサーバにアップロードしてから、サーバ上でリネームしてください。既にサーバに「.htaccess」が存在する場合はダウンロードして以下のコードを追記してください。

wwwなしで統一する場合

http://www.example.com」にアクセスした場合に「http://example.com」へリダイレクトする設定。example.comの部分は自分のドメインに合わせて変更してください。

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

wwwありで統一する場合

http://example.com」にアクセスした場合に「http://www.example.com」へリダイレクトする設定。

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

ファイルをアップロードできたら「こちらのサイト」でリダイレクトしているかチェックできます。

ちなみにこのサイトではwwwなしのhttps://oxynotes.com/で統一しています。


ウェブマスターツールの「使用するドメイン」で設定する方法

ウェブマスターツールにある「使用するドメイン」でも、wwwありとwwwなしのドメインを統一することができます。

まずは「サイトの追加」ボタンをクリックしてwwwなしのサイト(http//example.com)を登録してください。

続いてサイトの所有権を確認するために、「Google指定のファイル」をダウンロードしてルートディレクトリ(サイトの公開ディレクトリの一番上のフォルダ)に保存します。保存できたら「確認ボタン」をクリックしてください。

http//example.comの所有権が確認されました。」と表示されればサイトの登録は完了です。
同じ手順でwwwありのサイト(http//www.example.com)も登録してください。

両方登録できたら、どちらかのサイトをクリックして「設定 > 設定」をクリックして「使用するドメイン」で統一したい方のURLにチェックを入れます。(画像の例はwwwなしに統一する場合)

wwwあり・なしの両方を登録しないと以下のエラーが出て登録できないので注意してください。

使用するドメインを設定する場合は、http://www.example.com/ の所有権を確認してください。http://www.example.net/ を確認してください。


canonicalを利用してURLを正規化する方法

canonical(カノニカル)」をページに指定する方法です。カノニカルとは正規化の意味で、重複したページに優先させたいURLを記述することで、優先順位を指定します。あらかじめ重複するページがわかっている場合は、この方法がお勧めです。

設定方法

例として日本語版「http://example.com/ほげ」と英語版「http://example.com/hoge」がある場合、日本語版の優先順位を上げる方法を解説します。

日本語版の優先順位を上げたい場合は「英語版のページ」の「<head>~</head>」の間に以下のコードを追加します。

<link rel="canonical" href="http://example.com/ほげ"/>

こうすることで上で設定した「301リダイレクト」で「http://example.com/ほげ」に転送したのと同じ扱いになります。そのためページの重要度は全て「canonical」で指定したページに引き継がれます。

この重要度が引き継がれることを利用して、有名な投稿サイトでbody内に「canonical」を追加しても全く意味が無いことが実証されています。
また特定のページを上位に持っていくために重複していないコンテンツで「canonical」を記述するのは禁止されています。

もしも似たような手法でリンクジュースが得られたとしても、このような小手先のブラックハットSEOはGoogleの最も嫌うところなので、必ず対応されます。
パンダアップデートの際に、機械的なリンクでペナルティを受けたサイトが大量に出たという教訓から学ぶべきです。

HTTPヘッダーでcanonicalリンクを指定する方法

HTTPヘッダーを編集するにはサーバの管理者権限が必要で、メンテナンス性を考えるとあまり現実的でない方法です。Googleの解説では以下のようにすると設定できると解説しています。

設定方法

Link: <http://www.example.com/downloads/white-paper.pdf>; rel="canonical"

ウェブマスターツールでサイトマップを送信する方法

Googleへサイトマップを送信することで正規化を行う方法です。通常サイトマップに全てのページを登録して送信しますが、重複するコンテンツをサイトマップから削除します。そうすることで、送信されたURLの重要度を上げることができます。
この方法はシステムの変更を行えない場合に有効な方法です。

タグやカテゴリ、月別のアーカイブページなど、似たような構成のページが大量に作成されるCMSの場合は、あえてそれらのページをサイトマップに登録しないことで、他のページの優先順位を上げることができます。

設定方法

SEOをするにあたってサイトマップの送信は基本です。正規化の有無にかかわらず、登録しておくことをお勧めします。ウェブマスターツールのメニューから「最適化 > サイトマップ」で追加することができます。


リンクの記述法における「相対リンク」と「絶対リンク」

せっかくURLの正規化を設定したので、サイト内でリンクを記述する場合にも正規化を念頭に置いて記述するようにしてください。また、canonicalの指定やリンクの記述には絶対リンクが推奨されています。

相対リンクは「./hoge.html」と省略する記述法で、
絶対リンクは「http://example.com/hoge.html」と省略せずに記述する方法です。

Googleではウェブマスターツールの解説

可能な場合は、相対リンクではなく絶対リンクを使用します

と絶対リンクを推奨しています。




現在のページに関連する記事

URLを正規化して、Googleにページの重要度を伝える方法 フィルタで解決!Google Analyticsでfb_xd_fragmentが出る場合の対処法
URLを正規化して、Googleにページの重要度を伝える方法 Apacheのmod_rewriteモジュールの使い方を徹底的に解説
URLを正規化して、Googleにページの重要度を伝える方法 Webサービスの最前線で動作するApache HTTP サーバの初期設定
URLを正規化して、Googleにページの重要度を伝える方法 Google Adsenseで配信される詐欺的なサイトのブロック用URLまとめ
URLを正規化して、Googleにページの重要度を伝える方法 Google Feed APIの代替手段としてjQueryだけでRSSを表示する方法
URLを正規化して、Googleにページの重要度を伝える方法 iOSのWeb Clip機能で使うWebpage Iconのまとめと、作成方法
URLを正規化して、Googleにページの重要度を伝える方法 Google Hosted Librariesを利用して相互RSSを作る方法

おすすめの記事

初めてでも理解できるようになる「Google Chrome機能拡張の開発」

初めてでも理解できるようになる「Google Chrome機能拡張の開発」

コピペから脱出!iptablesの仕組みを理解して環境に合わせた設定をしよう

コピペから脱出!iptablesの仕組みを理解して環境に合わせた設…

ユーザーの環境変数を設定するbashの設定ファイルと、カスタムプロンプトについて

ユーザーの環境変数を設定するbashの設定ファイルと、カスタム…

rsyslogを利用したログファイル作成と、logrotateを利用したログのローテーション

rsyslogを利用したログファイル作成と、logrotateを利用したロ…

WordPressに「トップへ戻る」ボタンを設置して、フックの仕組みについて学ぼう

WordPressに「トップへ戻る」ボタンを設置して、フックの仕組み…

W3 Total Cacheの設定を通して学ぶ、WordPressを高速化するキャッシュの仕組み

W3 Total Cacheの設定を通して学ぶ、WordPressを高速化するキャ…

fluentdとNorikraでDoS攻撃を遮断し、メールで通知する方法

fluentdとNorikraでDoS攻撃を遮断し、メールで通知する方法

Linuxでサーバを構築するに当たって必要になる基礎知識

Linuxでサーバを構築するに当たって必要になる基礎知識


いただいたコメントなど

  1. ひろ のコメント:

    とても参考になりました。
    一点ご質問なのですが、サーチコンソールにはwww有り無しを登録しますが、サイトマップの送信は、正規化した方のアドレスのみの送信でよいのでしょうか?

    • oxy のコメント:

      正規化されたものだけを送信してください。
      両方送信しても正規化していれば問題ないと思いますが
      もし重複コンテンツだと認識されればペナルティを受けます。

コメントを残す

コメントは認証制のため、すぐには反映されません。

プログラミングに関する質問は「日本語でプログラミングの悩みを解決するQ&Aサイト sukegra」をご利用ください。