悩めるWEB担当者様のための最新ノウハウをお届け

【AMP】Googleが推進するAMPとは?概要と対応方法まとめ

pexels-photo-63572


【無料eBookプレゼント中!】基礎からわかる!SEOの教科書

【最終更新日:2018年4月27日】

突然ですが、最近スマホで検索をした時にたまにカミナリ⚡マークが付いたページが表示されるのをご存知でしょうか?

amp-201801
赤い枠で囲っているリンクにはカミナリのマークがついています。このようなリンクはAMP HTMLで構築されたWebページに遷移します。

リンクをタップして見てみると、非常にシンプルな見た目のコンテンツが表示されます。
これらは「AMP(Accelerated Mobile Pages)」という、Googleが推進しているモバイルページを高速に表示させるための手法によって作成されているコンテンツです。

「最近よく聞くけど、AMPってなんなの?」と疑問をお持ちの方も多いのではないかと思います。
SEO界隈で何かと話題のAMPについて、概要から対応方法までまとめてみました。

AMP(Accelerated Mobile Pages)とは?

AMP(Accelerated Mobile Pages)とは、ひとことで言うならば「モバイルページを高速に表示させるための手法」のことです。

2015年10月にAMPプロジェクトは、モバイルユーザーのユーザー体験向上を目的としてGoogleとTwitterが協同し、オープンソースプロジェクトとして立ち上がりました。

「AMP」という言葉は当初、プロジェクト名として発表されましたが、団体が発表した「AMP HTML」というフレームワークを指す場合もあります。
むしろ、「AMP」といえばこちらのフレームワークを指している場合が多いかもしれません。

当初はトップニュースの枠内にだけ表示されていたAMP対応ページですが、2016年10月にはトップニュースの枠内だけでなく、通常の検索結果にも表示されるようになりました。
2018年現在ではAMPに対応したメディアが増え、検索キーワードによってはAMPページが上位10ページのほとんどを占めているなんていう状況も珍しくなくなってきました。

なぜAMPページは高速に表示されるのか?

AMPページは、

  • AMP HTML
  • AMP JS
  • AMP Cache

と、大きく分けて3つの要素から構成されています。
参考:AMPとは

AMPページの仕様はかなり限定的で、非同期のJava Scriptのみを許容していたり、全てのコンテンツのリソースサイズを静的に規定するなど「読み込みに時間がかかることはさせない」という方針で仕様が策定されています。
これによって読み込みや描画の負荷を減らし、コンテンツを一瞬で表示させることを実現しています。
参考:AMP がパフォーマンスを改善する仕組み

表示の高速化を実現しているのはこれらの仕様だけではありません。
AMPの仕様に従って作成されたページはAMP CacheというAMPページを配信するためのコンテンツ配信ネットワーク(CDN)によってキャッシュされます。
ユーザーが検索画面やSNSにシェアされたURLからAMPページのリンクをタップすると、AMP Cacheに保存されているキャッシュからコンテンツを返します。

つまり、本来のページがあるウェブサイトへのアクセスが発生せず、いちいちサイトを読み込まなくても済むようになっているため、コンテンツを高速で表示することが可能になっているのです。
参考:AMP ページのキャッシュの仕組み

AMPに表示されるコンテンツ、AMPに向いているコンテンツ

2018年4月に大幅な内容のアップデートを行いました。

AMPページは2016年のリリース当初には「記事ページ(article)」のみをサポートする規格として登場しました。
当時はAMPの仕様が限定されていたこともあり、ECサイトやポータルサイトなどの複雑な機能を持つサイトは対応が難しく、キュレーションメディアやニュースメディアなどのサイトが試験的に導入を進めていました。

しかし、当初よりECサイトなどの表示速度による離脱率などがサイトの成果に大きく影響するサイトではAMPのニーズが高く、世界的に先駆けてeBayがAMPを導入した事が話題となる動きが見られていました。
グーグル「AMP」、eBayが導入–モバイルショッピング体験を改善(CNET Japan)

2017年には徐々にAMPの仕様が拡大され、ECサイトやポータルサイトにも応用できる要素が次々と追加されていきました。
2018年4月現在では、キュレーションメディアやニュースメディアの他に、食べログやマイナビなどの情報サイトでも導入が進んでいます。

amp-2018-02
カルーセル部分の導線にもAMPページが適用されており、右上にAMPの⚡マークが表示されています。

