いきなりですが、canonicalタグの存在を知っていますか?
WordPressで構築されたサイトでは、無意識のうちに、同じ内容のページを複数のURLで公開してしまってGoogleからコンテンツの複製と見なされてペナルティを受けてしまった(泣)というケースがよくあります。
また、canonicalタグには、SEO的にも良いとされており、検索順位UPの可能性も秘めています!
そこで今回は、「【たった1行】プラグインなしで各ページのcanonicalタグを設定する方法」という、ごくシンプルな方法をご紹介しますね。
目次
canonicalタグとは?
canonicalタグは、記事の重複があっても同じページとして認識させるための設定です。
例えば、ドメインに「https」と「http」がある、「www」ありとなしが併存している。
このように、同じコンテンツに、「https」と「http」、「www」ありとなしのURLが存在している場合には、canonicalタグを使って、URLの正規化を行なう必要があります。
また、商品のサイズや色ごとに表示させるページを変えていて、画像のみが異なっている場合なども、重複ページとして認識されてしまうので。canonicalタグでURLの正規化を行なう必要があります。
上記の例の場合などに、Googleが同一の別ページと認識してしまい、それが原因でコンテンツの評価が分散してしまったり、ミラーコンテンツとみなされてペナルティを受けてしまうのを防ぐため、検索エンジンに評価してもらいたいURLを統一すること
これは、Googleからも推奨されているので、SEO対策として対応すべきです。
ある1つのコンテンツに対して、張られるリンクのURLがユーザーによって異なると、そのコンテンツに対する評価がURLごとに分かれてしまう恐れがあります。これを防ぐために、サイト内でページをリンクするときには、常に特定のURLを使用するようにしましょう。
WordPressの有料テーマの場合でも、canonicalタグが無いテーマもあるので、確認してみてください!
WordPressで勝手に出力されるcanonicalを消す
WordPressでは、要らないタグまで勝手に出力されてしまいます。
それを防ぐために、ますはWordPressが自動出力するcanonicalタグを削除する必要があります。
下記のコードをfunctions.phpに追加します。
// 勝手に出力するcanonicalタグを削除
remove_action('wp_head', 'rel_canonical');
これで、WordPressがデフォルトで出力するcanonicalタグを消すことができました。
WordPressが自動でつけるcanonicalタグは間違っていたりすることもあるので、確実に自分で設定しましょう。
全ページにcanonicalタグを表示する
canonicalタグに設定するURLを現在アクセスしているページのURLが表示されるようにしています。
header.phpのheadタグ内に下記のコードを追加して下さい。
<?php echo '<link rel="canonical" href="http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'].'">'; ?>
注意してほしいのが、今回の紹介ではhrefの部分が「http」になっているので、自分のサイトに合わせて「https」に変更するなどして下さいね。
これで全ページにcanonicalタグが出力されるようになりました!
ページごとに自動で出力されるので、他のページでもしっかりcanonicalタグが設定できています!
404以外のページでcanonicalタグを表示する
僕的には、404ページにcanonicalタグは必要ないと考えているので、404ページ以外の全ページにcanonicalタグを出力する方法もご紹介しておきますね!
リンク切れなどで、ユーザーがアクセスしたページが存在しない場合に表示されるエラーページ
header.phpのheadタグ内に下記のコードを追加して下さい。
<?php
if(!is_404()){
echo '<link rel="canonical" href="http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'].'">';
}
?>
if(!is_404())の部分で、404ページ以外に処理させるようにしています。
これは、WordPressの条件分岐で、「!」は「以外」を表します。
なので、「もし404ページ以外だったら」という意味になります。
まとめ:canonicalタグは設定しとくべし
いかがでしたか?
canonicalタグを使ったURLの正規化は、内部SEO対策として基本部分ですが、Googleの検索エンジンからの評価を下げないために、設定しておきましょうね!