短いメタデータ(descriptions)。All in One SEO Packの自動生成が原因でした。

2016/10/16


wordpress

Googleのウェブマスターツールでこのブログの状況を確認していたら、いくつかの記事に「短いメタデータ(descriptions)」という警告が表示されていることに気が付きました。

確認してみると、たしかにmeta descriptionが短すぎます。10文字くらいしか表示されていません。

このブログでは、ワードプレスのプラグイン、All in One SEO Packでmeta descriptionを自動生成しているのですが、どうやら、いくつかの記事でそれが上手く機能していないようなんです。

今回は、その原因と対策をご紹介します。

スポンサーリンク

短いmeta descriptionが生じる原因は、半角空白

All in One SEO Packで各記事のmeta descriptionを自動生成すると、記事冒頭の160文字を抜き出して、記事抜粋として設定してくれます。
これはとても便利な機能なのですが、先ほどご説明したとおり、いつかの記事では正常に機能していませんでした。

それらの記事を比較したところ、ひとつ共通点がありました。

それは、記事の冒頭部分に半角スペースを含んでいるということ。
半角スペース以降の文字が見事に表示されていないんです。

プラグインのソースコードを確認したわけではありませんが、おそらく原因はこれだろうと思います。
実際、半角スペースを全角スペースに書き換えた場合、また、半角スペースを に書き換えた場合は、いずれも正常に記事の抜粋を取得出来ました。

ただ、よくわからない点がひとつあって、半角スペースを含んでいても抜粋を正しく取得できる場合もあるんですよね。
うーん。謎です。

対策

で、どうしたかというと、All in One SEO Packでmeta descriptionを自動生成するのをやめました。
その部分は、プラグインに頼らず、自力でどうにかすることにしました。

と言っても簡単で、次のコードをheader.phpに記入しただけです。
このコードは、【WordPress】プラグインを使わずに記事ごとに自動でkeywordsとdescriptionを設置する方法|ONZEを参考にさせてもらいました。ありがとうございます。

<?php  /*個別記事の抜粋を表示*/ ?>
<meta name="description" itemprop="description" content="<?php
if (is_single()){
$content_summary = strip_tags($post->post_content);
$content_summary = ereg_replace("(\r\n|\r|\n)", "", $content_summary);
$content_summary = mb_substr($content_summary, 0, 160);
echo $content_summary; } ?>" />
スポンサーリンク
スポンサーリンク