wwwあり、なし等のURLの正規化方法 canonical属性の使い方

2016年9月26日
はてなブックマークに追加

XMLサイトマップ作成ソフト Sitemap Creator

canonical属性でURLを正規化する事で、重複する、または類似のコンテンツのリンクのシグナルを統合する事ができます。
具体的には、以下のようなURLごとの被リンク評価を一つのURLにまとめる事ができます。


wwwの有無、index.html/phpの有無、http/httpsの選択、パラメータ付URLによって表示されるページは同じであっても、URLのパターンは複数考えられます。
Googleにとっては、以下のURL(allegro-inc.comを例に)は同じコンテンツであっても異なるページとして認識してしまう事もある為、canonical属性でURLを正規化していないとリンクやページランクに関する検索エンジンからの評価を分散させてしまう事に繋がります。


wwwの有無

www.allegro-inc.com

allegro-inc.com


index.html/phpの有無

www.allegro-inc.com

www.allegro-inc.com/index.php

www.allegro-inc.com/index.html


http/https

http://www.allegro-inc.com

https://www.allegro-inc.com


パラーメータの有無

www.allegro-inc.com/?ref=blog

www.allegro-inc.com


主にウェブサイト内のリンクの張り方によって、GoogleがインデックスするURLも変わります。また、外部のウェブサイトから上記のように様々な記述でリンクを張られる事もありますので、評価を分散させない為にcanonical属性を設定し、URLの正規化を行います。


URLの正規化とは、検索エンジン向けに正しいURLを知らせ、統一して認識してもらう為の記述です。URL正規化設定については、Googleの、ウェブマスターツールヘルプでも解説されていますので、ご確認ください。





URLの正規化の意味と効果

2009年の3月にGoogleをはじめとする各検索エンジンは、URL正規化タグをサポートすることを発表しました。
この正規化タグはhead内に設置するタグで、重複コンテンツの評価を一つのURLにまとめることができます。


URLが正規化されていないと複数のURLのパターンで検索エンジンにクロールされた際に、各URLが別々に評価されてしまう場合があります。
例えば以下のように同じコンテンツのページが様々なURLでインデックスされると、各URLごとにリンク評価が蓄積します。そこでcanonical属性を記述する事で一つのページに評価をまとめる事ができます。


canonicalはカノニカルと発音し、英語では「正統」、「標準」といった意味になります。


canonical

Googleによってインデックスされるケースは以下のようなパターンが該当するかもしれません。


誤ってパラメータ付URLでインデックスされてしまった例

URLが省略されているので分かりにくいのですが、クリックしてみると、下記のようなパラメータが付いていました。


www.allegro-inc.com/products/detail.php?product_id=7&newwindow=true


原因は外部サイトから、上記のような記述でリンクを張られていたからだと推測できます。


パラメータ付でインデックス

外部ウェブサイトからの被リンクの際のURLについては、いちいち正しく張ってもらうように依頼するわけにはいきませんので、canonical属性の指定をしておく事で誤ってインデックスされる事を防ぐ事ができます。
このように誤ってインデックスされてしまうケースについて、2012年11月のMatt Cutts氏が以下のように説明しています。



Googleのクロールチームは、パラメータ付きとなしのページで評価が分散しないよう、インデックスの正規化処理をしている。一般的なURLパラーメータタグ、トラッキングタグを使用していれば、大抵は検知する事ができる。
もし検索エンジンが正しく評価していないと思った場合でも、canonical属性や、301リダイレクト、Search Consoleの「URLパラメータツール」といった多くの対処方法がある。


この説明をしていたのが2012年11月ですので、現在ではかなり改良されていると推測できます。ただし100%対応できているわけではありませんので、パラメータ付でインデックスされている状況が発生しているのであれば、URLの正規化を行っておいた方が良いでしょう。


wwwなしでインデックスされてしまった例

こちらはwwwがあるパターン、ないパターンとどちらもインデックスされてしまったケースです。


wwwなしでインデックス

ウェブサイト内の各リンクURLは基本的には相対パスで記述されているのですが、外部ウェブサイトからのリンクの中に「wwwなし」で書かれていたものがありました。 クローラーはおそらくこの外部ウェブサイトからのリンクを辿って、「wwwなし」でクロールしてインデックスしてしまったのではないかと推測します。


類似例:httpsとhttpでインデックスされる

下のキャプチャ画像は、httpとhttpsページが混在してインデックスされてしまったケースです。
ウェブサイトの中でカート部分や、お問い合わせ部分のみSSL対応しているウェブサイトでは、似たようなケースが発生する場合があります。
このウェブサイトの場合では、検索エンジンのクローラーがSSL対応のカート内ページにクロールし、相対パスのリンクを通って全ページのURLをhttps有りでインデックスしてしまいました。
※現在は常時SSLのウェブサイトにしています。


