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

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]
<?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>";
}
}
?>
[/php]

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

[php]
<?php get_breadcrumbs(); ?>
[/php]

関連記事リスト

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

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

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

[php]
<?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="https://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; ?>
[/php]

サイトマップ

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

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

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

[php]
<?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 } ?>
[/php]

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


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

ではなく、


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

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

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

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

[php]
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>’;
}
}
[/php]

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

[php]
<?php echo hxheader(1); ?><a href="<?php echo home_url(); ?>"><?php bloginfo(‘name’); ?></a><?php echo hxheader(2); ?>
[/php]

テーマ内のタイトルは、

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

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

▼▼▼▼

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

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

今日のわかった

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

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

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

WordPress
スポンサーリンク
当ブログの記事に共感していただけたら、また読みに来ていただけると嬉しいです。読んでくれる方の数が多くなると、更新するヤル気に繋がります(^^)
フォロー、ブックマークしていただけると、ブログ更新を見逃しません
わかったブログ

コメント

タイトルとURLをコピーしました