WordPress化で意識したSEO対策6つのポイント

当ブログの記事に共感していただけたら、また読みに来ていただけると嬉しいです。読んでくれる方の数が多くなると、更新するヤル気に繋がります(^^)

  • このエントリーをはてなブックマークに追加
  • Evernoteに保存Evernoteに保存

P1000699

当ブログはMovabletype時代から6年間更新を続けています。その中でデザインやリンク構造を変更しながら、最適なユーザビリティとSEOの両立を意識してきました。

WordPress化の際は、これまでの形を完全に再現するために、一からテーマを自作しました。

当ブログで特に意識しているポイントを紹介します。

スポンサーリンク

ページの分割をしない

pagenation

WordPressの普通のテーマだと、トップページやカテゴリーページにページネーションや次のページ&前のページへのリンクがついて、ページが分割されます。わかったブログでは、導入していません。同じタイトル名のページが無意味に増えることになるからです。重複タイトルはSEO的にNGです。

Movabletype時代にページネーションでカテゴリーページを分割したところ、検索エンジンからのアクセスが激減してしまいました。ページネーションを外したらアクセスも元に戻りました。その時の経験から得た知見です。ちなみに「タグ」も似たようなページが増えるので使っていません。

ページネーションを利用しない場合、設定ページの「1ページに表示する最大投稿数」を増やさないといけません。しかし、この値はWPtouchと連動しているため、スマホページの表示件数も多くなってしまい、重くなってしまいます。個別に表示件数をカスタマイズできるCustom Query String Reloadedプラグインを導入して、カテゴリーページの表示件数を個別に調整しています。

【追記】ブクマで、「正規化すれば良い」という意見を頂きました。十分気をつけて行ってください。正規化は複雑です。当ブログでは行っていません。
ページネーションにおけるrel=“canonical”タグの正しい使い方 at SMX West 2011

パンくずリスト

pankuzu

ユーザービリティの観点から、パンくずリストは必ず入れるようにしています。こちらのブログ記事を参考にして作りました。

function.phpファイルに下記を追加。

<?php
//パンくずリスト
function get_breadcrumbs(){
     global $wp_query;

     if ( !is_home() ){

          // Start the UL
          echo '<ul class="breadcrumbs">';
          // Add the Home link
          echo '<li><a href="'. get_settings('home') .'">'. get_bloginfo('name') .'</a> &raquo; </li>';

          if ( is_category() )
          {
               $catTitle = single_cat_title( "", false );
               $cat = get_cat_ID( $catTitle );

                        $breadcrumbs = "<li>". get_category_parents( $cat, true, ' &raquo; ' )."</li>";
                        echo preg_replace( '/(.*) &raquo; /', '$1', $breadcrumbs );

//               echo "<li>". get_category_parents( $cat, TRUE, " &raquo; " ) ."</li>";
          }
          elseif ( is_archive() && !is_category() )
          {
               echo "";
          }
          elseif ( is_search() ) {

               echo "<li>Search Results</li>";
          }
          elseif ( is_404() )
          {
               echo "<li>404 Not Found</li>";
          }
          elseif ( is_single() )
          {
               $category = get_the_category();
               $category_id = get_cat_ID( $category[0]->cat_name );

               echo '<li>'. get_category_parents( $category_id, TRUE, " &raquo; " );
//               echo the_title('','', FALSE) ."</li>";
               echo "</li>";
          }
          elseif ( is_page() )
          {
               $post = $wp_query->get_queried_object();

               if ( $post->post_parent == 0 ){

                    //echo "<li>".the_title('','', FALSE)."</li>";

               } else {
                    $title = the_title('','', FALSE);
                    $ancestors = array_reverse( get_post_ancestors( $post->ID ) );
                    array_push($ancestors, $post->ID);

                    foreach ( $ancestors as $ancestor ){
                         if( $ancestor != end($ancestors) ){
                              echo '<li> &raquo; <a href="'. get_permalink($ancestor) .'">'. strip_tags( apply_filters( 'single_post_title', get_the_title( $ancestor ) ) ) .'</a></li>';
                         } else {
                              echo '<li> &raquo; '. strip_tags( apply_filters( 'single_post_title', get_the_title( $ancestor ) ) ) .'</li>';
                         }
                    }
               }
          }

          // End the UL
          echo "</ul>";
     }
}
?>

そして、パンくずを表示したい部分に、下記コードを挿入すればOKです。

<?php get_breadcrumbs(); ?>

関連記事リスト

