WordPressでブログ運営を始めるにあたって、まず最初に入れろとよく言われているプラグインに「All in One SEO」があります。 私も使っていたのですが、この度サイトのカスタマイズをしている時に「これ必要ないんじゃないの?」と思って、自分で実装してみたら割とうまくいったので、紹介したいと思います。
All in One SEOについて
もう使われている方ならある程度分かるかと思いますが、まず最初にそもそもAll in One SEOとはどんなプラグインなのかについて紹介します。
機能
まず最初に機能について振り返っていきます。
メタ情報の整理
検索結果を思い出してください。表示されるのはタイトルや本文の抜粋だと思います。これらの情報は「メタ情報」と呼ばれて、投稿の内容を簡潔に説明するための情報です。これをちゃんと投稿に付与することで、Googleが検索結果にその投稿を乗せやすくなります。
その「メタ情報」を整理してくれる機能がこのプラグインには搭載されています。本文の抜粋を自分で入力することもできますし、本文の頭の方から自動的に切り取ってそれをメタ情報として設定することもできるようです。
ノーインデックスの設定
noindexといって、検索エンジンにクロールされない(検索結果に表示されない)ような設定を簡単にできます。個人ブログにおいてクロールされたくないページなんてそんなにあるのかなーって思いますがね。
アナリティクスの設定
Googleアナリティクスなどのアクセス解析ツールを使うために必要なタグなどを自動的にHTMLコード内に埋め込んでくれます。
サイトマップ作成
今となってはもうWordPressでは標準でサイトマップ(効率的にクロールするために必要な、サイト内の投稿のリスト) を作ってくれるようになっていますが、そのデフォルトのサイトマップから得られる情報はかなり少なく、SEO的に良いものとは言えません。
そこで、このプラグインを使えば自動的にめちゃくちゃ機能的なサイトマップを生成してくれるようになります。 そしてより検索結果に出やすくなるということですね。
このプラグインを消したい理由
2019年にサイトを解説してから2023年頭までの4年間、みっちりとこのプラグインを使い続けていたわけですが、この度、訳あってこのプラグインを削除したくなりました。
重い
一番の理由はこれですね。機能に不満があったとかじゃなくて、むしろ機能がたくさん詰め込まれすぎていて重いという不満です。All In One SEOはもう管理画面を見てわかるめっちゃ高機能なプラグインなので、たとえ無料版であったとしてもなかなかサイトが重たくなってしまいます。
管理画面が重くなるだけならまだ良いのですが、基本的に閲覧者が投稿ページに訪問するときも一度テーマファイルやプラグインファイルは読み込まれるので、重たいプラグインがたくさん含まれている場合には、ページ表示速度に影響が出てしまいます。そして結果的にGoogleからの評価が低くなったり、ページの読み込みをあきらめて閲覧者が前のページに戻ってしまったりするのです。
使わない機能があるから
色々な機能を持ち合わせているこのプラグインですが、機能が多くて使いこなすことができないです。というか使いこなさなくても良い機能もあったりするわけで、例えば先ほど紹介した「noindex」を自動的に付与してくれる機能なんかも使わないわけです。
あとSNSのアカウント情報を自動的にメタ情報に埋め込んでくれる機能もあったりしますが、使うメリットをそこまで感じないので使ってないです。
とまぁいろいろな機能があるのですが、正直全部の機能を使っているわけではないというか、むしろ使ってない機能の方が多い気がするので、サイト重たくしているだけかなと思って消しました。
このプラグインを消したい理由
2019年にサイトを解説してから2023年頭までの4年間、みっちりとこのプラグインを使い続けていたわけですが、この度、訳あってこのプラグインを削除したくなりました。
重い
一番の理由はこれですね。機能に不満があったとかじゃなくて、むしろ機能がたくさん詰め込まれすぎていて重いという不満です。All In One SEOはもう管理画面を見てわかるめっちゃ高機能なプラグインなので、たとえ無料版であったとしてもなかなかサイトが重たくなってしまいます。
管理画面が重くなるだけならまだ良いのですが、基本的に閲覧者が投稿ページに訪問するときも一度テーマファイルやプラグインファイルは読み込まれるので、重たいプラグインがたくさん含まれている場合には、ページ表示速度に影響が出てしまいます。そして結果的にGoogleからの評価が低くなったり、ページの読み込みをあきらめて閲覧者が前のページに戻ってしまったりするのです。
使わない機能があるから
色々な機能を持ち合わせているこのプラグインですが、機能が多くて使いこなすことができないです。というか使いこなさなくても良い機能もあったりするわけで、例えば先ほど紹介した「noindex」を自動的に付与してくれる機能なんかも使わないわけです。
あとSNSのアカウント情報を自動的にメタ情報に埋め込んでくれる機能もあったりしますが、使うメリットをそこまで感じないので使ってないです。
とまぁいろいろな機能があるのですが、正直全部の機能を使っているわけではないというか、むしろ使ってない機能の方が多い気がするので、サイト重たくしているだけかなと思って消したくなりました。
自分で実装できそうだから
アナリティクスのコードをHTMLコード内に挿入したり、メタ情報を投稿内に埋め込んだり、サイトマップを作ったりというのはよく考えたら自分でできることなんじゃない? と思いましたので、消したくなりました。
自分でSEO対策する方法
ていう感じでAll In One SEOプラグインを消したのですが、そのままではさすがにSEOスコアが下がってしまうでしょう。ということで、All In One SEOプラグインがやっていたことを思い出して、ある程度の機能を自分で実装してみることにしました。
サイトマップ機能
まずはサイトマップ機能です。一応サイトマップというものを作らなくても勝手にGoogleがクロールしてくれて記事の内容を把握してくれる… 可能性はあるのですが、基本的にサイトマップを作った方が効率的にクロールできるようになるのでそれだけ検索結果に載せてもらえる可能性が高まります。
そして先ほど説明した通り、WordPressには標準でサイトマップを生成する機能が備わっているわけですが、ちょっと情報が不十分なので改造していきます。
add_filter( //サイトマップを改造する
'wp_sitemaps_posts_entry',
function( $sitemap_entry, $post, $post_type ) {
$modified_jp = get_the_modified_time('c', $post->ID);
if ( 'page' === $post_type ) {
$sitemap_entry['lastmod'] = $modified_jp; //更新日を追加
if ( 'home' === $post->post_name ) {
$sitemap_entry['changefreq'] = 'daily';
$sitemap_entry['priority'] = 1.0; //最新記事一覧ページの優先度は高く
} else {
$sitemap_entry['changefreq'] = 'monthly';
$sitemap_entry['priority'] = 0.7; //それ以外のページの優先度はちょっと低めに
}
}
// 投稿、カスタム投稿タイプなど
else {
$sitemap_entry['lastmod'] = $modified_jp;
$sitemap_entry['changefreq'] = 'weekly';
$sitemap_entry['priority'] = 0.7; //投稿ページの優先度はちょっと低めに
}
return $sitemap_entry;
},
10, 3 );
add_filter(
'wp_sitemaps_add_provider',
function ( $provider, $name ) {
return ( $name == 'users' ) ? false : $provider;//著者アーカイブページはインデックスしない
},
10, 2 );
add_filter( 'wp_sitemaps_taxonomies', function ( $taxonomies ) {
unset( $taxonomies['post_tag'] );
return $taxonomies; //タグアーカイブページはインデックスしない
} );
上のようなコードをfunction.phpに貼り付けました。上の方でサイトマップに更新日を追加しています。そしてクロール頻度とクロール優先度(Googleはこの値を無視するみたいですが) を設定しています。
そして下でフィルターフックで、著者アーカイブページとタグアーカイブページをサイトマップに表示しないように設定しています。 検索結果に載せたいならこの記述を消せば大丈夫です。

