WordPressテーマとAll in One SEOの競合 — OGPメタ重複を解消する方法

Web製作

WordPressでテーマとSEOプラグインを併用していると、OGPのメタタグが重複して意図しない表示になることがあります。自分もテーマとAll in One SEOの競合で時間を溶かした経験があります。

正直なところ、SEOプラグインの設定に時間を費やすより記事を書くほうがSEOには貢献します。技術的な最適化は「壊れていないことを確認する」程度で十分だと思っています。ただ、OGPの重複は「壊れている」側の問題なので、ここは直しておきたいところです。

この記事では、WordPressで発生しがちなOGP設定の競合問題と対処法について、JINテーマでの実例をもとに説明します。

OGPとは

OGP(Open Graph Protocol)は、X(旧Twitter)やLINEなどでURLを共有したときに表示されるリンクプレビューの情報を制御するための仕組みです。Facebookが開発したもので、現在はほとんどのプラットフォームが対応しています。

一例として、WordPress日本語サイト https://wordpress.com/ja/ に対するOGP表示を見てみます。

WordPress日本語サイトのOGP表示例
WordPress日本語サイトのOGP表示例(2024年7月時点)

記事のアイキャッチやタイトル、概要説明(デスクリプション)が綺麗に表示されることで、アクセス率の向上が期待できる重要な要素です。

OGPが正しく設定されているかは、ラッコツールズで簡単に確認できます。

OGP確認:facebook、twitter、LINE、はてなのシェア時の画像・文章を表示 | ラッコツールズ(別ウィンドウで開く)

それでは具体的な問題と、その対策を説明します。

重要:本記事の前提条件

  • All in One SEO を名指ししていますが、本質的な問題はその他のSEO対策プラグインでも発生するものです。All in One SEO を使っていないからといって安心するのではなく、OGPツールを使って内容を確認しましょう。その結果が全てです。

  • OGP確認ツールを使わなくても、HTMLソースから簡単に確認することができます。例えば <head>タグ内を og:description で検索してみてください。ここで2つ以上が検索HITしてしまったら問題です。

  • この記事では、当サイトで利用している(2024/07/21現在)WordPressテーマ JIN での実例をもとに説明しています。JINに限らず、その他のテーマでもプラグインとの相性問題が発生しますので、油断せずに確認しましょう。

本記事で説明する内容は特定のプラグインやテーマに限った問題ではなく、WordPressサイト運営の全般に該当する課題です。この記事で取り上げるプラグインやテーマを使っていないからと安心するのではなく、ぜひ一度確認してみてください。

基礎解説:JINとAll in One SEOプラグインの競合問題

WordPressテーマ「JIN」を使用しつつ、SEO対策において有名な「All in One SEO」プラグインをインストールしました。ところがOGP表示が意図した通りに行われない事象に遭遇してしまいました。

調査したところ、JINにおいては作者自身が All in One SEO プラグインの利用を明確に非推奨としています。

JIN公式サイトでのAll in One SEO非推奨の記載
JIN公式サイトでのプラグイン推奨情報(2024年7月時点)

引用 【公式】WordPressテーマ「JIN」に入れておきたいプラグイン|JIN MANUAL

また、ひとつひとつの列挙はしませんが、他の有料テーマ公式サイトの発信情報を見ても、テーマ内蔵のSEO機能との重複問題について言及されていることがあります。

システムエンジニアの目線から補足解説

「有料テーマのSEO機能」と「All in One SEO」との重複とは、具体的に何を指しているのでしょうか?

ここでいう「重複」が指す範囲を正しく捉える必要があります。

  • SEOのひとつに重要視される観点として、記事のメタ情報(デスクリプション、キーワード、その他)があります。これら記事ごとのメタ情報を設定する機能を有料テーマでも有している 場合があります。

  • All in One SEO は非常に高機能で、無償版と有償版があります。もし有償版の機能をバリバリと使いこなしているようでしたら、そのまま使い続けても問題ありません。有料テーマとはいえSEO機能専門の有償プラグインには機能が及ばないためです。

  • 一方、All in One SEO の無償版で済む程度で利用している場合、メタ情報の出力や、サイトマップ生成くらいの使い方しかしていないケースが大多数でしょう。スコアリング機能を意識している方もいるかもしれませんが、日本語環境では英語圏ほど正しく動作しませんので、そこに時間をかけるのはあまり生産的ではありません。

