サイトをAMPに対応させたのですが、最初Googleの検索結果にAMPのマークがついていたのですが、その後、エラーが表示されてAMP表示されなくなってしまいました。
最終更新日:2017-01-09 12:08
ようやく当サイトもAMPに対応させてみました。当サイトは静的なページなので、まだ一部分のページしか対応させていませんが、AMP対応化はそれほど大変ではなかったのですが、どういうわけかGoogleの検索結果に「このページにはAMP実装エラーがあります」と表示され、AMP表示されなくなってしまいました。
今回は、同じような悩みを抱えている人に、AMPのチェックツールの使い方やAMPが表示されなかったり、エラーにならないためのポイントなどを紹介します。
AMPのエラーをチェックするには、いくつか公開されているAMPチェックツールを使うのがベストです。今回は4つのツールの使い方を紹介しますが、できれば4つでそれぞれチェックした方がいいでしょう。
最も手軽で使いやすいのが、The AMP Validatorです。英語版しかありませんが、あとで日本語訳の仕方を紹介します。
ここで紹介するツールの中では最も軽く、手軽に使えるのでまずこのサイトでチェックすることをおすすめします。
エンターキーを押します。
この場合、画像を表示する「IMG」タグがあった(AMPでは使用できない)ためですね。
なんかしらエラー箇所があると、結果(Validation Status)」に「
ここが「
一応と書いたのは、このツールで見つからないエラーもあるからです。
一番下にエラー原因の説明が英語で表示されます。
英語だからわかりにくいのですが・・・
この場合は使用が禁止されているIMGタグがあるってことですね。
※ NOSCRIPT内では使用可能
YouTubeをブログ内で表示する「IFRAME」タグもAMPでは使用禁止されています。そこでYouTubeを表示させる場合は、
<amp-youtube data-videoid>
を使用するのですが、最近、
The tag 'amp-youtube' is missing or incorrect, but required by 'amp-youtube extension .js script'. This will sonn be an error.
というエラーが表示されるようになってしまいました。
<script async custom-element="amp-youtube" src="//cdn.ampproject.org/v0/amp-youtube-0.1.js"></script>
を読み込む記述が必要なのですが、ページ中にYouTube動画が無いのにこの外部ファイルを呼び出す記述があるとエラーになるようで、その場合は上の呼び出す記述を削除してください。
私の場合は本文にYouTubeがない場合は、この記述を出力しないような仕様に変更したらエラーが出なくなりました。
ここで代表的なエラーを取り上げておきます。
――'amp-img'タグに必須の属性 'height'がありません。
普通のHTMLの場合、画像の幅(width)もしくは高さ(height)のどちらかが指定されていれば、それに合わせて指定されていない高さ(もしくは幅)で表示してくれます。が、AMPでは「width」も「height」も必須です。
また、
height="auto"
のように「auto」にしてもエラーが出るようです。
これはYouTubeの amp-youtube でも同じです。
―― 'a'タグの属性 'target'は無効な値 'new'が設定されています。
リンク先を新たなタブで開く場合に使用する「target」は、「 _blank 」しか使えなくなりました。
――'amp-form拡張子.jsスクリプト'タグがないか間違っていますが、 'FORM [method = GET]'で必要です。
AMPページでFORMタグを使う場合、
<script async custom-element="amp-form" src="//cdn.ampproject.org/v0/amp-form-0.1.js"></script>
のような外部ファイルの呼び出しが必要です。
――タグ 'FORM [method = GET]'に必須の属性 'target'がありません。
また、FORMタグには、「target」属性が必要のようです。
例)
Google Search Consoleでは、AMP TestというAMPチェックツールを公開しています。
唯一日本語に対応しているチェックツールです。(エラーメッセージは英語ですが・・・)
少々時間がかるので、上のThe AMP Validatorですべてのチェックが済んでから使うほうがいいかも。
ただし、肝心のエラー内容が英語でしかも見にくいのが欠点・・・。
The AMP Validatorよりも細かくチェックしてくれるツールが、AMPBench AMP Validatorです。チェックする項目が多いので少し重いので、The AMP Validatorで全てエラーが出なくなったあと使用するといいでしょう。
「AMP URL」と記載されている右側に、AMPのURLを入力し、エンターキーを押します。
①~④
元ページやAMPページは、お互いにリンクしあっていないといけないのですが、きちんとリンクしあっているか。また、リンクの記述が正しいかどうかチェックします。
URLの記述は、「 // 」もしくは「 // 」からはじめないとエラーになるようです。
⑤
AMP用の構文チェック・・・らしいのですが、間違った記述があってもエラーが出ません。この項目が何を示しているのかちょっと今のところ、不明です。。。
⑥
GoogleでAMPがキャッシュされているか。基本的にGoogleクローラーが訪問すると、数分でサーバー上にAMPが作成(キャッシュ)されます。
キャッシュがあるかどうかを調べます。
⑦
各ページのレスポンス(反応速度)です。
「WARNING」でもOKです。
⑧~⑩
robots.txtでAMPページのアクセスが許可されているか。
各検索サイトのクローラーの制限を記述する「 robots.txt 」で、GoogleクローラーがAMPページへのアクセス・キャッシュが許可されているかをチェックします。
⑪
スマホからのアクセスで専用ページへリダイレクトされるか・・・の調査のようです。
⑦の「Response Times」以外が「PASS」になっていればOKです。
サイト上に「robots.txt」がない場合、⑧~⑩でエラー表示になる場合があります。その場合は無視して構いません。
あまりおすすめしませんが、Google Chromeのデベロッパーツールを使ってもエラーチェックが出来ます。
あまりおすすめしませんと書いたのは、セキュリティーソフトやChromeの機能拡張を使っていると、勝手にページ上にタグを追加してしまうためです。
そのため、上記で紹介したAMPチェックではすべてエラーが出なかったのに、Chromeのデベロッパーツールだとエラーが出るということがままあります。
ChromeのデベロッパーツールでのAMPチェックは以下。
AMPページを開いたら、Chromeの右上のメニューボタンをクリックし、①「その他のツール」をクリック。
②「デベロッパーツール」を選択します。
この画像だとたくさんエラー(赤い文字の部分)が表示されていますが、私はPCのセキュリティソフトとして、カスペルスキーを使っているのですが、勝手に外部ファイルを読み込むタグを記述されているのに気が付かず、なかなかAMPエラーが消えずに半日悩みました。
また、Chromeの機能拡張でも、ページ上に勝手にタグを埋め込むものがあるので、セキュリティーソフトや機能拡張をオフにしてから使ってください。
ところが、Google Search Consoleでは、「AMP構造化データを追加」と言った重大でない問題が指摘されることがあります。
今のところは無視してしまってかまわないようです。
構造化データを加えると、意外と面倒なので必要がなければ省略してしまったほうがいいかもです。
①URLを入力したら、②の「テストを実行」をクリックしてください。
Google Search Consoleにログインしたら、左側の「検索での見え方」にある「Accelerated Mobile Pages」を開きます。
AMPで表示されないページは、「致命的エラー」が原因です。
あとでも紹介しますが、1日数十PVがあるページであれば、すぐにGoogleクローラーがやってきます。
クローラーが訪問すると、だいたい数分から数十分でAMPで表示されるようになります。が・・・
全てではないのですが、殆どのページでこのエラーが表示されて、AMPでの表示が全滅。
上で紹介したAMPエラーチェックツールではすべて「PASS」でしたが、なぜだかGoogleの検索結果にはAMP表示されなくなりました・・・。
先程のAMPエラーチェックツールでは、HTMLのエラーがあっても知らせてくれない場合もあります。
例えばこの画像の例の場合は、Pタグの閉じタグが2つ連続で並んでしまっています。
Wordpressなんかで、本文にタグを手書き入力している場合なんかはこうしたHTML構文ミス、ケアレスミスは起こりがちなので、よーく目を凝らしてチェックしたほうがいいかもしれません。
上のミスはすぐに気がついて治したのですが、一度クローラーが訪問してGoogleサーバー上にキャッシュされると、その後3日ぐらいは修正したデータが反映されませんでした。
なので、どうしてもAMPで表示されない。という場合は、3~一週間は様子を見たほうがいいかも。
興味深いことに、Googleクローラーは10分に1度ぐらいの割合でAMPページへアクセスしてきます。
ただし、あまりアクセス数がないページにはほとんど来ません。
幾つかパターンがわかったのですが、
1日にGoogleの検索から数百回アクセスが有るページは、10分に1度ぐらいの割合でアクセスしてくる。
1日にGoogleの検索からほとんどアクセスがないページは、Googleクローラーのアクセスも殆どない。1度アクセスしてそれっきり、とか。1度も来ない場合も。
というわけで、どうもAMP用のGoogleクローラーは、検索結果からの流入が多いページには更新されていようがいまいが、10分に1度の割合でアクセスしてくるようですが、ほとんど訪問者がないようなページは、Googleクローラーもほとんどアクセスしてこないし、積極的にAMP化しないようです。
AMPのページが表示されました。
これは実際にはGoogleのサーバーにキャッシュ(保存)されたページで、実際にはサイトへのアクセスはありません。(ただし、画像などに関してはGoogleサーバー上に保存されない)
画像はH1タグの左サイドのボーダーの幅を狭くしたスタイルシートに変更したところ、15分後にはAMPのボーダーも狭くなっていました。なので割りとクローラーが訪問すれば直ぐに修正が反応されるはずなのですが・・・実際に検索結果には「このページにはAMP実装エラーがあります」というエラー表示が消えません。
ちなみに「このページにはAMP実装エラーがあります」という表示は、サイト管理者(Serach Consoleにログインした状態)のみが見えるメッセージです。
2016年12月28日頃からはじめたAMP化でしたが、結局安定してAMP検索結果に表示されるのに、10日ぐらいかかりました。
依然としてAMP表示されていないページがありますが、ほとんどクローラーが訪問しない(つまりほとんどアクセスがない)ので、しばらく待たなければならないようです。
Sponsored Link