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をきちんと理解したい方には以下のページがオススメです。
[img-link url=”http://www.suzukikenichi.com/blog/rel-canonical-resolves-duplicate-content/” title=”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が吐き出されると思います。(カテゴリー以外のアーカイブページは、あまり重視していないので無視しています。)

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


投稿日

カテゴリー:

投稿者:

 最終更新日:

タグ: