2011.07.06Web制作

SEOブロガーがこだわり抜いた、WordPressプラグイン&テクニック10選

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

この記事をご覧いただいている皆様へ。

このページは、SEO情報ブログ「ディーエムソリューションズの社員が作った、【SEOまとめ】」にて公開されていた記事であり、2014年12月にデジタルマーケティング研究所へ統合されました。

blog-news

私はこのサイトを立ち上げる時に生まれて初めてWordPressに触れました。
今回は「SEO」対する自分のこだわりを詰め込もうと悪戦苦闘しながら身につけたWordPressのテクニックと最終的に使用したプラグインをまとめてご紹介します。

なお、使用中のWordPressのバージョンは3.1.4です。

サーバーはヘテムル

レンタルサーバーもいろいろ調べましたが、最終的にheteml(ヘテムル)を採用しました。

参考:heteml(ヘテムル)

固定ページを用意する。TOPページも固定して、ブログは「/blog/」以下で展開

SEOの「まとめ」サイトというコンセプトですので、ブログを使った最新ニュースの配信とは別にSEOの「基本編」としてページを用意する必要がありました。いわゆるコーポレートサイトのスタイルです。

基本編」はある程度SEOに精通した方であれば退屈な内容ですのでRSS上で垂れ流しにするわけにはいきません。

そこでこれらのページは固定ページとして、ブログは
https://digital-marketing.jp/」以下で展開することに。管理画面では以下のように設定して、美しいディレクトリ構造を作ることを目指しました。

具体的には管理画面上から「表示設定」と「パーマリンク設定」を以下のように設定します。

wp-home-url
permalink

参考:トップページの表示方式(AdminWeb)

TOPページとブログTOPに独自テンプレートを使用する

このサイトの場合はさらにサイトTOPとブログTOPにそれぞれ独自テンプレートを使用しています。

参考:WordPressのトップページを変更(textdrop)

※ 上記の参考サイトでは「投稿ページ」欄にブログトップを指定するように記載されていますが、そうすると後述のカスタムフィールドが適用されなくなるので「投稿ページ」欄にをブランクにしました。ここはもっとうまいやり方がありそうです。

余分なディレクトリを生成させない

WordPressを使用したサイトの場合「wp」と「wordpress」などのディレクトリ配下にコンテンツを出力させているケースを良く見かけます。

これは「一般設定」の「サイトのアドレス」欄に「WordPressのアドレス」と同一のものを指定してしまうことが原因です。

サイト内の全ページをWordPress上で管理するには「サイトのアドレス」には第一階層と同じものを設定します。

wp-url

 
さらに、私はブログのページに「category」なるディレクトリが自動で出力されて無駄にURLが長くなるのが非常に気になりました。

そこでTop Level Categoriesをインストールして「category」ディレクトリが出力されなくなる設定に。特に設定も必要無く有効化するだけで機能してくれる素晴らしいプラグインです。

また、日本語URLはリンクが貼られにくくなるので使用しません。

All in One SEO Packは使わない。
主要タグはカスタムフィールドで完全ユニーク化

WordPressのSEOカスタマイズプラグインとしてはAll in One SEO Packが有名ですが、各ページの<meta>タグや<title>を完全に個別設定したい、という私のニーズを満たしてくれるものではありませんでした。

そこで<title><meta nema=”description”><h1>タグを設定することにしました。
<meta nema=”keywords”>はそもそも設定しない主義です)

header.php」内、<title>部分

<title>

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

<?php single_cat_title(); ?>|ブログ|SEOまとめ

<?php else : ?><?php echo get_post_meta($post->ID,title,TRUE); ?>

<?php endif; ?></title>

header.php」内、<meta nema=”description”>部分

<meta name=”description” content=”<?php if (is_category()): ?>カテゴリー「<?php single_cat_title(); ?>」に関する記事一覧。WEBマスターによる【SEOまとめ】が配信するブログでは検索エンジンアルゴリズムに関するニュースを中心にWEBプロモーションにまつわる様々なニュースをお伝えします。<?php else : ?><?php echo get_post_meta($post->ID,description,TRUE); ?><?php endif; ?>” />

本文中<h1>部分(「category.php」以外)

<h1><?php echo get_post_meta($post->ID,h1,TRUE); ?></h1>

本文中<h1>部分(「category.php」)

<h1>ブログカテゴリー「<?php single_cat_title(); ?>」内の記事一覧</h1>

 
ブログの各カテゴリーTOPページではカスタムフィールドを適用できないため、if文での条件分岐を使ってカテゴリーTOP用のタイトル、メタディスクリプションを用意した場合のコードです。

