ウェブログ

管理画面からSEOの設定ができるフィールドを追加する


このサンプルコードはWordPress 4.1から有効になった「add_theme_support( ‘title-tag’ )」が有効になっている前提のコードとなります。設定方法はこちら

参考: タイトルタグ – WordPress Codex 日本語版

WordPressはよく「SEOに強い」と言われますが、果たしてそうでしょうか。
正しいHTML構造やheadタグへの必要タグの出力などは公式テーマや有料テーマを利用していれば、大体は対応しているはずです。
また、オリジナルテーマでも正しく記述ができていれば問題ないでしょう。

しかし、「利用するテーマがSEOフレンドリーに作られている」「SEOプラグインを利用してSEO対策をしている」「カスタマイズし、SEO項目を設定できるようにしている」という前提でない場合、SEOに強い状態とはいえないため対策が必要です

  • 適切なtitleタグの出力
  • 個別のmeta descriptionの出力
  • 個別のmeta keywordsの出力
  • 重複ページ対策のためのno index処理が可能か

例えば、現在最新の公式テーマであるTwentySeventeenでは上記のような設定方法はないためプラグインもしくは独自カスタマイズによる対応が必要です。

前置きが長くなりましたが、プラグインを利用せずに各個別記事管理画面側からSEOの設定ができるようにする設定方法をご紹介します。
functions.phpのテンプレートファイルを修正する形となりますので、オリジナルテーマではない場合は子テーマを作成して編集することをおすすめします。

管理画面へ追加される箇所


今回の設定で投稿や固定ページ等にSEO入力項目が追加されます。
一つずつ見ていきましょう。

タイトル設定 – titleタグ


titleタグには通常であればタイトルに設定したものが反映されますが、「titleタグに別の文言を設定したい」「SEO用に個別に設定したい」というケースがあると思います。その際にこちらに設定すればtitleタグにのみ、反映されるようになります。
未設定時には各記事のタイトルに設定した文字列を表示します。

キーワード設定 – meta keywords


metaタグのkeywordsの設定項目となります。
こちらに入力した文字列が表示されるので、複数入力の場合は間のカンマは全角や読点(、)ではなく、半角のカンマ(,)で設定します。
とはいえ、metaキーワードはこの数年の流れから重要度は低いと見なされており、実際Googleはmeta keywordsを指標に入れていないようです。念のため入れる程度でいいかもしれません。実際現在はクライアントには「設定しなくてもOK。念のため重要なキーワード1つ程度いれておくと安心」というふうに伝えています。
未設定時には何も表示しません。

説明文設定 – meta description


SEOにおいて重要な項目であり、SEO担当者が大好きな(笑)、metaディスクリプションです。
実質、各記事を更新する際に必須入力項目でしょう。文字数はベストというのはありませんが、大体100-120文字程度がいいのではないのでしょうか。
変にキーワードを詰めすぎるのではなく、ユーザーからみてページの概要やまとめをわかりやすく書くようにします。
未設定時には本文の文字列を120文字切り出して表示します。

検索結果から非表示- meta no index


例えばECサイト等で同じ商品でカラーやサイズが違う場合などで複数登録する必要があると思います。または、別サイトで運用している記事と同じ記事を配信するため内容が同じになってしまうなど。
その場合は検索結果に表示されないように検索エンジンに伝える機能である「No index処理」を行います。
このチェックを有効にすると、metaタグのno index設定が吐き出されるようになります。
未設定時には何も表示しません。

サンプルコード

以下のコードをfunctions.phpに記載します。

少し長いですが・・・
必ずfunctions.phpはバックアップを取っておきましょう。

ソースコードはこんな感じになります

管理画面側から各項目を設定すると、設定した項目(titleタグ、metaタグkeywords、metaタグdescription、metaタグnoindex)が表示されるようになります。
表側にはこのように表示されます。

注意点や補足

以下、利用するにあたっての注意点です。

カスタム投稿タイプの場合は要設定

上記のコードは通常の「投稿」「固定ページ」は特に設定は不要ですが、カスタム投稿タイプを設定している場合は設定が必要です。

この箇所のコメントアウトした部分を解除し、カスタム投稿タイプのスラッグ名を入力します。仮にカスタム投稿タイプ「お客様の声(スラッグ名:case」を作ったとします。
その場合は以下のような修正となります。

また新しいカスタム投稿タイプを追加した場合は追加しないと表示されないため、同じように都度設定しましょう。

投稿ページの場合はサイト名を出力しない設定

これはサイトの運用ルールで変えてもらえればと思いますが、投稿文字数は大体30文字くらいが検索結果に表示される文字数目安になります。
そのため、サイト名まで出力されていると途切れてしまうため、投稿タイプのみサイト名を出力していません。
出力が必要な場合は以下のように修正します。

add_theme_support( ‘title-tag’ )が記載されていない場合の設定方法

テーマの方で有効になっていない場合は、以下参考を元にfunctions.phpに追加してください。この関数が有効になっていると、titleタグをテンプレートファイル内に記述する必要がなくなります。

結構ソースコードのボリュームがありますね・・・
ご要望があればプラグインにしたいと思います。

元サイトをご存知の方お知らせください

最後に、今回のコードは、数年前にどなたかが公開していただいたサンプルコードを元に改修しています。
記事公開にあたって参考サイトとしてご紹介したかったのですが、検索してもでてきませんでした・・・
もし「このサイトでは?」など情報ありましたら、サイト内で紹介させていただきたいのでお知らせください。

この記事を書いた人

池田祐太郎

池田祐太郎

WordPress好きの池田です。Webの仕事の前はライブハウスでブッキングや音響をしてました。PHP, JavaScriptを自由に操りたいと思いつつ、つい訪れたサイトのソースコードを見てしまいます。


CONTACTお問い合わせ / お見積もり