WordPressでSEO対策をしていると、「metaタグ(title:タイトルやdescription:ディスクリプション)が <body> 内に出力されている」という問題にぶつかることがあります。最初はプラグインの不具合か、テーマの構造のせいかと思っていたのですが、実際にはまったく別の原因でした。
この記事では、実際に起きたトラブルとその解決までの流れを記録として残します。似たようなことで悩んでいる方の参考になればうれしいです。
結論から言うと
原因は、昔自分で追加した <PageMap> タグの一文でした。 このタグは現在のGoogleでは使われておらず、HTMLの仕様にも合っていないため、SEO的に悪影響を与えていたようです。
<!– 削除したタグ(伏字済み) –>
<PageMap>
<DataObject type=”thumbnail”>
<Attribute name=”src” value=”https://www.●●●●.jp/wp-content/uploads/2023/06/icon.jpg”/>
<Attribute name=”width” value=”200″/>
<Attribute name=”height” value=”200″/>
</DataObject>
</PageMap>
この一文を削除しただけで、SEOタグが <head> 内に正しく戻り、問題は解消されました。
試したことの記録
まず最初にやったこと:プラグインの確認
- SEOプラグイン(Yoast SEO)を使用中 → 設定画面で「高度な設定」や「ヘッダー出力」に関する項目をすべて確認。 → 特に「Open Graph」や「Twitterカード」などの出力設定をオフにしてみたが、タグの位置は変わらず。
- Autoptimize の設定も確認 → 「HTMLの最適化」や「ヘッダー情報の圧縮」などのオプションを見直し。 → 「ヘッダー情報を
<body>に移動する」系の設定もオフにしたが、変化なし。 - プラグインをすべて一時的に停止 → それでも
<body>にタグが出てしまう。つまり、プラグインが原因ではない。 - SEOプラグインを別のものに変更(All in One SEO に切り替え) → 出力されるタグは変わったが、位置は変わらず。やはり
<body>に出てしまう。
次にやったこと:テーマの切り替えと調査
- 別テーマ(Twenty Twenty-One)に一時的に切り替え → 問題が発生しなかった。つまり、テーマ側に原因があると判明。
- 元のテーマ(Fotografie Blog Pro)に戻して、テンプレートファイルを調査 → header.php の中で wp_head() や wp_body_open() の位置を確認。 → wp_body_open() が削除されていたので復活させたが、問題は解消されず。
- functions.php やテンプレートパーツをすべて確認 → add_action や echo で meta タグを出力している箇所は見つからず。
AI(Copilot)にも相談しながら、少しずつ可能性を絞っていった。
最後に気づいたこと:昔入れた謎のタグ
- <head> 内に以下のようなタグが残っていた:
<PageMap>
<DataObject type=”thumbnail”>
<Attribute name=”src” value=”https://www.●●●●.jp/wp-content/uploads/2023/06/icon.jpg”/>
<Attribute name=”width” value=”200″/>
<Attribute name=”height” value=”200″/>
</DataObject>
</PageMap>
- このタグは、昔どこかで見て「入れておいた方がいいかも」と思って追加した記憶があるけど、今となっては完全に不要。
- 削除したら、すべての問題が解決。SEOタグは <head> に戻り、PageSpeed Insightsの警告も消えた。
まとめ
SEOタグが <body> に出てしまう問題は、必ずしもプラグインやテーマの不具合とは限りません。今回のように、昔自分で追加した不要なタグが原因ということもあります。
「昔入れたけど今は使ってないコード」が残っていると、思わぬ形で悪影響を及ぼすことがあるので、定期的なコードの棚卸しは大事ですね。

