これまでのチャプターでは、ウェブサイトを最適化する上でのベストプラクティスを幾つか紹介してきた。このチャプターでは、さらに具体的に、ワードプレスに絞って、話を進めていく。ワードプレスは、世界で最も利用者が多いコンテンツ管理システム(CMS)である。事実、私のブログの読者の多くは、ワードプレスを利用している。そこで、チャプター 4では、ワードプレスを効果的に利用する高度なアドバイスを提供していきたいと思う。
目次
ワードプレスの設定を終えた時点で、大半のユーザーは基本を押さえているはずである。しかし、このチャプターでは、定番プラグインであるYoast SEOでの設定を手順を追って確認し、どのように利用するべきかを考え – さらに、一般的な利用方法を紹介していく。
注意: Yoastの設定で表示されるオプションの一部は、利用しているテーマによって異なる。私はベーシックな無料のテーマを使ってデモを行うが、オプションの中には、皆さんが実際に利用しているテーマとは、若干異なるものもあるかもしれない。
通常の設定
Title setting – 何らかの理由で、タイトルタグの設定が機能していない場合、チェックを入れる必要がある。
Sitewide meta setting – 通常は「noindex subpages of archives」のみにチェックを入れる。
Clean up the <head> – チェックを入れる必要はない。
投稿のタイプの設定
このセクションでは、タイトルとディスクリプションのテンプレートを設定し、また、このパーツのインデクセーションを管理する。
投稿とページの双方をインデックスしてもらう必要がある。インデックスを拒否するケースは稀である。
通常は、メディアをインデックスする必要はない。
タクソノミー
Categories – 通常はカテゴリをインデックスしてもらいたいはずである。
Tags – インデックスする必要性は低下しつつある。グーグルは以前と比べると、タグを結果で返す行為を控えており、また、代わりにページ、投稿、カテゴリを上位にランク付けしてもらいたいはずである。
Format – チェックを外しておく方が安全である。
その他
Author Archives – インデックスさせるべきではない。また、作者が一人のサイトを運営しているなら、無効にしておこう。ユーザーはブログのホームページにリダイレクトされる。
Date Archives – このアイテムに対するインデックスを回避させておきたいが、有効にしておこう。有効にしておくと、ユーザーは投稿を日付ごとに閲覧することが出来るようになる。
XML サイトマップの設定
注記: 他にXMLサイトマップ用のプラグインを利用していない点、そして、テーマがこの機能を有効にしていない点を確認してもらいたい。
Ping – ヤフー!とask.comを両方ともピングすることが可能である。
Exclude Post Types – インデックスしていないアイテムは全て除外するべきだ。要するに: インデックスしていないページのボックスにチェックを入れる必要がある。
カテゴリのディスクリプション
Yoastでは、次のように、メタタグに対するデフォルトのカテゴリのディスクリプションを表示するように、テンプレートを設定することが出来る:
しかし、このディスクリプションをそもそも書き忘れると言うミスを犯す人達が大勢いる。Posts->Categoriesにアクセスし、新しいカテゴリを加えると、Descriptionのエリアが、メタディスクリプションの設定になる。
.htaccessファイルを編集する
このガイドで紹介する全ての.htaccessのメソッドは、Yoast SEOで実装することが出来る。ファイルの編集にアクセスしよう – 追加のコードは一番下に表示されることが多い:
これはSEOのみに関連することではないが、セキュリティの問題は、ウェブサイトの利益に大きなダメージを与える可能性がある。SEOは確かに魅力的な取り組みだが、サイトの安全が確保されていることが前提である。
そのため、ワードプレスに利用することが可能な、追加のセキュリティ対策を幾つか紹介する。コードが若干目立つため、以下の手順に不慣れなら、助けを求めてもらいたい。しかし、技術的な作業にある程度慣れている人なら、十分に対応することが出来るはずである。
1. ファイルパーミッションを変更する
以下の2つのコマンドを実施し、ファイルパーミッションを再帰的に変更する。サーバーへのシェルアクセスが必要になる。
ディレクトリ:
find /path/to/your/wordpress/install/ -type d -exec chmod 755 {} \;
ファイル:
find /path/to/your/wordpress/install/ -type f -exec chmod 644 {} \;
2. ワードプレスインクルードを保護する
.htaccessファイルにアクセスする必要がある。繰り返すが、慎重に作業を行い、自信がないなら、テストサイトで実施するか、助けを求めよう。
上に次のコードを加える:# Begin WordPress
例:
# Block the include-only files.
RewriteEngine On
RewriteBase /
RewriteRule ^wp-admin/includes/ – [F,L]
RewriteRule !^wp-includes/ – [S=3]
RewriteRule ^wp-includes/[^/]+\.php$ – [F,L]
RewriteRule ^wp-includes/js/tinymce/langs/.+\.php – [F,L]
RewriteRule ^wp-includes/theme-compat/ – [F,L]
# BEGIN WordPress
このコマンドは、「include」ファイルのディレクトリへの外部からのアクセスを遮断する。
注記: 複数の作者が在籍するサイトでこのセキュリティ対策を実施したいなら、次の列を削除しよう:
RewriteRule ^wp-includes/[^/]+\.php$ – [F,L]
3. wp-config.phpファイルを確認する
因みに、wp-config.phpに、ユーザーネームとパスワードが保存されていることを知っていただろうか?ウェブホストを介して、ワンクリックのインストールオプションを利用したなら、wp-config.phpに直接触れたことは一度もないはずである(自分でインストールする場合、このファイルに接する機会がある)。
オプション A – wp-config.phpのレベルを一つ上げる
wp-config.phpは通常、ルートディレクトリに存在する。
しかし、wp-config.phpをルートディレクトリの1つ上に押し上げることが可能である。例:
オプション B – .htaccessファイルのコード
ファイルを動かしたくないなら、このコードを.htaccessファイルで利用する手がある。
次のコードを.htaccessファイルの一番上に置く:
<files wp-config.php>
order allow,deny
deny from all
</files>
すると、ブラウザで開くことが出来なくなる。
appearance->editor->functions.phpの順にアクセスする。
以下のコードをfunctions.phpファイルの一番下に貼り付ける:
// コメント返信リンクにrel="nofollow"を加える
function add_nofollow_to_reply_link( $link ) {
return str_replace( '")\'>', '")\' rel=\'nofollow\'>', $link );
}
add_filter( 'comment_reply_link', 'add_nofollow_to_reply_link' );
デフォルトのアンカータグの結びを置き換え – nofollowを加えているのは、str_replace()関数である。
ファイルを忘れずにアップデートしておこう。
また、SEOmozのツールバーを使って、リンクがfollowedなのか、nofollowedなのかを手っ取り早くチェックすることが出来る:
– ウェブサイト内部でページをリンクで結ぶ – 内部リンクの重要性は、重々承知しているはずだ。しかし、大半のブログの投稿は、どのような運命を辿るのかご存知だろうか?時間の経過と共に、ホームページとの距離が遠くなり、リンクジュースは薄れていく。新しい投稿やページから継続的にリンクを張っているなら話は別だが。
このセクションでは、SEO Smart Linksプラグインのインストール、設定、そして、利用方法を紹介する。(リンクを張るべきページの特定に関する詳細は、#24 – スクリーミングフロッグを使って、サイトをクロールを参考にしてもらいたい)。
例えば、2012年4月9日に投稿した次の記事から、2011年12月5日に投稿した記事に私はリンクを張っている。
SEO Smart Linksプラグインを導入する
それでは、このプラグインを詳しく説明していく。SEO Smart Linksを使うと、古い投稿への内部リンク構築が容易になる。
ステップ 1: プラグインをインストールする
次のURLにアクセスする https://wordpress.org/extend/plugins/seo-automatic-links/または、ワードプレスで「SEO Smart Links」を検索し、ワードプレスにインストールする。
ステップ 2: 設定する
ここで混乱が生じる可能性があるが、私が手を貸すので心配する必要はない 🙂
リンクが表示される場所を選択する:
重要度がとりわけ高いページを持っているなら話は別だが、TargetsとSettingsでは、Postsのみ、Process only single posts(単一の投稿のみ処理)、Process RSS Feeds(RSS フィードを処理)を選択することを薦める。
Ignore posts and pages
Ignore keywords
次に、特定のキーワードが現れた際に、リンクを張る投稿を加えていく(このプラグインの中で、最も役に立つ機能だと言えるだろう)。
Custom Keywords
最後に、Limitsを設定していく:
Limits
External Links
内部リンク構築 – おまけのアドバイス
自力で内部リンクを構築している人に重要なアドバイスを提供する。
ワードプレスのユーザーから、グーグルの検索結果ページから日付を削除する方法を訊かれることがたまにある。以下の例のように、日付を表示したくないケースが時折発生する。
time()関数を探し、置き換えるには
恐らく、この作業において最も難しいのは、ワードプレスで適切な場所を探し出し、コードを変更するプロセスではないだろうか。ここで探す必要のある関数は‘the_time()’である。
the_time()がよく見つかる場所を3つ挙げていく:
ワードプレスのファイルを検索する方法
1. FilezillaのようなFTPクライアントを利用する。
2. ワードプレスのテーマのファイルをローカルのコンピュータにダウンロードする(バックアップとして、いずれこの作業を実行するべきである)。
ワードプレスの設定全体ではなく、フォルダーのみをコピーすること:
wp-content/themes/your-active-theme-folder
3. Textwrangler等のテキストエディタを使って複数のファイルを検索する。
Search->Multi-File Searchの順にアクセスする…
Findフィールドに‘the_date’を入力する。
Otherをクリックして、テーマのフォルダにアクセスし、選択する。
テーマの名称を除き、次のようにダイアログと選択を設定する必要がある。
Findをクリックする
‘the_time’を含む全てのファイルがリストアップされた結果が表示される。 これは、ワードプレスのエディタで直接編集する必要のあるファイルである。
全てのファイルでthe_time()を変更する
恐らく、次のように表示されているのではないだろうか:
<?php the_time('F jS, Y') ?>
次のコードに置き換える:
<script language="javascript" type="text/javascript">document.write("<?php the_time('F jS, Y') ?>");</script>
仕組み: PHPの関数をJavaScriptで囲んでいる。グーグルは、ディスクリプションに対する日付を引き出す際は、JavaScriptを利用しない。そのため、ユーザーには表示するものの、グーグルには読まれない状態を作り出すことが出来る。
ワードプレスのデフォルトの“author archive”は、当該の作者が投稿した記事を全てリストアップしているだけである。私のオーサーページ: https://www.quicksprout.com/author/admin/ は、投稿した記事のリストである。そのため、私はインデックスを回避している。
独自のオーサーページの効果が最も高いのは、複数の作者が在籍するブログである。作者が一人しかいないサイトを運営しているなら、「about」ページを作った方が無難である。それでは、数名のライターが存在するサイトを運営していると仮定して、指導していく。
以下の5つのステップを踏むことになる:
ステップ 1 – ファイルの設定
ステップ 2 – 既存の作者を探す
ステップ 3 – 草稿の作成
ステップ 4 – 変数
ステップ 5 – まとめる
完全なコードのサンプル
ステップ 1 – ファイルの設定
author.phpを編集する必要がある。
appearance->Editorの順番にアクセスし、author.phpを探す。
デフォルトのテーマ、twentyelevenとtwentytenにはauthor.phpファイルが用意されている。/span>
見つかったなら、これから編集していくので、バックアップを作っておく。
見つからなかったら、archive.phpのコピーを作り、名前をauthor.phpに変更する。
最後に、編集しやすいように整理する:
新しいバージョンのauthor.phpをテキストエディタで開く(自信があるならapearanceのエディタで全て実行することも可能だが、薦められない)。
betweenget_header()からget_sidebar()までを削除する。
ステップ 2 – 既存の作者を探す
次に、コードを加えて、既存の作者を見つける必要がある – 次のコードを利用しよう:
<?php
$curauth = (isset($_GET['author_name'])) ? get_user_by('slug', $author_name) : get_userdata(intval($author));
?>
ステップ 3 – 草稿
これはテクニカルな分野ではないが、作者ページのレイアウトのラフな草稿を作っておくことを薦める。こうすることで、変数の設定が楽になる。テキストエディタの中で、草稿を作ることが可能だ。
コードを入力する前に、どのように情報を表示するのかを理解する上で大いに役立つ。
ステップ 4 – 変数
次に、表示したい情報に基づき、コードを構築する上で必要な変数を取得する。
以下にauthorの変数を全て挙げていく:
必要な変数は次の通りだ:
ステップ 5 – まとめる
注記: 恐らく、実際のHTMLとCSSのスタイリングは、この例とは若干異なるだろう。この例は、コードを構築する様々な方法の一つに過ぎない。
初めに、作者の経歴情報を掲載する – これはあくまでも例である。
HTMLに慣れているなら、問題なく変数を追加していくことが出来るはずだ。
次の情報を表示したいなら:
<h2>About: Neil Patel</h2>
実際の名前を変数とphpラッパーに置き換えればよい。つまり、次のように ニール・パテルを<?php echo $curauth->nickname; ?>に置き換えることになる:
<h2>概要: <?php echo $curauth->nickname; ?></h2>
以下にコード全体の例を掲載する:
<h2>概要: <?php echo $curauth->nickname; ?></h2>
<dl>
<dt>ウェブサイト</dt>
<dd><a href="<?php echo $curauth->user_url; ?>"><?php echo $curauth->user_url; ?></a></dd>
<dt>プロフィール</dt>
<dd><?php echo $curauth->user_description; ?></dd>
</dl>
次にループを開始し、投稿を配置していく。コードの例を、説明と共に下に掲載する:
上のセクションと同じように – HTMLを作成するものの、ワードプレスの変数に並べる必要がある。
完全なコードの例
以下にauthor.phpファイルの完全なコードの例を記載する。テーマに合うように、コードの一部を少し変更する必要があるかもしれないので注意しよう。
<?php
get_header(); ?>
<?php
$curauth = (isset($_GET['author_name'])) ? get_user_by('slug', $author_name) : get_userdata(intval($author));
?>
<!–Author Bio Box–>
<h2>概要: <?php echo $curauth->nickname; ?></h2>
<dl>
<dt>ウェブサイト</dt>
<dd><a href="<?php echo $curauth->user_url; ?>"><?php echo $curauth->user_url; ?></a></dd>
<dt>プロフィール</dt>
<dd><?php echo $curauth->user_description; ?></dd>
</dl>
<h2>作者 <?php echo $curauth->nickname; ?>:</h2>
<ul>
<!– The Loop –>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<li>
<a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link: <?php the_title(); ?>">
<?php the_title(); ?></a>,
<?php the_time('d M Y'); ?> in <?php the_category('&');?>
</li>
<?php endwhile; else: ?>
<p><?php _e('No posts by this author.'); ?></p>
<?php endif; ?>
<!– End Loop –>
</ul>
</div>
<?php get_sidebar(); ?>
<?php get_footer(); ?>
WP Super Cacheは、重いPHPファイルの代わりに、静的なHTMLページを生成する。こうすることで、サイトのスピードが大幅に改善される。このプラグインの設定は、特に初めて利用する場合、割と難しい。そのため、この時間を節約する優れたプラグインの最善の設定を、手順を追って説明していく。
プラグインの参照資料が必要なら、次のURLにアクセスして、専用のワードプレスのページを参考にしよう: https://wordpress.org/extend/plugins/wp-super-cache/
似たような名前のプラグインが幾つかあるので、プラグインインストーラで選択する際は、適切なプラグインかどうか確認してもらいたい:
インストールを終え、プラグインを有効にしたら、タブで重要な設定を行っていく。それでは、手順ごとに説明していく。
なかなか見つからないなら、settings->WP Super Cacheの順にアクセスしていこう。
タブ 1 – Easy
このタブは名前の通り、簡単である。キャッシングを有効にするだけでよい。
タブ 2 – Advanced – 設定の選択
次のオプションを選ぶ:
キャッシュが機能していることを確認する
先に進む前に、この時点で、キャッシュが適切に機能していることを確認しておきたい。また、プラグインを設定する際は、定期的にウェブサイトにアクセスして、何も壊れていないことをチェックするべきである。
キャッシュをチェックするには:
タブ 2 – Advanced – ガレージコレクションの設定
ガレージコレクションを設定することで、古いファイルや過去にキャッシュされたファイルが削除される頻度をコントロールすることが出来る。要するに:
設定のオプションの説明
ガレージコレクションに対する選択肢は2つある:
それでは、2つの異なる設定のオプションを見ていこう。
新鮮なデータを大量に提供するサイト
多くの新鮮なコンテンツを提供しているなら、ゴミ箱を空にする回数を増やし、中断期間を短くすることを薦める。この場合、次のように設定していく:
Timeoutを毎分に設定する(60秒)。そして、timerを90秒ごとに実施するように設定する。こうすることで、新しいファイルが作られる度に、古いキャッシュのファイルを捨てることが出来る。これは頻繁にアップデートされるサイトの基準値であり、状況に応じて、インターバルを調節していってもらいたい。
あまりアップデートされないサイト
これから紹介する設定は、多くて1日に1度しか新しいコンテンツが投稿されないようなサイトに向いている。また、サイドバーにウィジェットやRSSフィードがないサイトもこの選択肢を利用することになる。
上の設定は、1日または数週間に1度アップデートされるかどうかのサイトに対する設定である。timeoutを10日間に設定する(864000秒)。このケースでは、clockを使い、インターバルをtwicedaily(2回/日)に設定している。サイトに適切な時間を選んでもらいたい。新しいコンテンツを夜に投稿する傾向があるなら、- 10:00pmに実施し – 新しいコンテンツを投稿した直後にゴミ箱を空にして、再びキレイな状態を保つために、10:00amにも実施することを薦める。
ガレージコレクションを無効にする
何らかの理由で、ガレージコレクションを無効にしたくなったら、timeoutをゼロにする。
最後に、実践的ではないが、私自身が実際に役に立つと感じた貴重なワードプレスのプラグインを紹介していく。不完全なリストや標準以下のプラグインを含むリストは無数に存在するが、私の知る限り、これ以上、広範なリストは作成されていない。
注記: このガイドを作成する時点で有効なプラグインをリストアップしているが、皆さんが実際にこのガイドを読む頃までに、役に立たなくなっていることも考えられる 🙂
これで強力なワードプレスのサイトが出来あがったはずだ。ワードプレスに関しては、オンサイトの最適化の最後のセクションでも取り上げている。次のチャプター「高度なデータリサーチ」では、オフサイトのSEOに取り掛かる。
この記事は、Quick Sproutに掲載された「Chapter 4: Word Press」を翻訳した内容です。
SEO最新情報やセミナー開催のお知らせなど、お役立ち情報を無料でお届けします。