AMP(Accelerated Mobile Pages)は、
2015年にGoogleが発表した、モバイルに最適化されたコンテンツを提供するための技術です。
Twitter、Pinterest、WordPress.com、LinkedInや、BBC、産経デジタルなどのパブリッシャーがAMPのパートナーに参加。
(Facebookは独自の Instant Articles を発表。)
2016年2月後半にも、Google検索からのトラフィック送信を開始すると発表しています。
追記1:Google検索、AMP対応を2月24日に開始、検索結果に表示へ。
自然検索結果へのインパクトも予想されています。
via http://www.sem-r.com/news-2015/20160219092116.html
追記2:Google Search Console について追記しました。
追記3:JSON-LD について追記しました。
続編:AMP対応の結果まとめ、Google検索に表示されて分かったこと
AMPは、AMP HTML、AMP JS、AMP CDN で構成されています。
https://www.ampproject.org/
| タグ | AMP HTML | 
|---|---|
| script | application/ld+json 以外NG | 
| img, video, audio, iframe | AMPタグに置き換え | 
| frame, frameset, object, param, applet, embed, form, input elements | NG(buttonはOK) | 
| style | headタグ内OK、amp-custom属性が必要 | 
| link | canonical 以外NG(一部ホワイトリスト登録OK) | 
| meta | http-equiv のみNG | 
| a | javascript の使用はNG | 
| svg | ほとんどOK | 
styleについては、下記opacityを含める必要があったり、!important 禁止などのルールがあります。
https://github.com/ampproject/amphtml/blob/master/spec/amp-html-format.md
このブログは Movable Type なので、ブログ記事のAMPテンプレートを作ってみます。
<!doctype html>
<html ⚡ lang="ja">
<head>
<meta charset="utf-8">
<title><mt:EntryTitle> - <mt:BlogName></title>
<link rel="canonical" href="<mt:EntryID pad="1">.html" />
<meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1">
<script async src="https://cdn.ampproject.org/v0.js"></script>
<style>body {opacity: 0}</style><noscript><style>body {opacity: 1}</style></noscript>
<style amp-custom>
body { margin:0; padding:10px; }
</style>
</head>
<body>
<header><h1><mt:EntryTitle></h1></header>
<article><mt:EntryBody regex_replace='/img /g','amp-img layout="responsive" '></article>
<aside><mt:EntryDate></aside>
<footer><hr><a href="<mt:BlogURL>"><mt:BlogName></a></footer>
</body>
</html>
絵文字⚡が斬新ですが、amp でもokです。
regex_replace で img を amp-img に置換して layout 属性も追加しています。
実際には img 以外にも置換が必要なので、regex_replace を複数書いて条件を追加します。
Google AdSenseなどの広告や、Google アナリティクスのAMP対応サンプルもあります。
via http://masup.net/2015/10/fits-amp-html.shtml
通常の記事に、link rel=”amphtml” でAMP版があることを書いておきます。
AMP版のURLに #development=1 を付けることで、Chrome DevTools console で検証エラーをチェックできます。

この記事のAMP版: 001023.amp.html
少しだけガラケー時代の携帯サイトを作っている気分になりました。
下記追記です。
AMP ページにエラーがあると、Google Search Console でエラーが出ます。

Google Search Console の Accelerated Mobile Pages メニューで、AMPページのインデックス数やエラー数などを確認できます。

Google Search Console で、「サポートされている構造化データ要素がありません」というエラーが出ている場合、
JSON-LDによる構造化データを追加します(構造化データは必須のようです)。
https://developers.google.com/structured-data/rich-snippets/articles
テンプレートに下記を追加します。
<MTSetVarBlock name="img1"><MTEntryAssets type="image">images</MTEntryAssets></MTSetVarBlock>
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "NewsArticle",
"mainEntityOfPage":{
"@type":"WebPage",
"@id":"<$mt:EntryPermalink$>"
},
"headline": "<mt:EntryTitle>",
"image": {
"@type": "ImageObject",
"url": "<MTIf name="img1" like="image"><MTEntryAssets lastn="1"><$MTAssetURL$></MTEntryAssets><MTElse><$MTBlogURL$>cover.png</MTElse></MTIf>",
"height": 600,
"width": 800
},
"datePublished": "<mt:EntryDate format="%Y-%m-%dT%H:%M:%S">",
"dateModified": "<mt:EntryModifiedDate format="%Y-%m-%dT%H:%M:%S">",
"author": {
"@type": "Person",
"name": "NAME"
},
"publisher": {
"@type": "Organization",
"name": "<mt:BlogName>",
"logo": {
"@type": "ImageObject",
"url": "http://example.com/logo.png",
"width": 60,
"height": 60
}
},
"description": "<$mt:EntryExcerpt$>"
}
</script>
JSON-LDは、上記AMPの検証方法では確認できません。構造化データテストツールで検証します。
https://developers.google.com/structured-data/testing-tool/

AMP版のURLを入力して「問題ありません」と表示されればokです。

Google Search Console で、無事インデックス登録されたことが確認できました。