そして試しにサイトマップを表示させてみました。例えばBableTechだったら「https://bablishe.com/wp-sitemap.xml」という場所にあります。一応単に「sitemap.xml」と入力してもリダイレクトしてくれるみたいですが、Google Search Consoleなどにサイトマップ登録をするときはちゃんとwp-sitemap.xmlと入力しましょう。
そして確認してみると、しっかりURLと最終更新日などの情報が表示されました。(投稿サイトマップページ)
とりあえずこのサイトマップに切り替えてから一週間くらいは経つのですが、割とすぐにGoogleの検索結果に載っていますし、ちゃんと機能しているかと思います。
メタ情報
続いてメタ情報をつけていきましょう。 一口にメタ情報と言っても色々あるわけですが、タイトルや最終更新日に関してはプラスアルファで追加する必要性を(今のところは)あまり感じていないので、ここでは抜粋だけ追加していきたいと思います。
<!-- 投稿のメタ情報を取得していく -->
<?php if(get_the_content()){
$description = get_the_content();
$description = str_replace(array("\r\n","\r","\n"," "),'',$description);
$description = wp_strip_all_tags($description);
$description = preg_replace('/\[.*\]/','',$description);
$description = mb_strimwidth($description,0,200,"..."); ?>
<meta name="description" content="<?php echo $description; ?>"><?php
}
?>
metaタグは基本的にheadタグの中に入れないとうまく認識してもらえなかったりするので、テーマファイルのheader.phpテンプレートのheadタグの中に上のような記述を入れてみます。
本文のHTMLコードを取得して、改行コードやHTMLタグなどの余計な部分をそぎ落とします。あとはショートコードも、無かったことにしています。ショートコードを展開してHTMLコード化するという手もあるわけですが、ショートコードの中身がそんなに重要だと思わなかったのでこうしました。
これで開発者ツールなどから確認してみたのですが、しっかり反映されていました。
アナリティクスなどのコード設置
続いて、Web解析ツールのためのコード設置です。これはシンプルに設置するだけです。
https://analytics.google.com/analytics/web/?hl=ja#/
Googleアナリティクスで指示されているコードをそのままheader.phpのheadタグの中に記述しても良いのですが、それだとページ読み込み時にアナリティクスのスクリプトも同時に読み込んでしまって表示速度が遅くなってしまうので、以下の記事のように遅延読み込みするスタイルにしました。
【99点】Google広告とアナリティクスのJSを遅延読み込みする方法【WordPress】
そしたらページの表示速度がとんでもなく改善されて、上の記事のようにGoogleのWeb分析サービスのパフォーマンスにおいて99点をたたき出せましたね。
そしてアナリティクスで実際に確認してみたらちゃんと動作していたのでこのまま使うことにしました
SEOスコアを確認してみる
これらを一通り実装してみて、実際にGoogleが提供するWeb分析サービスでテストしてみました。これはあくまでも、一定の評価基準に基づいて特定のページのSEOスコアの目安を測るものなので、このまま厳密に検索結果に反映されるかと言ったらそうではないですが、一応目安くらいにはなると思います。
モバイル版評価 98点

モバイル版の評価は結構厳しくて、なかなか高得点を出すことが難しいのですが、結構全体的に90点は超えました。パフォーマンスも99点でかなり軽いですし、SEOのスコアも98点です。あとは配色やボタンの小ささなどが指摘されていましたね。これも今後直していきたいと思います。
パソコン版評価 100点

続いてパソコン版の評価です。100点ですね。First Contentful Paintで0.3秒ってのが恐ろしいですね。
ただ、まだ改善点は結構あったりするので、オール100点をオールウェイズ出してくれるようになるように頑張りたいと思います。
今後は、表示速度改善のための方法やSEO対策についても色々発信していきたいと思いますので、よろしくお願いします。