canonical urlは完璧ですか?SEO friendlyなWordPressサイトには絶対必要です。

更新

WordPressで作ったサイトをSEO friendlyにするには、canonical urlの設定は必須です。今回、Twenty Twelveのheader.phpをゴリゴリカスタマイズして導入しましたのでメモ。

canonical urlとは

wordpressなどのCMS(Contents Management System)では、同じ内容のページを複数のURLで公開してしまうことがよくあります。

このような状態を放置しておくと、コピーコンテンツとみなされ、検索エンジンからペナルティーを受ける可能性が生じます。

canonical urlは、同じ内容のページを表示する複数のURLのうちどれが「正規のURL」であるかを検索エンジンに示すものです。

これによって、同じ内容のページを複数のURLで公開していても、コピーコンテンツとはみなされず、検索結果には「正規のURL」のみが表示されるようになります。

canonical urlをきちんと理解したい方には以下のページがオススメです。
rel=”canonical”の正規化で、重複コンテンツを撃退 | 海外SEO情報ブログ
いつもわかりやすい解説をありがとうございます。

canonical urlの設定方法

具体的には以下のようなlinkタグでhead要素内に記述します。

<link rel="canonical" href="「正規のURL」" />

WordPressのcanonical url

バージョン 3.4.2現在、Wordpressではwp_headによって、個別記事ページのみcanonical urlが設定されています。

その他のページでもcanonical urlを設定するには、header.phpをカスタマイズしないといけません。(プラグインでもよさそうですが、ウェブシュフはなるべくプラグインの使用は控えめにしたいです。)

カスタマイズ

まず、wp_headにcanonical urlを設定させないようにします。
function.phpに以下の1行を記述します。

remove_action('wp_head', 'rel_canonical');

そして、header.phpのhead要素内には以下の記述を書き込みます。

<?php if ( is_home() ) {
$canonical_url=get_bloginfo('url')."/";
} 
else if (is_category())
{
$canonical_url=get_category_link(get_query_var('cat'));
}
else if (is_page()||is_single())
{ 
$canonical_url=get_permalink();
}
if ( $paged >= 2 || $page >= 2)
{
$canonical_url=$canonical_url.'page/'.max( $paged, $page ).'/'; 
}
?>
<link rel="canonical" href="<?php echo $canonical_url; ?>" />

これで、適切にcanonical urlが吐き出されると思います。(カテゴリー以外のアーカイブページは、あまり重視していないので無視しています。)

ご参考になりましたら幸いです。

canonical urlは完璧ですか?SEO friendlyなWordPressサイトには絶対必要です。」への6件のフィードバック

  1. としちゃん

    パーマリンクをデフォルトで運用したWordpressサイトを運用していますが、GoogleにデタラメなURLを大量にインデックスされた上、動的URLの仕様なのか、デタラメで存在しないURLなのにレスポンスコード200を返すので重複問題が発生して困っていました。
    今までは重複したURLを.htaccessで都度301転送しており、いたちごっこになってしまい頭の痛い問題でしたが、これで完全に解決できたと思います。
    若干コードの修正が必要でしたが、canonical指定できました。
    ありがとうございました。

    返信
    1. ウェブシュフ 投稿作成者

      としちゃんさん、はじめまして。
      コメント有難うございます。
      お役に立てたみたいでよかったです。
      今後ともよろしくお願いいたします。

      返信
  2. ケイタ

    WordPressのcanonicalについて調べていて、こちらの記事に辿り着きました。
    やはり指定しておいた方がいいですよね。
    とても参考になりました。

    返信
    1. ウェブシュフ 投稿作成者

      ケイタさん、はじめまして。コメントありがとうございます。私も、指定しておくにこしたことはないと考えています。

      返信
  3. ピンバック: 【メモのメモ】WordPressで作ったサイトをSEO friendlyにするには、canonical urlの設定は必須です。今回、Twenty Twelveのheader.phpをゴリゴリカスタマイズして導入しましたのでメモ http://webshufu.com/canoni

  4. ピンバック: さよならAll in One SEO Pack。トップページOGPも正しくしたいから | WordPressブログ作ってみる?

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です