kawasaki

AMP (Accelerated Mobile Pages) について

先月23日にGoogleがAMP (Accelerated Mobile Pages) に対応したモバイル検索を開始しました。
そこで今回はモバイルサイトの表示が高速化できるAMPの主な仕様についてまとめてみました。

AMP(Accelerated Mobile Pages/アクセラレーテッド・モバイル・ページ)とは

AMPはモバイル端末でのWebページの表示を高速化するためのプロジェクト。
大雑把にいうと、AMPの仕様に従って作成されたモバイルページはGoogle側にキャッシュされ、そのキャッシュを利用してコンテンツを返すことで高速化が実現するとのこと。
詳細については海外SEO情報ブログさんの記事が参考になりました。

まずはデモをスマホでご確認ください。
[ mars - Google Search ]
Top storiesの下のバナーをクリックすると、AMP対応ページが表示されます。
立ちあがったページをフリックすると、次々とページが表示されます。

AMP HTMLの構成

AMPは下記3つ要素で構成されています。

  • AMP HTML
  • AMP JS
  • AMP CDN

AMP HTMLの主な仕様

HTML AMP HTML
script application/ld+jsonのみ使用可。
AMP HTMLに含まれているJavascript以外使用不可。
baseframe, frameset, object,param, applet, embed, form 使用不可。
input elements input, textarea, select, option 使用不可。
buttonは使用可。
style 必須のopacityに指定するstyle以外はamp-custom属性を付与したstyle要素を、headタグ内で1つだけ使用可。
link rel="canonical"のみ使用可。
meta http-equiv属性の使用は不可。それ以外は使用可。
a Javascript使用不可。target属性の値は_blankのみ。
svg ほとんど使用可。

AMP タグ

  • amp-img
  • amp-audio
  • amp-anim
  • amp-ad
  • amp-pixel
  • amp-video
  • amp-brightcove
  • amp-carousel
  • amp-font
  • amp-lightbox
  • amp-iframe
  • amp-instagram
  • amp-twitter
  • amp-vine
  • amp-youtube

AMP HTMLの記述例

オープンソースがGithubで公開されています。

フォーマット

<!doctype html>
<html ⚡> 
<head>
   <meta charset="utf-8">
   <link rel="canonical" href="hello-world.html">
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1">
   <style amp-boilerplate>body{-webkit-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-moz-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-ms-animation:-amp-start 8s steps(1,end) 0s 1 normal both;animation:-amp-start 8s steps(1,end) 0s 1 normal both}@-webkit-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-moz-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-ms-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-o-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}</style><noscript><style amp-boilerplate>body{-webkit-animation:none;-moz-animation:none;-ms-animation:none;animation:none}</style></noscript>
   <script async src="https://cdn.ampproject.org/v0.js"></script>
 </head>
 <body>Hello World!</body>
</html>
  1. <html ⚡> <html amp>でも可。
  2. link要素 記述できるのはcanonicalのみ。cssはインラインで記述。
  3. viewport 変更不可
  4. JavaScript 使用不可 ※AMP HTMLに含まれているJavascript以外

CSS

タグ内に記述。styleタグに、amp-customを記述。
<style amp-custom>
      h1 {color: red}
</style>

画像

  • imgの代わりに、amp-imgを記述
  • amp-imgを記述された画像はローディング付きの遅延読み込みが行われる
  • 幅と高さの指定は必須(Validation エラーになる)
  • レスポンシブに対応する場合はlayout="responsive"を付与すると画像サイズが可変する
<amp-img  src="test.png" width="300" height="150" alt="" layout="responsive">

canonicalタグの設定

現状のページをAMP対応するのに負荷があり、別途AMP対応ページを作成する場合は 上記の記述で正規化する。
// AMP対応ページに記述
<link rel="canonical" href="https://www.tam-tam.co.jp/tipsnote/">

// 通常のHTMLページに記述
<link rel="amphtml" href="https://www.tam-tam.co.jp/tipsnote/amp/">

AMP Validator

AMPを正しく設定できているかどうかをChromeのデベロッパーツールで簡単に検証できます。 検証したいURLの末尾に "#development=1" を付与してアクセス。デベロッパーツールのConsoleで検証結果を確認。 正しく設定できていれば、"AMP Validation successful." と表示されます。 AMPはちょっとしたことですぐエラー出るので、対応後の検証をおすすめします。

img01

参考サイト:
Accelerated Mobile Pages Project (AMP公式サイト)
Accelerated Mobile Pages プロジェクトについて -- 導入ガイド日本語版を本日公開しました(ウェブマスター向けGoogle公式ブログ)
サイト運営者向け AMP 導入ガイド
モバイルウェブが爆速に! GoogleがAMP (Accelerated Mobile Pages) を立ち上げ
Google の高速ページ表示フォーマット AMP (Accelerated Mobile Page) をちょっと紐解く
AMP(Accelerated Mobile Page)が拓くモバイルの加速世界
新しいウェブ体験を作ろう TAMのPWA開発
お問い合わせはこちら