httpsでインデックス

現在はhttps対応ページとhttpページが両方あった場合には、https対応ページが優先されるようです。また、httpsでインデックスされた方が検索エンジンの評価が若干高いとアナウンスされています。
※「HTTPSが検索順位指標のシグナルの一つに




canonicalの書き方と設置位置

canonical属性を指定してURLを正規化する事ができます。
以下のようにheadタグ内に記述する事で、wwwあり、なし、パラメータ付のurlなどを一つのURLに正規化し、検索エンジンのインデックスを統一する事ができます。


実際は、canonical属性によるURL正規化を行ったからといってすぐにGoogleの方で認識されるという事はないようです。リクエストとして受け取り、指定ミスなどを考慮に含めて最終的に処理されるようです。
その為、URLが正規化されるまでにはある程度時間がかかるようです。

<head> ・ <link rel=”canonical” href=”https://example.com/product.php”> ・ </head>



URLの正規化のチェックリスト

5 common mistakes with rel=canonicalで解説されていた内容となりますので、チェックリストを確認しておきましょう。


  • 複製されたページのコンテンツでcanonicalを指定する。
    もし、トピックとして似ていたとしても極端に同じ言葉が使われていなければ、canonicalは検索エンジンに無視されます。
  • rel=canonicalのターゲットが存在するか確認する(404エラー、ソフト404がない)
  • rel=canonicalのターゲットがrobotsメタタグでnoindexとなっていないか確認する。
  • 検索結果のrel=canonicalで指定したURL(複製されたページではなく)が表示されているか確認する。
  • rel=canonicalのリンクがhttpヘッダーまたはページの<head>タグ内に含める。
  • rel=canonicalがページ内に1あるか確認する。複数あると検索エンジンに無視されます。
  • rel=canonicalで指定するURLは絶対パスを記述します。
    ※相対パスでは、wwwあり、なし、http / httpsなどを指定できません。
  • 正規化の為にrobots.txtを使用しない。
    ※robots.txtで重複コンテンツをブロックすると各ページの評価を失い、結果的に評価が薄まってしまいます。

rel=canonical よくある間違い

ページネーションで使用する複数のページで1ページ目を指定する

ページネーションで使用するページに複製コンテンツはないはずです。このような使い方をすると、ページネーションの2番目のページは表示されても、3ページ目以降は検索結果から除外される場合があり、コンテンツの評価を失うことになります。
検索結果に1ページ目を表示させたい場合は、2種類方法があります。1つは、ページネーションで使用するページを一つにまとめたコンポーネントページを作り、そこに向けてrel=canonicalを指定する方法です。もう一つはページネーション用のマークアップである、 rel=”prev” and rel=”next”を使用する事です。


URLの指定方法が誤っている

URLの指定は、絶対パスと相対パスというものがあります。絶対パスの場合は、「http://」から記述します。相対パスの場合は、現在のディレクトリを元に相対パスでリンクを作成します。良くある間違いとしては、当サイトを例にすると「href=”www.allegro-inc.com”」と指定してしまうケースです。検索エンジンはこのような場合、「http://www.allegro-inc.com/www.allegro-inc.com」として認識してしまいます。


知らずに指定されている、または複数rel=canonicalを設定している

テンプレートの内部をあまり見ずにページを作った場合、まれにテンプレート自体にテンプレート制作者のサイトへcanonicalが指定されている場合があります。テンプレートを使用している場合は必ず確認しましょう。

rel=canonicalが複数設定されているページもあります。多くはプラグイン等を使っていて、誤って二重に設定されているケースです。複数rel=canonicalが設定されていると、どちらも無視されます。


カテゴリページ、ランディングページから記事ページへ指定する

この場合、カテゴリページは検索結果から表示されなくなり、記事ページのみ表示されます。カテゴリページは投稿した記事が増えれば変化するはずですので、個別の記事にrel=canonicalを指定するとカテゴリページ自体が検索結果から表示されなくなり、検索からの集客を失う事になります。


Body内部にrel=canonicalを指定

なるべくヘッドタグ内上部に配置しましょう。body内部にcanonicalを指定してもGoogleからは無視されます。これは原文に記述はありませんが、無料ブログやユーザー参加型のフォーラムを運営している場合に、Body内に設定できるとスパムの温床となってしまうからではないかと思われます。




複数ドメインをまたいでURL正規化は可能?

同一ドメイン内であれば、設定も行いやすいですので使用されている方も多いのではないかと思います。
では、複数ドメインを持っている場合はこのrel canonicalは有効なのでしょうか?
例えばショッピングサイトを複数運営していて、同一の商材を扱っている場合などはドメインをまたいで使用する事ができるのでしょうか。


