AMPプラグインがカスタム構造のURLをamphtmlで?amp=1に変換してくれないのでSearch Consoleでエラーが出たので直した

AMPプラグインをWordPressに入れたのですが、Search Consoleで「URL は AMP ではありません」と表示されてしまいました。どうやら、LINKタグで指定するamphtml属性が、AMPプラグインからバグって出力されていたようです。

私のブログは、パーマリンク設定でURLをカスタム構造にしていて、URLの末尾がhtmlなので、起きたエラーです。まったく推奨できない方法で解決しましたが、備忘録目的で対処方法さらします。

>>楽天トラベル国内ツアーのバーゲン情報はこちら
楽天で詳しく見る

本記事の執筆は、WordPress歴11年目のカグア!(@kagua_biz)によるものです。なお、情報は2020年2月8日時点・AMPプラグイン1.4.2、WordPress バージョン 5.3.2–ja でのものです。ご注意ください。

Search ConsoleでAMPページが認識されない

AMPプラグインを実装して、翌日くらいに、ヘッダーに自動的に追加された link rel=”amphtml” href=”~” をSearch Consoleが自動的に認識して、自動的にAMPページをクロールしてくれました。

Search Consoleの左側のメニューにAMPというメニューが表示されていました。ただし、そのURLが正しいAMPページになっていませんでした。エラーです。
「参照している AMP URL は AMP ではありません」Search ConsoleでAMPページが認識されない

「参照している AMP URL は AMP ではありません」と表示されます。

htmlが正しくampのURLに変換されない

わたしの場合、URLがWordPressのパーマリンク設定で、カスタム構造にしていて、~.html でしたので、それをAMPプラグインが正しく認識してくれなかったためと思われます。
WordPressのパーマリンク設定でカスタム構造にしてた。URLの末尾がhtmlだとダメ

AMPプラグインは以下のURLを自動的に認識して、ampページのURLを出力してくれます。

~.php -->> ~.php?amp=1
~/ -->> ~/amp/

ただ、~.html というのは範疇になかったのでしょうね・・・。バグというよりも仕様になかったというか。link rel=”amphtml” が正しく、ampのURLに変換されないのでした。

amp_add_amphtml_link()の修正

いろいろと調べたのですが、ネット上に解決策はなく(まあそうですよね、こんなレアケース)、ハードコーディングすることにしました。
ampのURLを変換する

ファイルはAMPプラグインフォルダのincludes>amp-helper-functions.php に、amp_add_amphtml_link()という関数がありますので、そこがLINKタグの、amphtml属性を返してるっぽいので直接修正しました(絶対に真似しないで下さい)。

esc_url( $amp_url )

esc_url( $current_url.’?amp=1′ )

にしました。そうしましたら、とりあえずLINKタグのamphtml属性には/amp/ではなく、?amp=1 となって出力されていました。

プラグイン修正の注意点

ただし、この解決方法ですが、

絶対に推奨しません

プラグインを直接コーディングしたので、アップデートも対応していませんし、とりあえず投稿ページは対応したものの、すべてのページで検証したわけではありません。

自己責任です

AMPのChrome機能拡張で確認

とりあえず、これで、AMPページへの誘導はただしくできました。Chromeのアドオンで確認します。
ChromeプラグインでAMPページに無事に移動

>>Chrome拡張アドオンを使ってAMPページエラーを簡単にチェック! | SiTest ブログ
サイトで詳しく見る

これで、いったん様子を見ます。数日後にSearch Consoleで、ただしくAMPページが認識されてくれていると嬉しいのですが・・・。

お疲れ様でした。

できる100の新法則 Google Search Console これからのSEOを変える基本と実践 | 村山 佑介, 井上 達也, できるシリーズ編集部

できる100の新法則 Google Search Console これからのSEOを変える基本と実践
Amazonで詳しく見る

・・・と、こんな感じの父親目線で、SNS、ドライブ、ゲーム、生活防衛ネタが多めでブログ記事を2009年から書いています。よろしければLINE@をフォローしていただけると更新情報を受け取れますのでおすすめです。記事を気に入ったというかたはぜひ。

LINE@で無料の更新情報を受け取る

・ ・ ・ ・ ・

>>安っ!アマゾンで半額以下になっている食品タイムセール
セール特設ページを見る

↓↓↓無料のニュースレターを配信中です

AMPとSearch Console