JINテーマはメタ情報を出力する程度の目的であれば標準機能として具備しているため、わざわざ重厚長大な All in One SEO プラグインを導入する必要はないと言えます。管理画面もごちゃごちゃしてしまいますしね。

詳細解説:メタ情報(OGP情報等体)の競合問題の実例

引き続き JIN と All in One SEO を対象にした解説をしますが、この考え方でその他全てのケースでも点検が可能です。Webサイトの仕組みに関する知識が増えますので、一緒に確認してみましょう。

メタ情報出力が重複している実例

次の図(HTMLソース)を確認してください。 og:description が重複している例です。

og:descriptionが重複しているHTMLソースの例
og:descriptionが重複しているHTMLソースの例(2024年7月時点)

これ、よくないです。

OGPをどのように表示するかは、表示するシステム側の解釈になりますので「必ずこうなる」とは断言できませんが、プログラムのお作法から想像するに最初に記載されている方を優先されるケースが多いかもしれません。

そうなると、この場合は All in One SEO でせっかく丁寧に記載していても、テーマ機能の方では全く反映されておらず 「何も対策をしていない」と等しい状態になってしまいます 。あるいは、自動生成された意図せぬメタデスクリプションになっているかもしれませんね。

なぜ重複と内容の食い違いが生じてしまうのか

答えは、記事投稿画面でのメタ設定の場所が違うからとなります。

All in One SEO だとこのようなメタ設定画面になりますね。プレビューも含めて華やかになるのは魅力的です。

All in One SEOのメタ設定画面
All in One SEOのメタ設定画面(2024年7月時点)

一方、JINテーマが内蔵しているSEOのメタ設定はこのようになります。見出しが「SEO設定」とあって非常に汎用的すぎるので、JINによる機能だとは分かりづらいのが不親切かもしれませんね・・・。

JINテーマ内蔵のSEO設定画面
JINテーマ内蔵のSEO設定画面(2024年7月時点)

画像は全て Gutenbergエディターのものです。

対策のバリエーション

  • もし、利用しているテーマがメタ出力機能を有している場合は幸運です。おそらくテーマ設定でチェックボックスのようなものでON・OFFをするだけで停止できるでしょう。

  • 有名なテーマのひとつである SWELL においては、最初からメタ出力は別の手段で解決する設計方針になっている (外部リンク) ため、テーマ内蔵機能が邪魔をすることはありません。

  • JINテーマにおいては、設定のみでは解決しないため、強引ですがテーマを編集します。(後述)

重複解消のための対策方法【初級者向け】

第一の方法として、最も綺麗な状況にするならば「素直にテーマ内蔵の機能だけを使って、余計なプラグインは停止しましょう」となります。

第二の方法として、SEOプラグインを継続利用する必要がある場合においては、テーマ内蔵のSEOメタ設定とSEOプラグイン側のメタ設定に二重投入するしかありません。当然、HTMLソース上では二重表示され続ける問題は継続しますのでHTML構造上は100点とは言えませんが、少なくとも情報のバラつきは解消することができます。

重複解消のための対策方法【中級者向け】

テーマ内蔵のSEO機能があるのはわかったけれど、All in One SEO プラグインを継続利用する必要がある場合もあるかもしれません。重複問題も解消したい――そんなときのヒントをお伝えします。

このレベル以降の対策はテーマによってのケースバイケースになりますので「ものによる」としか言えないため、ヒントという曖昧な表現をしています。JINテーマを例に解説しますので、JINテーマならば記載の手段がそのまま利用できます。

ただし、初心者では不慣れな操作が登場しますので安易に実施しないよう注意してください。

JINテーマでの対策方法

まず、テーマがどのように構成されているのかを把握します。 (2024/7現在の最新配布ソースを対象とします)

header.php を見ると、OGPを出力している部分が以下のようになっています。

header.phpのOGP出力部分
header.phpのOGP出力部分(2024年7月時点)

ここから読み取れるのは、OGPの出力に関するHTMLソースは ogp.php に一元管理されているということです。実際、 ogp.php を見るとOGP関連のメタ情報ばかりですので正しいようです。

ここで、2つのやり方が考えられます。

  • header.php から、図の8行目の一文をまるまる削除して保存。その新しい header.php をアップロードする。

  • ogp.php ファイルの中身を全て削除して、空になった ogp.php をアップロードする。