GoogleのMatt Cutts氏が以前回答していましたので、ご紹介します。



当初はクロスドメインには非対応

rel=”canonical”をはじめてGoogleが紹介したとき、悪用される可能性もあった為、慎重に状況を観察していたようです。


その為、はじめは1ドメイン内での利用以外、ドメインをまたいでの利用などは効果はありませんでした。


その後時間が経過し、rel=”canonical”が悪用されているケースはほとんどなかったようです。


悪意のあるハッカーの行動パターン

もし悪意のあるハッカーがウェブサイトを乗っ取ったとしたら、おそらくマルウェアを仕込んだり、301リダイレクトを行ったりするのではないでしょうか


悪意のあるハッカーは、rel=”canonical”をつけていき、クローラーが訪れ、インデックスされる事を待つような地道な気の長い行為は行わないだろうと結論づけたようです。


現在はクロスドメインでも利用できる

このように悪用される事がなく、ウェブマスターも非常にスマートに活用していて、誤った活用でトラブルが発生するような事をみかけなかった為、クロスドメインでも設定できるように機能を追加したようです。




rel=”canonical”の効力

rel=”canonical”は本質的には、301リダイレクトのように作用します。301とrel=”canonical”のどちらを利用したら良いか?についてはMatt Cutts氏の発言が参考になります。
※当ブログの場合はどちらも設定しています。


Googleは301リダイレクトが使えない場合、rel=canonicalをすすめています。301が使えたとしても、サーバーに対する余分な操作を閲覧者に要求するので、パフォーマンスを損ねるのではないかという質問に対して、Matt Cutts氏が回答していました。301が使える環境だとしてもrel=canonicalを使うというのは正しいか?について紹介します。



301がおすすめな理由

ドメインの管理者があなたであれば、どちらを選ぶかはユーザー次第のようです。理解しなければならないのは、rel=canonicalは検索エンジン向けの記述で、閲覧者に対しては機能的には作用しません。


これに対して301は301リダイレクトの設定がされていると閲覧者は気が付く機会があります。rel=canonicalの使い方は若干知識が必要な為、誤って設定してしまって順位に影響を与えてしまう事もあるかもしれません。その為ほとんどのケースでは301を使う方が良いようです。


301は訪問者にとっては親切

Matt Cutts氏の回答では、「301を使った場合、基本的には1回のジャンプだけで、余分な操作と言うほどの負荷はかからない。」と述べています。


もし訪問者が301で新しい場所へ移動した場合、アドレスバーを見て、どこにジャンプしたか気がつきます。このような意味で検索エンジンも、訪問者も管理者も何が起きているのかわかりやすく、扱いやすいという事だと思います。


rel=canonicalはソースコードを見ない限り訪問者は気が付かないですし、設定した場合の効果も事前に勉強しておく必要があるので、ウェブサーバーにアクセスする権限がないなどの理由がない限り301がおすすめです。


Googleだけを考えるのであればどちらでも良いと思いますが、検索エンジンは他にもあります。2012/12/27 現時点では、301の方がどの検索エンジンも扱いに慣れているという事が言えます。




URLの正規化はどのウェブサイトでも行った方が良い施策

301リダイレクトとrel=”canonical”の両方を設定しておく事で、分散している重複コンテンツの評価を一つにまとめる事ができます。
SEOを本格的に行う企業サイトの場合には、設定をしておく事によるメリットは大きいのではないでしょうか。


この記事では触れていませんが、検索エンジンのクローラーの通り道を指示することができるXMLサイトマップも作成した方が良いでしょう。
XMLサイトマップに記述するURLも同様に統一していく事で、検索エンジンにウェブサイトの全てのページに関して正しいURLを伝える事ができます。


XMLサイトマップの作り方やメリットについては、「XMLサイトマップとは 効果的な作成・登録方法・更新頻度」で解説しています。



ページ上部

役に立ったらブックマークをクリック!

はてなブックマークに追加


野澤洋介
野澤洋介

この記事を書いた人

アレグロマーケティング代表

SEOツールのプロジェクト担当者でもあり、自社のSEO担当でもあります。
SEOは考え方はシンプルですが、いざ実践するとなかなか思うようにいきません。
当ブログでは、読者の方に成功も失敗も合わせて情報を共有し、同じような悩みを解決できればという思いで運営しています。




SEO管理ツール Spresseo(エスプレッセオ)

コンテンツが増え、SEOの管理が煩雑になってきたらツールで効率化しましょう。
ページごとの内部最適化や、キーワードの順位取得や競合比較、獲得した被リンクのレポートを自動化できます。