日本国内のECサイトでAMPを導入している事例はまだ見られませんが、ECサイトにおいてAMPを応用するためのノウハウはAMP StartというAMPのテンプレートを配布しているサイトで得ることができます。

このサイトはAMPプロジェクトのサイトから派生した、AMPのテンプレート配布に特化しているサイトで、テンプレートは用途別に4種類(E-COMMERCE、NEWS + BLOG、ART & DESIGN、FOOD & DRINK)用意されています。
さらに、それぞれのテンプレートにはデモサイトも用意されており、導入のチュートリアルも合わせて読むと非常に分かりやすくなっています。

導入の簡単なチュートリアルも用意されている他、実際の挙動がどうなるのかをブラウザ上で確認することも可能です。
全てのページが英語で書かれてはいるものの、直感的に理解できる構成になっているため、エンジニアでない筆者が読んでも非常に分かりやすいと感じました。
まずはサイトを訪れてみて下さい。
参考:AMP Start

モバイルフレンドリーアップデートとは何が違うの?

ややこしいのですが、AMPとモバイルフレンドリーアップデートは全く別の考え方であり、異なるプロジェクトです。

AMP対応がモバイルフレンドリー化の一部になるとは言えますが、例えば今後、「AMP対応していなかったために検索順位が落ちる」ということはありません。

注意しなければならないのは、AMP対応の有無は検索順位に影響しませんが、モバイル対応の有無は検索順位に影響するということです。
モバイルフレンドリーアップデートにより、モバイルに最適化されているサイトが検索結果において優位に評価されるようになりました。
AMP対応していなくても順位は落ちませんが、モバイル化は必須であり、モバイル最適化がされていないと順位が落ちてしまう危険性があるので注意が必要です!

AMPの対応方法まとめ

ここまで、「AMPとは何か?」という点についてご紹介させていただきました。
次に、AMPページを作成するには具体的に何をすればいいのか、ということについてまとめてみました。

AMP ページの基本のテンプレート

以下のソースは必要最小限のAMPに必要なタグや機能を記述したHTMLコードです。
AMPページは先述したように記述に制限があり、タグ内にある要素などはほぼコピペで済んでしまいます。

<!doctype html>
<html amp lang="ja">
  <head>
    <meta charset="utf-8">
    <title>【ここにタイトルがはいります】</title>
    <link rel="canonical" href="【オリジナルページのURL】">
    <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1">
    <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-wp-preserve="%3Cscript%20type%3D%22application%2Fld%2Bjson%22%3E%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%22%40context%22%3A%20%22http%3A%2F%2Fschema.org%22%2C%0A%20%20%20%20%20%20%20%20%22%40type%22%3A%20%22NewsArticle%22%2C%0A%20%20%20%20%20%20%20%20%22headline%22%3A%20%22Open-source%20framework%20for%20publishing%20content%22%2C%0A%20%20%20%20%20%20%20%20%22datePublished%22%3A%20%222015-10-07T12%3A02%3A41Z%22%2C%0A%20%20%20%20%20%20%20%20%22image%22%3A%20%5B%0A%20%20%20%20%20%20%20%20%20%20%22logo.jpg%22%0A%20%20%20%20%20%20%20%20%5D%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%3C%2Fscript%3E" data-mce-resize="false" data-mce-placeholder="1" class="mce-object" width="20" height="20" alt="&lt;script&gt;" title="&lt;script&gt;" />

<img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-wp-preserve="%3Cstyle%20amp-boilerplate%3Ebody%7B-webkit-animation%3A-amp-start%208s%20steps(1%2Cend)%200s%201%20normal%20both%3B-moz-animation%3A-amp-start%208s%20steps(1%2Cend)%200s%201%20normal%20both%3B-ms-animation%3A-amp-start%208s%20steps(1%2Cend)%200s%201%20normal%20both%3Banimation%3A-amp-start%208s%20steps(1%2Cend)%200s%201%20normal%20both%7D%40-webkit-keyframes%20-amp-start%7Bfrom%7Bvisibility%3Ahidden%7Dto%7Bvisibility%3Avisible%7D%7D%40-moz-keyframes%20-amp-start%7Bfrom%7Bvisibility%3Ahidden%7Dto%7Bvisibility%3Avisible%7D%7D%40-ms-keyframes%20-amp-start%7Bfrom%7Bvisibility%3Ahidden%7Dto%7Bvisibility%3Avisible%7D%7D%40-o-keyframes%20-amp-start%7Bfrom%7Bvisibility%3Ahidden%7Dto%7Bvisibility%3Avisible%7D%7D%40keyframes%20-amp-start%7Bfrom%7Bvisibility%3Ahidden%7Dto%7Bvisibility%3Avisible%7D%7D%3C%2Fstyle%3E" data-mce-resize="false" data-mce-placeholder="1" class="mce-object" width="20" height="20" alt="&lt;style&gt;" title="&lt;style&gt;" />