どちらの手段をとっても結果は同じになります。そのうえで、後者 「2」の ogp.php の中身を空にする方法を推奨 します。理由は、将来JINのテーマに更新がかかって再配布された時の更新作業の負担を削減するためです。

ここで「1」の手段を選択してしまうと、JINテーマを更新するときに同様の作業を必ず実施しなければなりません。単純に面倒くさいですね。

一方の「2」では、もし ogp.php に更新がかかったとしても「そもそもJINのOGP出力に期待していないから中身を空っぽにしたので、そのまま空っぽであり続けてくれればよい」ことになりますよね。なので、今後も更新作業をする必要がないと言えます。(もし、ファイル名が変わったりすると修正が必要ですけどね)

結果、以下のように進めます。

  1. 1
    ogp.php を空にする

    ファイルの中身をすべて削除して、空の ogp.php を用意します。

    ogp.phpを空にした状態
    ogp.phpの中身を空にした状態(2024年7月時点)
  2. 2
    テーマのフォルダに ogp.php をアップロードする

    以下どちらかのケースになるはずです。

    • JINのテーマを1つで運用している場合: wp-content/themes/jin
    • JINの子テーマを作成して運用している場合: wp-content/themes/jin-child
    テーマフォルダへのアップロード
    テーマフォルダにogp.phpをアップロード(2024年7月時点)
  3. 3
    管理画面から確認する

    一度アップロードしてしまえば、管理画面からも確認できるようになります。

    管理画面でのogp.php確認
    管理画面でアップロードしたogp.phpを確認(2024年7月時点)

WordPressのテーマには「親テーマ」と「子テーマ」という概念があります。多くのテーマ導入においては、オリジナルの「親テーマ」原本として保護しつつ、その内容を継承(コピーみたいなもの)をした「子テーマ」で運用することが推奨されています。

この手の作業は「子テーマ」で実施した方が事故が発生しづらく、子テーマとしての本領発揮する場面です。

結論:JINテーマでAll in One SEOプラグインを使用しないほうがいい理由

1. 公式サイトで非推奨と明確に取り上げられているから

JINテーマの公式サイトでも、All in One SEOプラグインは非推奨とされています。理由としては、JINテーマ自体にSEO対策機能が充実しているため、追加のプラグインが不要であることが挙げられます。

2. OGP重複による各種サイトでの取り扱いに悪影響があるから

OGP(Open Graph Protocol)のmetaタグが重複している場合、検索エンジンやSNSでの表示に問題が発生する可能性があります。具体的には、以下の影響が考えられます。

  • 情報の混乱: 検索エンジンやSNSがどのmetaタグを優先すべきか判断できず、表示される情報が不正確になる可能性があります。

  • SEO効果の低下: 検索エンジンがページの評価を正確に行えず、SEOスコアが低下する恐れがあります。

  • ユーザー体験の悪化: SNSシェア時に適切なサムネイル画像やタイトルが表示されず、クリック率が低下する可能性があります。

JINを例にして具体的に例えると、OGP用のmetaタグが「JINテーマ」と「All in One SEOプラグイン」の両方で設定されている場合、SNSにシェアされた際に異なるサムネイル画像やタイトル、デスクリプションが表示されることがあります。

この時に困るのは誰でしょうか?そう、ユーザー(読者)です。ユーザーは混乱し、ページの信頼性が低下する可能性があります。

まとめ

テーマの公式サイトで推奨・非推奨プラグインの情報を一度確認しておくのが最も手っ取り早い対策です。OGPの重複はラッコツールズやHTMLソースで簡単にチェックできます。

JINテーマとAll in One SEOの競合問題を例に、テーマとSEOプラグインのOGP重複について書きました。JINに限らず、テーマ内蔵のSEO機能とプラグインが衝突するパターンはよくあります。

自分の経験からいうと、テーマの公式サイトで推奨・非推奨のプラグイン情報を確認しておくのが手っ取り早いです。そこに書いてあることに素直に従うだけで、この手のトラブルはだいたい避けられます。自分もJINで実際にラッコツールズでOGPを確認して重複を見つけ、ogp.php を空にする方法で対処しました。公式が非推奨と言っているものを無理に使うより、素直に従うほうが結局は時間の節約になります。SEO対策に時間をかけるなら、メタタグの調整より記事を書くことに使ったほうがいいと思っています。

Related Posts