今回は、WordPressで構築したサイトで実際に実装したことがあるSEO内部施策を備忘録としてまとめました。
(SEO系のプラグインを使用しない場合)
● アーカイブページにrel="next"、rel="prev"を追加する
■rel="next"、rel="prev"とは?
rel="next"とrel="prev"を使用することによって、複数ページにまたがるコンテンツや記事の関連性をGoogleに示すことができます。(例えば、同一のカテゴリに属する記事を複数ページにまたがって掲載しているケースや長い記事を複数のページに分割しているケース)
下記のようなタグをそれぞれのページのタグ内に記載します。
<link rel="prev" href="前のページのURL"> <link rel="next" href="次のページのURL">
■rel="next"、rel="prev"の設置方法
WordPressでは、個別記事以外のページにはrel="next"、rel="prev"を付加してくれません。
functions.phpに下記のような記述を追加することで、カテゴリー一覧ページや年別アーカイブページなどでページ分割が発生した場合に、タグにrel="next"、rel="prev"を追加することができます。
function rel_next_prev(){ global $paged; if ( get_previous_posts_link() ) { ?> <link rel="prev" href="<?php echo get_pagenum_link( $paged - 1 ); ?>"> <?php } if ( get_next_posts_link() ) { ?> <link rel="next" href="<?php echo get_pagenum_link( $paged +1 ); ?>"> <?php } } add_action( 'wp_head', 'rel_next_prev' );
● 個別記事からrel="next"、rel="prev"を削除する
前述のとおり、Wordpressは個別記事ページに対しては自動でrel="next"、rel="prev"を付加します。
ただし、ページ分割していない記事にも追加されてしまいGoogleが提示している使用方法とは少し異なってしまうため、functions.phpに下記の記述を追加してタグを削除するようにしています。
remove_action('wp_head','adjacent_posts_rel_link_wp_head',10);
● ページ分割で2ページ目以降のページタイトルに「ページ2」「ページ3」などの連番をつける
titleタグを生成する箇所に下記のような記述を追加します。
<?php if( $paged || $paged > 2 ){echo ' | ページ ' .$paged;} ?>
titleタグには、各ページ固有なものを設置し他のページと重複させないようにする必要があります。(重複コンテンツとみなされないようにするため)
rel="next"、rel="prev"の設置を行うのとセットでやっておくとよいと思います。
● metaタグ(title,keywords,description)の設定とOGPタグの設定
metaタグには、他のページと重複しない固有なものを設置できるような工夫をします。
例えば、投稿画面に下記のようなカスタムフィールドを用意しておけば、
投稿者が各記事ごとに簡単にmeta情報を設定することも可能になります。
【参考サイト】
【参考文献】
- 安川洋・江沢真紀・村山佑介(2014)『いちばんやさしい新しいSEOの教本―人気講師が教える検索に強いサイトの作り方』インプレスジャパン