koike

【WordPress】内部施策を積極的に行ってSEOの効果を高めたい

今回は、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情報を設定することも可能になります。

カスタムフィールド設置の例

※↑この場合は全てのmetaタグを投稿者に更新させる仕様にすると更新の負担が増えてしまうので、 titleタグとkeywordsタグはテーマ側でできるだけ重複しない表示になるように調整をして、 descriptionとOGP画像は記事ごとに任意のものを入れてもらうような仕様にしました。

【参考文献】

  • 安川洋・江沢真紀・村山佑介(2014)『いちばんやさしい新しいSEOの教本―人気講師が教える検索に強いサイトの作り方』インプレスジャパン
新しいウェブ体験を作ろう TAMのPWA開発
お問い合わせはこちら