WordPressでSEOを強化するための定番プラグイン、All in one seo packで設定したdescriptionが反映されない場合の対処法を紹介します。
All in one seo packで設定したdescriptionが反映されない場合は、大抵この2つが原因です。
- descriptionが2ヶ所ある
- <head>内に<?php wp_head(); ?>タグがないか、適切な場所に設置されていない
出力されたdescriptionは、webサイト情報の調査ツールで確認できます。All in one seo packを設定した後も、descriptionをちゃんと確認するようにしてください。
All in one seo packで設定したdescriptionが表示されない!?
先日、WordPressのSEOをもう一度見直そうと思って、以前に製作したwebサイトのページ情報をチェックしておりました。
そのwebサイトのソースをチェックしてみたところ、All in one seo packで設定したdescriptionはきちんと出力されているのですが、何気なくページ情報表示ツールで確認してみると、descriptionにはAll in one seo packで設定したものではなく、「一般設定」で入力したキャッチフレーズが表示されていたのです。
WordPressでSEOが考慮されていないテンプレートを使うと、「一般設定」のキャッチフレーズが使い回しされるので、どのページにもほぼ同じdescriptionが表示されます。
ってことは、今まで各ページに設定していたAll in one seo packのdescriptionは無効で、全く役に立っていなかったことになります。
一応、Googleで検索した時に表示されるdescriptionは、内容を元にある程度まで自動的に書き換えてくれますが、全部そうなるとは限りませんし、書き換えられたdescriptionもこちらの意図するものではありません。
いろいろ試してもダメなので、別のSEOプラグインを入れようかと思ったのですが、<head></head>内に<?php wp_head(); ?>タグを追加して、重複していたmeta name descriptionを1つにすると、All in one seo packで設定したdescriptionが表示されるようになりました。
WordPressのdescription
では、実際の事例を参考に、description設定を説明していきます。
WordPressでは、SEO対策がされていないテンプレートを使った場合、一般設定のキャッチフレーズで入力した内容がdescriptionとして各ページで使い回しされます(テンプレートによる)。
ソースを見ると、meta name descriptionはこのようになってます。
<meta name="description" content="<?php echo trim(wp_title('', false)); if(wp_title('', false)) { echo ' - '; } bloginfo('description'); ?>">
このコードから生成されるdescriptionは、各ページのタイトルが頭に付くようになってます。固定ページだと、このようなdescriptionになります。
「固定ページタイトル」+「一般設定のキャッチフレーズ」
でも、これでは各固定ページの内容が正確に反映されません。各ページごとのdescriptionをきちんと設定するために、いわしはAll in one seo packを使っています。
WordPressにAll in one seo packをインストールすると、各ページごとのtitle、description、keywordや、nofollowなどの細かい設定ができるようになります。いわしの場合は、descriptionだけ設定しています。
以前はtitleも対人間用と対サーチエンジン用でそれぞれ別のものを設定していましたが、Googleからクローキング扱いされるリスクを避けるため、今はdescriptionだけ設定しています。
All in one seo packでdescriptionを設定
All in one seo packをインストールすると、各個別ページにtitleやdescriptionが設定できるようになります。さっそく固定ページにオリジナルのdescriptionを設定してみました。
でも、出力されたdescriptionを確認してみると、一般設定のキャッチフレーズが表示されています。All in one seo packを入れる以前のままですね。あれれ、おかしいなぁ・・・
All in one seo pack使用時はheader.phpのdescriptionを消す
実はAll in one seo packを入れると、ソースにdescriptionのコードが2つ出来てしまうので、All in one seo packで設定したdescriptionがきちんと表示されない場合があるのです。
先にあるmeta name description を止めないといけません。
<meta name="description" content="<?php echo trim(wp_title('', false)); if(wp_title('', false)) { echo ' - '; } bloginfo('description'); ?>">
ダッシュボードから「外観」→「テーマ編集」を選択して、右のメニューから「ヘッダ (header.php)」を選択します。そこに記載されているdescription生成用のコードを消去してください。
WordPressのテーマによって記載は異なりますが、基本的にmeta name=”description”云々の箇所を消せばOKです。
もしAll in one seo packが不要になった場合は、消したmeta name descriptionをちゃんと復活させましょう。そうしないとdescriptionが出力されなくなります。
All in one seo pack使用時は<?php wp_head(); ?>を追加
All in one seo packを始めとするWordPressプラグインの中には、基本的に<?php wp_head(); ?>タグがないと動作しないものがあります。
先にあったmeta name descriptionを消去しても、All in one seo packで設定したdescriptionが出力されない場合は、<head></head>内に<?php wp_head(); ?>タグを追加してみてください。
先程と同様に、ダッシュボードから「外観」→「テーマ編集」を選択して、右のメニューから「ヘッダ (header.php)」を選択します。
<?php wp_head(); ?>
ここで注意点ですが、ノッティ氏の記事によると、<?php wp_head(); ?>タグは設置してもきちんと動かない場合があるとのこと。
<?php wp_head(); ?>タグは</title>の真下に設置するのがポイントなので、</title>の真下に<?php wp_head(); ?>を追加しました。
All in One SEO Packのdescription設定と一致
これでAll in One SEO Packで設定したdescriptionと、出力されたdescriptionが一致するようになりました。
All in One SEO Packで設定したdescriptionと、出力されたdescriptionがちゃんと一致してますね。めでたしめでたし・・・
descriptionの確認は、「SEOチェキ」を使ってください。該当ページのURLを入力するだけで、そのページの情報がいろいろ確認できますよ。オススメです!