あとは個別ページやブログを投稿する際に各変数(ここではそれぞれ「title」「description」「h1」としています)を用いたカスタムフィールドを設定すればOKです。

参考:お手軽WordPress Tips:カスタムフィールドを使ってh1を記事に応じて変更出来るようにする(かちびと.net)

custom-field

こうすることで記事の文字数に合わせたタイトル文や、共通部分の無いメタディスクリプション、パンくずリストの内容と異なる<h1>などが設定できるようになり、キーワードチューニングの自由度が飛躍的に向上します。

重複ページが嫌なので「アーカイブ」や「タグ」は使わない

「アーカイブ」やそれを用いたカレンダー機能は便利だと思いましたが、SEO屋としては元の記事ページと完全に内容が重複した別URLのページが生成されるのが気に入りません。

とは言えSEOがテーマのブログでは情報の鮮度は読者としても気になるところだと思いましたので、サイドメニューの新着記事を多めにとって(5記事)、投稿日を含ませるようにしました。

sidebar.php」の新着記事部分の記述

<dl>

<dt>ブログ新着記事</dt>

<?php query_posts(‘posts_per_page=5’); ?>

<?php while (have_posts()) : the_post(); ?>

<dd class=”new-article”><?php the_time(‘Y/m/d’) ?><br><a href=”<?php the_permalink() ?>”>

<?php the_title(); ?></a></dd>

<?php endwhile;?>

</dl>

 
また、これは私が無知なだけかも知れませんが、WordPressの「タグ」機能には魅力を感じませんでした。ブログの記事をジャンル分けするなら「カテゴリー」で十分。余分な重複ページを作ることも無いので、「タグ」は常に設定していません。

SEOにおける内部施策で最近特に私が重視しているのはサイト内部リンクです。理想のリンク構造を実現するために以下のようなポイントに注意しました。

  1. SEO上重要となる各固定ページTOPとブログカテゴリーTOPへのリンクを「sidebar.php」に記述することでサイト内全ページにリンク
  2. 記事の文章内で徹底したクロスリンク
  3. 固定ページについては第3階層のページ同士をリンク

2点目のクロスリンクとは、各記事の文章中に他の固定ページと関連する用語が出てきたら積極的にリンクさせることです。
SEOとしての効果はもちろんなのですが、専門用語が出てきたときにすぐ別ページで調べられる構成になるのでユーザービリティが大きく向上します。「基本編」として100ページ近い固定ページを用意した意味がここで出てきます。

なお、私は手作業で設定していますが、自動でリンクを張ってくれるAutomatic SEO Linksという便利なプラグインもあるようです。

また3点目についてですが、例えばこの第3階層のページにアクセスしていただくとページ下部に同ディレクトリページへのリンクが表示されているを確認していただけると思います。
これが検索エンジンに対してページ同士の関連の強さを伝える役割を果たします。

この部分のコードは以下のようになります。

<?php

if (is_page() && $post->post_parent ) {

$parent=$post->post_parent;

} else {

$parent=$post->ID;

}

$ul_top_title = get_the_title($parent);

$ul_top_url = get_permalink($parent);

if(wp_list_pages(“title_li=&child_of=$parent&echo=0″ )):

?>

<section>

<h3>「<?php wp_title(”) ?>」と同じカテゴリー内のページ</h3>

<ul id=”sub-page”>

<li><a href=”<?php echo $ul_top_url; ?>”><?php echo $ul_top_title; ?></a></li>

<?php

$children = wp_list_pages(‘title_li=&sort_column=menu_order&child_of=’.$parent.’&echo=0′);

echo $children;

?>

</ul>

<?php endif; ?>

参考:WordPressのサブページの一覧を自動的に表示する方法(がんちゃんのブログ)

パンくずリストを構造化マークアップすることで、インデックス早期から検索結果画面にパンくずリストが表示されるようになりました。

own-serps-sitemap-page

以下は親ページと子ページを区別するようにカスタマイズしながら、RDFaを使って構造化マークアップしたこのサイトの「page.php」パンくずリスト部分のコードです。

<ul id=”topic-path” xmlns:v=”http://rdf.data-vocabulary.org/#”>

<li typeof=”v:Breadcrumb”><a rel=”v:url” property=”v:title” href=”<?php bloginfo(‘url’); ?>/”>TOP</a></li>

