トップページではサイトタイトルをh1、記事ページではエントリータイトルをh1にする

WordPressのテーマを色々といじっていると、テーマによってh1の扱いが異なることに気づく。
h1はSEO的にも重要視される。場合にもよるが、基本的にh1は以下のようになっているのがベターだと思う。
- トップページ(HOME)→h1サイトタイトル
- 記事ページ(POST,PAGE)→h1エントリータイトル
せっかく「おいしいアボカドの見分け方」について素晴らしい記事を書いていても、h1が「sakura-box」というサイト名になっているとグーグルのロボット的にはその記事が何かよく分からなくなってしまう。
ということでこれを修正することにした。
トップページではサイトタイトルをh1、記事ページではエントリータイトルをh1にする
まずはテーマの編集で「h1」の記述があるphpテンプレートファイルを探し、それを以下のように変更した。
【変更前】
<h1 class="site-title"><a href="<?php echo esc_url( home_url( '/' ) ); ?>" rel="home"><?php bloginfo( 'name' ); ?></a></h1>
【変更後】
<?php if (is_home()): ?> <h1 class="site-title"><a href="<?php echo esc_url( home_url( '/' ) ); ?>" rel="home"><?php bloginfo( 'name' ); ?></a></h1> <?php else: ?> <a class="site-title" href="<?php echo esc_url( home_url( '/' ) ); ?>" rel="home"><?php bloginfo( 'name' ); ?></a> <?php endif; ?>
常にサイト名がh1になっていたのを「トップページ(home)の場合はそのままサイト名をh1に、それ以外の場合はサイト名をh1ではなくただのa要素にする」という形にした。
そして記事ページや固定ページのテンプレートでエントリータイトルをh1に変更しておく。これでサイトタイトルは「トップページではh1扱い、それ以外ではh1じゃなくなる」「記事ページや固定ページはエントリータイトルがh1」という状態になった。
テーマによって変更箇所が異なる
サイトタイトルもエントリータイトルもh1という「h1が複数設定されているテーマ」であれば、「個別記事ページでサイトタイトルのh1を外す」という記述をするだけで目的の形になる。
これが「サイトタイトルはh1でエントリータイトルはh2」というようなテーマの場合、個別投稿(post)個別ページ(page)など複数のテンプレートでエントリータイトルをh1に変更しておく必要がある。