<noscript>
<img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-wp-preserve="%3Cstyle%20amp-boilerplate%3Ebody%7B-webkit-animation%3Anone%3B-moz-animation%3Anone%3B-ms-animation%3Anone%3Banimation%3Anone%7D%3C%2Fstyle%3E" data-mce-resize="false" data-mce-placeholder="1" class="mce-object" width="20" height="20" alt="&lt;style&gt;" title="&lt;style&gt;" />

</noscript>
    <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-wp-preserve="%3Cscript%20async%20src%3D%22https%3A%2F%2Fcdn.ampproject.org%2Fv0.js%22%3E%3C%2Fscript%3E" data-mce-resize="false" data-mce-placeholder="1" class="mce-object" width="20" height="20" alt="&lt;script&gt;" title="&lt;script&gt;" />
  </head>
  <body>

<h1>【ここにページの大見出しがはいります】</h1>

  </body>
</html>

かなりミニマムにまとまっていることがお分かりいただけたかと思います。
次に、AMPに対応するために必要なルールについて、上記のソースと対応させながらご紹介していきます。

AMP HTMLの宣言

<!doctype html>
<html amp lang="ja">

普段のHTML文書とほぼ同じです。
AMP HTMLがユニークなのは、”amp”の部分をカミナリの絵文字で表現することも可能だという点です。
絵文字で表現した場合、以下の様なソースになります。

<!doctype html>
<html ⚡ lang="ja">

meta要素の指定

<meta charset="utf-8">
<meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1">

AMPはUTF-8にのみ対応していますので、文字コードには”utf-8″を指定しましょう。
また、文字コードとビューポートの指定は必須です。どちらが欠けてもエラーが出てしまいますので注意が必要です。

JSON-LDの指定

    <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-wp-preserve="%3Cscript%20type%3D%22application%2Fld%2Bjson%22%3E%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%22%40context%22%3A%20%22http%3A%2F%2Fschema.org%22%2C%0A%20%20%20%20%20%20%20%20%22%40type%22%3A%20%22NewsArticle%22%2C%0A%20%20%20%20%20%20%20%20%22headline%22%3A%20%22Open-source%20framework%20for%20publishing%20content%22%2C%0A%20%20%20%20%20%20%20%20%22datePublished%22%3A%20%222015-10-07T12%3A02%3A41Z%22%2C%0A%20%20%20%20%20%20%20%20%22image%22%3A%20%5B%0A%20%20%20%20%20%20%20%20%20%20%22logo.jpg%22%0A%20%20%20%20%20%20%20%20%5D%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%3C%2Fscript%3E" data-mce-resize="false" data-mce-placeholder="1" class="mce-object" width="20" height="20" alt="&lt;script&gt;" title="&lt;script&gt;" />

schema.orgのJSON-LDを指定することでページの構造を正しくクローラーに伝えることができます。
省略してしまうとサーチコンソールでエラーが出てしまいます。
複雑ですが、上記のソースを参考に記述してみてください。

AMPに必須の”boilerplate”


<img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-wp-preserve="%3Cstyle%20amp-boilerplate%3Ebody%7B-webkit-animation%3A-amp-start%208s%20steps(1%2Cend)%200s%201%20normal%20both%3B-moz-animation%3A-amp-start%208s%20steps(1%2Cend)%200s%201%20normal%20both%3B-ms-animation%3A-amp-start%208s%20steps(1%2Cend)%200s%201%20normal%20both%3Banimation%3A-amp-start%208s%20steps(1%2Cend)%200s%201%20normal%20both%7D%40-webkit-keyframes%20-amp-start%7Bfrom%7Bvisibility%3Ahidden%7Dto%7Bvisibility%3Avisible%7D%7D%40-moz-keyframes%20-amp-start%7Bfrom%7Bvisibility%3Ahidden%7Dto%7Bvisibility%3Avisible%7D%7D%40-ms-keyframes%20-amp-start%7Bfrom%7Bvisibility%3Ahidden%7Dto%7Bvisibility%3Avisible%7D%7D%40-o-keyframes%20-amp-start%7Bfrom%7Bvisibility%3Ahidden%7Dto%7Bvisibility%3Avisible%7D%7D%40keyframes%20-amp-start%7Bfrom%7Bvisibility%3Ahidden%7Dto%7Bvisibility%3Avisible%7D%7D%3C%2Fstyle%3E" data-mce-resize="false" data-mce-placeholder="1" class="mce-object" width="20" height="20" alt="&lt;style&gt;" title="&lt;style&gt;" />

