【超暫定対応】Search ConsoleでAMPページのエラーが大量に出ていた件の対応(AMPプラグインとAll In One SEO Packを併用していると発生)

Amp

GoogleのSearch Consoleからの「AMP ページのエラーを修正してください」とのメールが届いたので、慌ててSearch Consoleを確認してみると、今月に入ってAMPページで大量のエラーが出ていました…。

ひとまず超暫定的ですがエラーを消すための対応を行ったので、同じようなエラーに悩んでいる人は是非参考にしてみてください。

「AMP ページのエラーを修正してください」の大量エラーの内容は?

Amp01

エラーとして問題なのは重要度が“致命的”になっているHTMLタグの禁止された用法、無効な用法の部分。

詳細を見ると、
Amp03

「○○○まる」はタグ「meta name= and content=」で使用できません。というエラーが1つの記事内で数件出ているようです。

より詳しく見てみると、ヘッダー部分に書き出されているメタタグのうち「og:description」「twitter:description」content内にエラーが出ています。

上記のエラーが出た僕の環境でのAMPページは、wordpressの「AMP」というプラグインで作成しているページ。
そして、「og:description」「twitter:description」のメタタグを書き出しているのは「All In One SEO Pack」というプラグインです。
僕はこの「All In One SEO Pack」というプラグインを使ってはいるもののOGPタグ出力のためのディスクリプションは特に上書きせず放置していました。
Amp04

すると自動的に冒頭の数百文字がディスクリプションとして書き出されるんですが、改行を半角スペースに変換して書き出しているようです。
この半角スペースがog:descriptionとtwitter:descriptionのcontent内に書き出されると文法エラーとなるようで、上記AMPページでの大量エラーを引き起こしていたようです。

先月末にリリースされたAll In One SEO Packのアップデートで、このエラーの原因となる修正が入ったため、いつの間にかエラーが発生していたというわけですね。

エラーが少なければ記事毎に対応するのが楽

エラーが数件程度であれば、各記事のデスクリプションを手動で編集するのが早いと思います。
改行が入らないように160文字以内で記事を要約した文章をディスクリプションとして対応しましょう。

エラーが多ければプラグインのソースをいじって暫定対応

僕のように100件以上のエラーが出ている場合はディスクリプションを編集するというのも現実的ではないので、プラグインのソースをいじって修正しましょう。
ただしプラグインのソースを編集すると、プラグインのアップデートの際に上書きされてしまうので、今回はあくまで暫定的な対応と思ってください。

編集するファイルは、プラグインディレクトリの「all-in-one-seo-pack」フォルダ内の「modules」フォルダにあるaioseop_opengraph.phpというファイルです。

1335行目(プラグインのバージョンによって微妙に行数が異なることもあります。)あたりにある以下の行をコメントアウトします。
add_action( 'amp_post_template_head', Array( $this, 'add_meta' ), 12 ); // Add social meta to AMP plugin.

こうですね。
// add_action( 'amp_post_template_head', Array( $this, 'add_meta' ), 12 ); // Add social meta to AMP plugin.

暫定処理としてはこれで完了です。

AMPページのヘッダー内に必要なコードを書き出すメソッド「aioseop_modules_wp_head」にmetaデータを書き出す処理「add_meta」をフックしているので、そのアクションフックをコメントアウトすることでメタデータの書き出し自体を停止しています。

AMPページにmetaタグが全て書き出されなくなってしまいますが、AMPではない通常ページに正しくmetaタグが出ていれば問題はありません。

修正後は改めてAMPのテストページ(https://search.google.com/test/amp)でエラーがないか確認しましょう。

Amp05
エラーが消え「有効なAMPページです」と表示されれば修正は成功です!

プラグインを直接編集するためあくまで暫定的な処理ではありますが、「AMP」「All In One SEO Pack」を利用していてAMPページでエラーが出た場合の対応方法として一度確認してみてはいかがでしょうか!