<?php foreach ( array_reverse(get_post_ancestors($post->ID)) as $parid ) { ?>

<li typeof=”v:Breadcrumb”> > <a rel=”v:url” property=”v:title” href=”<?php echo get_page_link( $parid );?>”><?php echo get_page($parid)->post_title ?></a></li>

<?php } ?>

<li><?php wp_title(‘>’) ?></li>

</ul>

WordPressのいいところはテンプレートひとついじればこうした修正ができることろですね。

各カテゴリ内のブログ記事の数を(*)で表示。
でもアンカーテキストには含ませない

当初からこのサイトを訪れる方のほとんどはブログ目当てになるのではないかな、という想定でいました。

そのため、出来る限り「ブログっぽく」するために各カテゴリー内の記事数を(*)で表示するようにします。

以下は該当部分のコードです。

<dl>

<dt>ブログカテゴリー</dt>

<?php

$cat_all = get_terms( “category”, “fields=all&get=all” );

foreach($cat_all as $value):

?>

<dd><a href=”<?php echo get_category_link($value->term_id); ?>”><?php echo $value->name;?></a>(<?php echo $value->count;?>)</dd>

<?php endforeach; ?>

</dl>

その他、最終的に使用したプラグイン達

各地でオススメされてされているプラグインはひと通り試しましたが、
最終的に残したものはそんなに多くありません。

AddQuicktag
HTMLコードの呼び出しが早くなり、記事投稿がはかどる。
Akismet
コメントやトラックバックのスパムからブログを守ってくれます。
Broken Link Checker
リンクエラーがないかブログをチェックし、見つかった場合は、ダッシュボード等で通知します。
Category Order
サイドバー上のブログカテゴリーの並び順を変更できる。
Contact Form 7
お問い合わせフォーム用の定番プラグイン。
Disable WPAUTOP
勝手に<p>タグが挿入されるのを防ぐ。
Exec-PHP
記事中でPHPを使用するために。
Google XML Sitemaps
sitemap.xmlの自動更新は非常に便利。
PS Auto Sitemap
WEB版サイトマップページの自動生成は非常に便利。
Ktai Style
インストールするだけでガラケーに対応。携帯ユーザーはそこまで意識していませんが、そのままにしておくより読みやすかったので採用。
WPtouchと併用する場合は「iPhone, Android 用」をオフにすること。
RSS Footer
RSSのフッターにコピーライトを含ませて記事の盗難防止。
Search Everything
検索機能をつけたい時の定番アイテムです。
WP-DBManager
万が一の時に備えてデータベースをバックアップしてくれる。
WP-OGP
Facebookページも作ったので導入。
WP Multibyte Patch
マルチバイト文字に関する不具合を修正してくれている・・・らしい。デフォルト。
WPtouch
簡単にスマートフォン、iPhoneに対応してくれる。

おまけ.有名だが残念ながら不採用になったプラグイン達

All in One SEO Pack
カスタムフィールドの方が良かった。
Automatic SEO Links
興味はあったが結果的に手作業で記事内リンクを設定。
brBrbr
記事内の目印のために改行を入れることもあったので不採用。
Favicon Manager
ファビコンのコードは自分で「header.php」に入れました。
Redirection
自動で301リダイレクトを設定してくれるらしいがGoogleChromeで転送がループしたため削除。
SEO Slugs
記事のURLを英語で最適化してくれるらしいが、これも自分で決めたいので不要。
WP Super Cache及びQuick Cache
うーん、もともと軽い構成のせいか、効果(表示速度の向上)を実感できません。
それより自動でキャッシュされることによってデバックがしづらくなる方が嫌でした。

以上、ご参考にしていただけましたでしょうか。何しろWordPressもPHPも超初心者の人間が独学したものですので、決して完璧とは言えないと思います。

「もっといいやり方があるよ!」「こんなナイスなプラグインもあるよ!」という方は、
是非TwitterFacebookからご意見ください。

今回の記事がWEBマスターやクリエイターの皆さんのお役に立てば幸いです。
 

さらに詳しく知りたい方へ

SEO、Web広告、コンテンツマーケティング、BtoBマーケティングについてもっと知りたい方・ご相談をしたい方はこちらから

コンテンツプラス

  • このエントリーをはてなブックマークに追加
The following two tabs change content below.
片川 創太

片川 創太

2014年12月までディーエムソリューションズ株式会社SEO対策チームに所属。「SEOは実装」を信条に、コミュニケーションを重視するスタイルで数多くのサイトのコンサルティングを手がける。内部施策に関して造詣が深く、「SEOまとめ」としてブログやtwitterを通じて日々情報発信を続けている。 Twitter: SEOまとめ