<noscript>
<img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-wp-preserve="%3Cstyle%20amp-boilerplate%3Ebody%7B-webkit-animation%3Anone%3B-moz-animation%3Anone%3B-ms-animation%3Anone%3Banimation%3Anone%7D%3C%2Fstyle%3E" data-mce-resize="false" data-mce-placeholder="1" class="mce-object" width="20" height="20" alt="&lt;style&gt;" title="&lt;style&gt;" />

</noscript>

“boilerplate”とは鋳型を指す英単語で、そこから「決まり文句」「定型文」などの意味で使われるようになりました。
AMPが高速化を実現するために必要な記述ですので、省略せずに記述しましょう。

ライブラリの読み込み

    <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-wp-preserve="%3Cscript%20async%20src%3D%22https%3A%2F%2Fcdn.ampproject.org%2Fv0.js%22%3E%3C%2Fscript%3E" data-mce-resize="false" data-mce-placeholder="1" class="mce-object" width="20" height="20" alt="&lt;script&gt;" title="&lt;script&gt;" />

AMPがきちんと表示されるために必要なライブラリを記述します。
</head>タグ内の直上(<head>タグの最後)に記述します。
ソースのパスなどを変えてしまうとエラーとなってしまいますので注意してください。

AMPページにおけるカノニカルとアノテーションの設定方法

AMPページに埋め込むcanonicalタグ

    <link rel="canonical" href="【オリジナルページのURL】">

AMPの元となるオリジナルページに埋め込むアノテーションタグ

    <link rel="amphtml" href="【対象のAMPページURL】">

AMPページはcanonicalタグを用いて、元ページとの関連性を検索エンジンに伝える必要性があります。
それぞれのページに、「このページにはAMPページがあるんですよ!」「このAMPページのオリジナルはこちらですよ!」と、クローラーに伝える記述を差し込みます。
PCサイトのページとスマホサイトのページが別々にある場合にはアノテーションを行いますが、全く同じ考え方です。

その他のAMPで使える要素

上記では、AMP HTMLが必ず内包していなければならない要素を紹介しました。
他にも、広告を表示させるための要素画像を表示させるための要素など、様々な機能がAMPには用意されています。
全ての仕様はAMPのプロジェクトページより確認することができます。
一部のコンテンツは英語のみですが、多くのコンテンツが日本語化されているため、気になることはまず公式サイトにて確認しましょう。

Accelerated Mobile Pages Project – AMP

AMPが正しく実装されているか確認する

2016年10月13日に、GoogleはAMPが正しく実装されているか確認できる「AMPテスト」というツールを公開したことを発表しました。

使い方は非常にシンプルで、確認したいAMPページのURLを「テストするURLを入力」という欄に入力するだけです!

screencapture-search-google-search-console-amp-1478083328139

テストしたAMPページが構造化マークアップされていない場合、「AMPに構造化データを追加してください」というメッセージが出る場合があります。
AMPページを構造化マークアップしていると、AMPカルーセルに表示されるようになるため、ユーザーへの露出が高まります。
構造化マークアップしていない場合でも、通常の検索結果には表示されるため、カルーセルに表示させる必要がなければ対応せずとも問題はないでしょう。

まとめ

ここまで、AMPの仕様の概要と、その実装方法についてご紹介しました。
まとめると、

  • AMPとは、モバイルページを高速に表示させるための手法(フレームワーク)である
  • AMPに対応させるためには、AMP用のHTMLファイルが必要である
  • AMP HTMLの記述はシンプル!ルールを確認してきっちり記述すればOK

ということになります。

日本語にも対応済み!AMPの公式ドキュメントサイトまとめ

AMPはオープンソースプロジェクトですので、全ての開発の肯定やリポジトリ内のファイルを確認することができます。
リリース当初はほとんどの情報が英語でリリースされていたAMPですが、日本語でも公式ドキュメントが配布されるようになりました。
ぜひご覧ください。

Accelerated Mobile Pages Project – AMP(日本語版)

AMP Project Github

AMP Start

Accelerated Mobile Pages Project – AMP(英語版)

関連記事