Google AMP HTML について
AMP(Accelerated Mobile Pages) HTMLとは、モバイル端末で高速に表示するためのHTMLファイルです。
仕様で定められた軽量なウェブページ(=AMP HTML)を用意しておくと、専用のサーバーからキャッシュして配信してくれます。
ご存知のように、通常のウェブページでは、配信元のWebサーバーへアクセスするのですが、AMPの場合は予めキャッシュされたページを配信してくれます。だから表示が短時間で済むわけですね。
ということで、今回はAMP HTMLの導入方法を分かりやすく解説してみたいと思います。
AMP HTMLのサンプル
当サイトでは、以下のようにAMP HTMLを用意しています。一つの実例として参考にしていただけば幸いです。当ブログではHexoからAMP HTMLを自動生成しています。
- 通常のウェブページ : markdownの記法まとめ
- AMP HTML版のウェブページ : markdownの記法まとめ(AMP版)
photo by Mr. JosephW - DSC03309 on flickr
目次
AMP HTMLの導入方法
AMP HTMLを導入するにはCreate Your AMP HTML Pageに従ってAMP HTMLを記述していきます。通常のHTMLとの主な違いは以下の通りです。
- 通常のHTMLとAMP HTMLに互いのパスを追記する
- AMP HTMLのheadタグにお決まりのタグを追加
- カスタムエレメンツに置き換える
それでは順番に見ていきましょう。
1.通常のHTMLとAMP HTMLに互いのパスを追記する
AMPを導入する際には、1つのページにつき、通常のHTMLとAMP HTMLをそれぞれ作成します。まずは通常ページ(例:./index.html
)とAMP版ページ(例:./amp/index.html
)を用意してみましょう。
次に、通常のHTMLのheadタグにAMP HTMLの場所を示すパスを追記します。更にAMP HTMLには通常のHTMLのパスを追記していきます。
パスの記述例としては以下のようになります。
通常のHTML
1 | <!DOCTYPE html> |
AMP版 HTML
1 | <!doctype html> |
通常のHTMLに対して行う変更作業は、以上で完了です。AMP HTMLについては引き続き2をご覧ください。
2.AMP HTMLのheadタグにお決まりのタグを追加
headタグ内には以下のコードのようにgoogle AMPで定められたmeta
タグやjs
を記述する決まりとなっています。まずは大まかに見ていきましょう。
1 | <!doctype html> |
それでは各コードについて詳しく見ていきたいと思います。
外部jsやCSSの読み込みは不可
AMPでは外部のjavascriptやcssファイルの読み込みが禁止されています。cssはhead
タグの<style amp-custom></style>
内で直接記述が可能ですが、javascriptに関しては記述できません。
構造化データについて
上記のHTMLヘッダに含まれる構造化データ(schema.org)とは、AMPが検索結果として表示される情報の塊です。構造化データは記述のルールが幾つかあります。海外SEO情報ブログさんが非常に詳しい内容をまとめていらっしゃいますので、参照してください。
2016年2月追記:構造化データが必須では無くなった
AMP HTMLの構造化データは必須条件から外れ、任意に変更されました。
ただし、検索結果のトップニュース枠に表示されるようなAMPカルーセル(後述)には、これまで通り構造化データが必要です。
構造化データは、いくつかのタイプがあります。AMPがサポートしている構造タイプは全部で3種類です。
前述したHTMLの記述例では、ブログの記事を意味するBlogPosting
を指定してみました。
構造化データについて
Googleモバイル検索のAMPカルーセルに掲載させるために必要な構造化データ/schema.orgAMP向け構造化データの仕様
Top Stories with AMP | Structured Data | Google Developersschema.org/BlogPostingの仕様
schema.org/BlogPosting | schema.org
AMPカルーセルで定めれた画像サイズの制約
googleの検索結果として表示されるAMP HTMLページをAMPカルーセルと呼びます。AMPカルーセルで定められているschema.orgの仕様については、Google AMP Projectの「Publishing AMPs for the Top Stories carousel」をご覧ください。決まりごとは沢山ありますが、特に注意すべき点はロゴ画像やアイキャッチのサイズです。以下のように画像の幅と高さに制約があります。
Articleの項目では、画像は幅696px以上と定められている
ロゴ画像のガイドラインでは、ロゴ画像は幅600px以下、高さ60px以下と定められている
3.カスタムエレメンツに置き換える
bodyタグの内容については、一部、AMPで定められたカスタムエレメンツというAMP独自のタグに置き換える必要があります。
HTMLのタグ | AMP HTMLで使用するタグ |
---|---|
img | amp-img |
video | amp-video |
audio | amp-audio |
iframe | amp-iframe |
例えばimgタグは以下のような記述となります。
通常のHTML
1 | <img src="./sample.jpg" width="200" height="100" /> |
AMP HTMLでは以下のようになります。
1 | <amp-img src="./sample.jpg" width="200" height="100"></amp-img> |
入力必須の属性があることに注意
amp-imgではsrc、width、heightが必須となります。
カスタムエレメンツに置き換わっているもの
その他カスタムエレメンツに置き換わっているものはGithubのampprojectにサンプルがありますので以下をご覧ください。
一例を挙げますと、youtubeやvimeoなどはカスタムエレメンツamp-youtube
やamp-vimeo
を使用する決まりになっています。サンプルコードのyoutube.amp.html
やvimeo.amp.html
をご覧ください。これらのカスタムエレメンツもやはりwidthやheight属性が必須となっています。
AMP HTMLの記述を確認する方法
AMPの記述が完了したら、最後にAMP記述をチェックしていきます。手順は簡単にまとめると、以下3つの流れで行います。
- Chrome Developer ToolsでAMP HTMLの検証
- 構造化データの検証
- Google Search Consoleでクロールされたか確認
詳しくは下記記事をご覧ください。
感想。AMPの導入でつまづいた所
画像や動画などを載せている記事では、AMP導入のハードルになるのではないかと思われます。なぜかというと、AMPの場合はwidth
属性やheight
属性の指定は記述必須となっているからです。特に画像をAPIやプラグイン経由で挿入している記事では、プラグインの見直しが必要になるケースもあるでしょう。
最後に
という事で、今回はAMP HTMLの仕様や導入方法について簡単にまとめてみました。もし更に興味のある方がいらっしゃいましたらGithubで更に仕様を確認してみてください。それでは!
github/amphtml
AMP Project