各記事の下部に、同じカテゴリーの記事を関連記事として、表示しています。こちらもユーザビリティの観点からです。そして、同じジャンルの記事同士でリンクすることで、記事のテーマをより明確にGoogleに伝えることを目的としています。

当ブログで利用しているコードを、そのままコピペしておきます。

※下記コードでは全記事が出てしまいます。数を指定したい場合は、&numberposts=-1の部分を&numberposts=10にすれば、10記事だけ表示できます。

<?php if(is_single()):?>

<?php $categories = get_the_category();
foreach($categories as $category):
$related_posts = get_posts('category='.$category->cat_ID.'&exclude='.$post->ID.'&numberposts=-1');
if($related_posts): ?>
<ul>
<?php foreach($related_posts as $related_post): ?>
<li><a href="<?php echo get_permalink($related_post->ID); ?>"><?php echo $related_post->post_title; ?></a> <a href="http://b.hatena.ne.jp/entry/<?php echo get_permalink($related_post->ID); ?>"><img src="http://b.hatena.ne.jp/entry/image/<?php echo get_permalink($related_post->ID); ?>" border="0" style="vertical-align: middle;"></a></li>
<?php endforeach; ?>
</ul>
<?php endif; endforeach; ?>

<?php endif; ?>

サイトマップ

Movabletype時代からsitemap.xmlを置いて、Googleウェブマスターツールで登録していました。いきなり無くなるのもマズイので、WordPressでも対応しました。Google XML Sitemapsプラグインで簡単に実装できるので便利ですね。

記事タイトルにブログ名を入れない

ブランディング的には入れたほうが良いという話もありますが、当ブログでは入れていません。デフォルトでは「ブログ名 » 記事タイトル」と表示されてしまうので、下記のようなコードを利用してトップページ以外ではブログ名が入らないようにしています。

<?php if ( is_home() ) { ?>

<title><?php bloginfo('name'); ?></title>

<?php } elseif(is_month()) { ?>

<title><?php echo monthtitle(); ?></title>

<?php } else { ?>

<title><?php wp_title(''); ?></title>

<?php } ?>

ブランディング的に入れるとしても、

<title><?php bloginfo('name'); ?> <?php wp_title(); ?></title>

ではなく、

<title><?php wp_title(''); ?> <?php bloginfo('name'); ?></title>

かなと思います。記事タイトルを前にしたほうが、SEO的には良いと思います。

記事タイトルに<h1></h1>タグをつける

デフォルトのテーマだと、トップページ以外の、カテゴリ、記事ページなどでも、ブログ名に<h1></h1>タグがつけられてしまいます。私は、カテゴリーページはカテゴリー名、記事ページは記事タイトルに<h1></h1>タグをつけるべきと考えています。

function hxheader($place){
    if(is_home()){
        if($place == 1) return "<h1>";
        if($place == 2) return "</h1>";
    }    }else{
        if($place == 1) return '<div id="blogname">';
        if($place == 2) return '</div>';
    }
}

function hxlisttitle($place){
    if(is_single()){
        if($place == 1) return '<h1 class="post_title">';
        if($place == 2) return '</h1>';
    }else{
        if($place == 1) return '<h2 class="post_title">';
        if($place == 2) return '</h2>';
    }
}

このような記述をfunction.phpに記述して、ブログ名は、

<?php echo hxheader(1); ?><a href="<?php echo home_url(); ?>"><?php bloginfo('name'); ?></a><?php echo hxheader(2); ?>

テーマ内のタイトルは、

<?php echo hxlisttitle(1); ?><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a><?php echo hxlisttitle(2); ?>

と記述して、自動的に書き直しています。

▼▼▼▼

その他は、記事によっては、meta keywordsにキーワードを設定しています。WordPressではkeywordがデフォルトで設定できないため、カスタムフィールドで設定しています。

※本記事の内容が正しいかどうかは保証出来ません。実施する際は、自己責任でお願いします。

今日のわかった

「SEO。なにもしないのがSEO」

は、私のSEO格言です。無理をしてSEOをしても、それは「ドーピング」にようなもので、いつか必ずGoogleに落とされます。

基本的な対策だけをして、あとは地道に更新することが一番です。

関連記事

関連記事

スポンサーリンク

当ブログの記事に共感していただけたら、また読みに来ていただけると嬉しいです。読んでくれる方の数が多くなると、更新するヤル気に繋がります(^^)

  • このエントリーをはてなブックマークに追加
  • Evernoteに保存Evernoteに保存

フォローしていただけると、ブログ更新を見逃しません

push7 feedly
スポンサーリンク

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です