先月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>
- <html ⚡> <html amp>でも可。
- link要素 記述できるのはcanonicalのみ。cssはインラインで記述。
- viewport 変更不可
- 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/">