Search Consoleで 次のような通知を見たことはありませんか?
こちらは [検索での見え方] > [HTMLの改善] で表示できます。
重複しているとSEO的に評価されづらくなるということで、ページごとに設定するに越したことはありません。
とはいえ、極力自動化させたい・・・ということで、WordPress上で実装したのが以下のコードです。
重複しないタイトルタグ
WordPressで設定できるサイト名、サイトのキャッチフレーズを利用して、以下のように表示されるタイトルタグを生成します。
アーカイブではページ数を表示し、同じカテゴリーでもタイトルタグがページごとに異なるようにしています。
タイトルタグ表示例
TOP | サイト名|サイトのキャッチフレーズ |
---|---|
記事 | 記事タイトル|サイト名 |
カテゴリーアーカイブ | カテゴリー名|サイト名 – サイトのキャッチフレーズ(ページ番号) |
カテゴリーアーカイブ (子カテゴリー有り) |
親カテゴリー名:子カテゴリー名(ページ番号)|サイト名 – サイトのキャッチフレーズ |
タグアーカイブ | タグ名 タグ一覧(ページ番号)|サイト名 – サイトのキャッチフレーズ |
カスタム投稿アーカイブ or タクソノミーアーカイブ | ターム名(ページ番号)|サイト名 – サイトのキャッチフレーズ |
function title_tag() { $pageno = (get_query_var('paged')) ? '('.get_query_var('paged').')' : ''; $site_description = get_bloginfo('name').' - '.get_bloginfo('description'); if ( is_home() || is_front_page() ){ echo get_bloginfo('name').'|'.get_bloginfo('description').$pageno; } elseif ( is_post_type_archive() || is_tax() ) { echo single_term_title( '' , false).$pageno.'|'.$site_description; } elseif( is_category() ){ $cat = get_queried_object(); if($cat -> parent != 0){ $ancestors = array_reverse(get_ancestors( $cat -> cat_ID, 'category' )); foreach($ancestors as $ancestor){ echo get_cat_name($ancestor).':'; } } echo single_cat_title( '' , false).$pageno.'|'.$site_description; } elseif( is_tag() ){ echo single_tag_title( '' , false).$pageno.' タグ一覧|'.$site_description; } elseif ( is_404() ) { echo 'お探しのページは存在しません|'.$site_description; } else { echo wp_title('', false).'|'.get_bloginfo('name'); } }
重複しないdescription
descriptionは、記事の抜粋を利用しています。
入力されていなかった場合は、管理画面から設定できるサイトのキャッチフレーズを表示するようにしています。
アーカイブページではサイトのキャッチフレーズにページ番号を付けることでページごとに異なるdescriptionを生成しています。
description表示例
記事 or 固定ページ | 記事の抜粋 |
---|---|
カテゴリーアーカイブ | カテゴリー名一覧:記事の抜粋 Page – ページ番号 |
タグアーカイブ | タグ名タグ一覧:記事の抜粋 Page – ページ番号 |
タクソノミーアーカイブ | タクソノミー名:記事の抜粋 Page – ページ番号 |
カスタム投稿アーカイブ | カスタム投稿タイプの説明 Page – ページ番号 |
上記以外 | サイトのキャッチフレーズ |
function description_tag() { $pageno = (get_query_var('paged')) ? ' Page - '.get_query_var('paged') : ''; $home_id = get_option( 'page_on_front' ); if ( get_the_excerpt() ){ echo get_the_excerpt(); } elseif( is_tax() ) { echo single_term_title( '' , false).':'.get_bloginfo('description').$pageno; } elseif( is_category() ) { echo single_cat_title( '' , false).'一覧:'.get_bloginfo('description').$pageno; } elseif( is_tag() ) { echo single_tag_title( '' , false).'タグ一覧:'.get_bloginfo('description').$pageno; } elseif( is_post_type_archive() && get_post_type_object( get_post_type() )->description ) { echo get_post_type_object( get_post_type() )->description.$pageno; } else { echo get_bloginfo('description'); } }