前几天我在一次聚会上谈到了 AMP 的话题。 它是在“嘿,你们都见过这个东西吗?” 的语境下提出来的。 有些人听说过它,有些则没有。 即使是在那些听说过它的人中,普遍的反应也是:“这是一项新技术。 可能是未来。 我想我得学习它,但我还没来得及。” 这很正常。 这就像听到关于正在流行的某个新的 JavaScript 框架一样。 “显然,它很重要,但我还没开始使用它。 也许有一天,当一个项目需要它的时候,我会开始学习。”
聚会上的其他一些人则说,“它不是那个让你无法使用 CSS 或 JavaScript 的东西吗?” 另一个人认为它更像一个 CMS。 两者都不完全正确,但外界确实存在着很多困惑(以及很多耸肩)。 我们在这里就不再解释 AMP 是什么了,而是讨论一些可能令人困惑和有争议的观点。
这是 Google 的东西吗? 还是…?
网站没有特别明确地说明这一点。 从技术上讲,它是一个开源项目,有各种贡献者和合作伙伴,但……它是 Google 的东西。 Google 的员工正在开发它。 Google 举办了最近的会议。 Google 在所有 AMP 页面顶部托管所需的 JavaScript 文件。 Google 托管的缓存构成了 AMP“本质”的 1/3。 AMP 的核心在于让 Google 在备受关注的 SERP 轮播图中展示您的 AMP 页面。
以下是对这三个部分的简洁解释,来自 Jeremy Keith,包括有争议的部分
- AMP 格式。 一组 Web 组件。 例如,在 AMP 页面上,您使用的是
amp-img
元素,而不是img
元素。- AMP 规则。 在 Google 服务器上托管了一个 JavaScript 文件,它将这些 Web 组件从
span
转换为工作元素。 不允许使用其他 JavaScript。 所有样式都必须放在style
元素中,而不是外部文件中,并且对您使用这些样式的操作有所限制。- AMP 缓存。 这是大多数困惑(甚至彻头彻尾的敌意)的来源——当您从 Google 搜索中启动 AMP 结果时,您不会跳转到另一个网站。 相反,您会看到 Google 缓存的页面副本,而不是原始页面。
AMP 网站 并不否认这一点,并且同样明确。
您的网站将变为 https://google.com/yourwebsite.com
无论如何,它在某种程度上是这样的。 除非您执行一些非常不寻常的操作,比如 Paul Bakaus 所做的那样,将整个网站都改为 AMP,否则您最终只能在以下情况下才会访问 AMP 页面:
- 在移动设备上
- 单击 Google 搜索中的 AMP 结果
当您这样做时,您访问的 URL 将以 https://google.com 开头。 您将其添加为书签,您将其分享,您将其通过电子邮件发送给自己,无论如何,它都是 Google URL。 有点奇怪。 令许多人感到困惑。 有一种方法可以“请求桌面网站”,但不好用。
John Gruber 发现这一点特别奇怪
如果我点击结果,我会看到 Ars 文章的 AMP 版本,该版本由 Google 域提供。 到目前为止,我理解了。 但最关键的是,我没有看到任何方法可以从 Google 提供的 AMP 页面跳转到 Ars 网站上文章的规范版本。 即使我分享这篇文章,分享的内容也是 google.com URL。 在桌面浏览器上,这些 URL 会重定向到 Ars 网站。 但在移动设备上不会。 从一台移动设备分享到另一台移动设备,没有人会离开 google.com。 任何网站为什么要将整个移动用户群(对于当今许多网站来说,这占其总用户群的大部分)交给 Google?
我无法理解。
从为什么任何发布者会故意这样做?的角度来看,这毫无意义。
我最初的想法是,这只是另一种发布格式。 就像另一种 RSS 一样。 最近这轮发布格式包括 Facebook Instant Articles、Apple News 和 AMP。 还会出现更多。 我 说过
嘿,你们想怎样就怎样。 只要…
- 工作量不要太大
- 内容的规范首页是我的网站
我只想让大家阅读并喜欢 CSS-Tricks。 理想情况下,我可以通过 (良好、经过挑选的) 赞助内容来实现盈利,而这些赞助内容也会出现在所有这些频道中。
我仍然认为,在大多数情况下,这是可行的。 策略是:去读者所在的地方,这是合理的。
Gruber 的后续
我无法理解锁定方面。 我为什么要将页面控制权让渡给 Google? AMP 页面确实加载速度很快,但如果发布者希望他们的网页加载速度很快,他们可以将网页设计成快速加载。 我得到的最好的答案是,这并不是真正的战略——发布者之所以选择 AMP,仅仅是因为他们的 SEO 团队告诉他们这样做,因为 Google 在搜索结果中推荐 AMP 页面。 我想这是一种策略,但从长远来看,将内容控制权让渡给 Google 并不是一个好策略。
这种担忧源于对 Google 的不信任。 就我个人而言,我不太担心,但我理解这种担忧。 我对许多 其他事情都感到非常愤怒。
我还想补充一点,与 Apple News 或 Instant Articles 相比,在 URL 前面加上 google.com 并不像失去太多控制权。
这是一项非同小可的技术投资
最初,我以为这很简单,就像 RSS 一样。
是的,这是一种奇怪的新格式,充满了 <amp-img>
等 Web 组件。 但当然,就像 WordPress 网站可以生成 RSS 提要一样,也存在 WordPress 网站的插件可以生成 AMP 版本。 我在网上搜索了一下,发现 Drupal 和 Jekyll 等其他流行的 CMS 也存在插件。 大概 20 秒的技术投资。
但是……如果您只做这些,您会失去很多东西。
所有广告、号召性用语等等都无法同步。 您可以在 AMP 上投放广告,但只能使用 AMP 特定的广告平台。 您很可能需要与全新的合作伙伴合作处理广告。 您最好希望能够获得大量的移动搜索流量,否则,这可能并不值得。 如果您要全面实施发布到任何地方的策略,您可能需要在每个地方都使用全新的广告合作伙伴。 哎呀。
您在页脚中的电子邮件订阅表单? 不见了。 您在文章末尾的小型推荐文章小部件? 不见了。
这不是说这些东西不能在 AMP 中存在,只是您需要完全重新设计它们才能让它们回来,因为不允许使用 JavaScript。 甚至您的品牌、排版等都需要定制工作才能保持一致。
在我看来,使用 AMP 的选择似乎如下:
- 使用 CMS 插件为您生成 AMP 页面,并让默认值保持默认值。
- 使用 CMS 插件,但根据自己的需要进行自定义。
- 构建自己的系统。
- 使用像 Mercury 这样的神奇工具,或像 Relay Media 这样的付费定制服务。
就我个人而言,虽然我完全可以接受另一种发布格式,并且完全被其速度所吸引,但我并不喜欢这些选择中的任何一个。
AMP 不会告诉你:嘿,也许不要使用它
这里存在一些风险,我认为这就是争议的一部分。 AMP 文档不会列出不使用 AMP 的理由。 他们必须告诉你为什么你应该使用它。
风险在于它比预期的开发量更大。 风险在于您做了很多工作却赔了钱。 风险在于让用户感到困惑。 风险在于 Google 会发生一些奇怪而粗鲁的事情。 范围更广地说,风险在于 AMP 对 Web 弊大于利。
您不需要 AMP 就能获得类似 AMP 的结果。
Google 缓存值得注意的地方在于它是免费的,但除此之外,它似乎与任何 CDN 为您做的没什么区别。 您可以将网站构建成预渲染和缓存友好的。 您可以限制 JavaScript 的使用。 您可以仔细选择 HTML,并以性能为目标编写 CSS。 您可以自己完成所有这些操作(事实上,您应该完成所有这些操作)。
声称使用网页功能的子集可以提高性能也并没有什么令人兴奋的地方。在任何传统的文章页面上禁用 JavaScript,你可能会看到非常相似的收益。
但是,这就像一块白板。你 *可以* 自己动手做,但你不会。或者至少,人们不会大规模地做。也许在一个 AMP 大获成功的世界里,它会影响“普通”网站朝着清理自己的行为方向发展。
即使是现在,AMP 也可以成为内部团队的完美借口。Jeremy Keith
为庞大臃肿的网页的出版商工作的苦恼的开发者,在被告知在他们的页面中添加另一个糟糕的 JavaScript 跟踪脚本或臃肿的库时,很难与他们的老板争论。但当他们制作 AMP 页面时,他们可以轻松拒绝,指出 AMP 规则不允许这样做。Google 充当我们的坏警察,这是一个非常有价值的角色。 Sarah 指出这一点,她在我们参加的小组讨论中非常正确。
强调一点,AMP 页面并不需要为了性能而存在。
在 AMP 大会上,Natalia 指出,卫报的非 AMP 页面在性能上优于 AMP 页面。
这实际上对网络有利吗?
我强烈建议收听 ShopTalk 248: AMP,我们邀请了 Paul 和 Barb Palsar 参加。
Paul 喜欢 AMP,他绝对是一个支持网络的人,但他承认 AMP 存在着对开放网络不利风险。Barb 是一位企业家,她承认 AMP 存在风险。
Tim Kadlec 对 工具锁定 表示担忧。
为了“触达所有人”,使用非常具体的工具来构建我页面的定制版本,这并不符合我对“开放网络”的任何定义。
但它们应该解耦。提供工具来提高性能。提供一种模型和方法来产生收入流并改善分发。
Paul Irish 在那篇文章中发表了评论。
虽然“工具而非规则”的理念在技术上是正确的,但它在开发者群体中并不容易扩展。对平台上可能性的子集提供明确的约束,当然更容易遵循。
AMP 对网络的一种承诺。Google 也许可以效仿 Instant Pages,并提供一些非网络格式,从而创建一个平行的出版宇宙。但 AMP 被设计为与网络兼容,因为 Google 认为,当内容位于网络上时,它具有最佳价值。
Gina Trapani 也 表示担忧
如果你谈论开放网络,你就是在谈论基于标准和去中心化,以及内容不被赋予特权,对吧?AMP 做到了所有这些。它不是 W3C 标准…… 至少现在还不是。它不是去中心化的,因为至少所有 AMP 页面都托管在 Google 的缓存中。因此,如果你在 Twitter 上搜索 google.com/amp,你会发现很多结果,人们正在分享那个 URL,所以它不是去中心化的…… AMP 内容在搜索结果中具有特权,这让我感到担忧。
正是这种特权激励了 AMP 的使用。对我来说绝对是如此。
根据我的经验,人们使用 AMP 的动机是……我从我们的客户那里看到了这一点……主要是由于 SEO。他们希望它出现在“热门故事”轮播中,他们希望在常规搜索结果中获得那个闪电状的认可,现在这种情况正在发生。这让我感到担忧。我宁愿他们关心的是性能和更好的用户体验,而不是 SEO 和搜索排名。如果没有这个因素,有多少出版商会使用 AMP?会更少。
无论如何,这很复杂。
对我来说,如果……感觉会更好。
- 创建真正好的 AMP 页面的工具变得更加出色和容易。
- 不仅仅是 Google 使用这种格式来做一些很酷的事情。
- 它从来没有被任何机构用作搜索排名因素(或任何可以被解释为搜索排名因素的东西)。
- 它成为了 W3C 标准。
- 广告生态系统变得非常乐于追随你的内容,无论它在哪里。
但我的想法正在不断发展,就像每个人的想法一样。
最重要的是
想要快速的移动页面吗?去掉大部分 JS;将其减少到一个精简的脚本,而且,不,一堆压缩的、合并的库不算精简。去掉大部分 CSS,并将剩下的所有内容直接内联到样式标签中。通过使用 CDN 缓存生成的 HTML 来消除后端延迟。
… 这样你就可以得到 AMP。AMP 使上述所有操作变得更加容易,并在不确定的情况下为人们提供了一套可靠的规则可以参考。
AMP 创建了一个平行网络。内容以两种格式发布,一种已经存在了几十年,并且被所有机器和人都理解,另一种是 AMP。它具有简化的功能子集,创建了自己的全新标准,这意味着你需要构建一个平行宇宙来支持 AMP。我将 AMP 比作构建自己的移动应用程序,它需要付出很多努力,你确实会获得一些好处,但它是一个特定应用商店的封闭环境。从长远来看,这对网络不利。
它可能还不为人知,但在任何关于 AMP 的近期讨论中,我从未听到有人提到 Cloudflare 对 加速移动链接 的介绍。
来自介绍的值得注意的引述
以及
我想这可能会改变一下讨论的方向。
(与本主题无关)
这就是一家搜索引擎实际上成为垄断企业时会发生的事情。
许多网站依赖 Google 提供大部分流量,因此如果 Google 说“做 X 否则你的流量会大幅减少”,那么你就被迫服从。
如果目标是更快的页面,他们可以很容易地通过对所有速度超过指定阈值的页面给予 SERP 提升(以及闪电状图标)来实现同样的目标,并提供指南,甚至提供工具来帮助开发者达到所需的速度。Google 已经测量页面的速度,所以从技术角度来看这是完全可能的。
但显然,他们关心的不是更快的页面,而是对我们内容的更多控制,而 AMP 只是他们获得更多权力的借口。
Theo,
你忽略了一点:Google 实际上是通过缓存 AMP 版本来 *为你* 提高页面的速度。是的,Google 可以提升任何速度更快的页面,无论是否使用 AMP,而且我相当确定他们已经这么做了,但对于一般的网页内容创作者来说,Google 支持的 AMP 页面会比任何其他触手可及的东西更快,成本也更低。
这是一个很棒的集合。我错过了 Tim 关于 AMP 的评论。
让我对 AMP 感到担忧的是,它没有列出来,但一位(前)Google 开发者在 https://meiert.com/en/blog/20160818/amp/ 中做了总结——我们缺乏对特定设计决策的了解,而没有这种了解,AMP 看起来设计得很糟糕。如果 AMP 在几年内就消亡了,这并不奇怪(我的看法)。
也许正如你所说:很复杂。
你关于“不担心 Google”的评论——我理解;我知道你谨慎地选择你的战斗,并且一丝不苟地避免“贬低”任何人或任何事。但是,我必须承认,我不赞同你那种“全盘接受”的信任态度。
Google 规模庞大——如果他们想要,他们就会买下它。Google 给我的感觉很不舒服,因为它任意地关闭了那些已经使用很长时间并且已经成为基本商品的项目和设施。如果他们不小心,他们庞大的规模几乎会把他们的每一步都变成对使用网络的人的“欺凌”。Google 是那种要求 FTC 及其法律存在的公司;它是反垄断法的诞生地。根据定义,Google 的市场份额意味着像“你按照我的方式玩球,否则你就不能玩”这样的事情。人们总是对 Google 可能滥用其地位感到怀疑——无论他们是否真的滥用过——人们会想,“那些付费的人是否会获得最高级别的待遇”。
谷歌展现出极大的利他主义,这显然不仅有利于网络,也惠及我们生活的其他方面,谷歌地球就是一个例子。有些人自然会想知道这种利他主义能持续多久,Panoramio就是一个例子。谁没有在搜索结果中一遍又一遍地找到一两个真正想要的结果,却翻遍了谷歌认为比你更了解你想要什么的一堆垃圾,而感到困惑呢?谁没有做过一个关于“孩子在秋千上”的图片搜索,却发现每一页的结果都是“奥巴马”或“希拉里”的照片?或者,谁没有写过一篇关于你可能是世界上唯一有资格写的人的领域的权威文章,却发现它被埋在谷歌的结果中,被一群只提到过一个关键词的青少年博客页面所淹没,这些博客页面被数百名青少年粉丝“点赞”?
这基本上是我对谷歌所有产品的感受。它存在。它一直非常利他,但也任性而反复无常。我想要信任它;但是,我无法完全信任它,我所有与“常识”中心相连的神经都在尖叫“小心”。在很多事情上,我认为他们没有做对——但在某些情况下,他们不知道情况完全可以解决。而且,即使我在某个晚上从高处得到了启示,找到了解决重大问题的办法——谷歌如此庞大、分散且自我保护,谁能真正接触到他们?(当然,克里斯可能拥有他们的直接电话号码,但我呢)。
这就是我对 AMP 的感受。在我读过的所有内容中,只有这一条:“它更快”,吸引了我。所有其他要求要么让人觉得“你一定是在开玩笑吧”、“这怎么可能会更好”、“我为什么要这样做”、“谁有时间做这些”,要么是“你实现了它,改变回来将太昂贵或不可能”。
当然,这只是我这个业余人士在说;我非常清楚当发明一些新东西时,批评者会从哪里冒出来。我的领域充满了如今被称为“黑粉”的人。这让我真的很努力地不成为那种“体制内”的人,就像那些不接受亚瑟·库尼(Arthur Couney)的人一样,他想要将欧洲发明的婴儿保育箱引入美国既定的医疗体系。直到他为期 40 年,在科尼岛的 Luna Park 建立了一个免费的“新生儿重症监护室”(当时是这样),由 25 美分的公共入场费资助。(他做了 40 年,治疗了 8,000 名儿童,挽救了 6,500 人的生命)。
也许 AMP 是下一个伟大的发明——我希望不是,因为我们确实需要为了看似微不足道的收益付出很多——但即使它是,它也让我感到担忧,因为它似乎是如此……单方面。
补充一点:即使你讨厌 AMP,也要了解它的工作原理。它不是魔法。它基本上是强制执行一套规则,使页面加载速度更快
限制 CSS
所有 CSS 都是内联的
最少的 JavaScript
所有元素的尺寸在外部资产加载之前都是已知的
等等。
你可以在不使用 AMP 的情况下使用这些原则。
我个人很喜欢 AMP,我认为很多简单的静态内容网站应该 100% 使用 AMP。
我在 Reddit、Twitter 和 Hacker News 上的评论中反复看到,将网站转换为 AMP 很简单,但是如果出于任何原因你决定不再使用 AMP,则很难(或不可能)从谷歌搜索结果中删除 AMP 页面。
一位开发人员将他的整个网站(数千页)作为测试进行了转换,决定不使用 AMP,然后发现从谷歌 AMP 缓存中删除页面的唯一方法是将他们要删除的每个页面的 URL 单独发送给他们,这对他来说意味着需要发送数千个请求。
你可能会觉得这听起来工作量很大,但事实并非如此——因为该表单根本不起作用,所以他根本无法从 AMP 缓存中删除任何页面!♂️
在测试它之前要小心,确保在你将整个网站转换之前,能够在需要时取消 AMP 页面!⚡️
还记得谷歌几年前(大约 2009 年)的 rel=”author” 设置吗?网页作者可以将他们的 G+ 帐户与其内容关联起来,他们的头像通常会出现在搜索结果页面中,位于他们的列表旁边。这应该可以带来更多流量,并让人们有动力注册 G+。但它已经消亡了。如果 AMP 没有流行起来,这些轮播很可能也会消失。我怀疑这是一个不会流行起来的实验,特别是由于这场争论本身。激励机制还不够明确,而且人们的担忧太大,无法加入这股浪潮。
“它成为了 W3C 标准”
我以前说过,而且我会再说一遍:AMP 不能成为 W3C 标准,因为
– Web 组件已经成为标准
– 缓存代理不能成为标准
– JavaScript 就是 JavaScript,它是一个标准
渐进式 Web 应用增强是标准,缓存 CDN 是一个工具。
AMP 所做的事情与编写优秀的发布网站无关。真正的发布 CMS(而不是博客平台)拥有出色的 Schema.org 微数据,动态 rel 链接和规范等。
正是这种先懒惰后良好的开发心态,谷歌在没有明确说明风险的情况下正在推行(如果 CDN 在将来被关闭怎么办?你精心配置的 AMP 工具会发生什么?)。
<!--[if AMP]>
就在所有主流浏览器都变得标准化的时候,我们又迎来了 IE6。
<![endif]-->
嗨,克里斯,
感谢你的文章,它表明你显然在思考潜在的问题和解决方案,我们需要更多开发者在 AMP 的背景下做同样的事情。
现在,我想要澄清两件事:首先,你似乎将 AMP 置于仍然缺乏的 WordPress 插件的背景下,认为它是你在“普通网站”之上“打开”的东西。我不认为这描绘了一幅准确的图景。如果你从头开始构建 AMP 页面,你将不会遇到这些问题。这有点像说“切,RWD 很奇怪,因为那个 WP 插件有点不好用”:)
其次,创建另一个 m.dot 网站,或者像有些人所说的那样,创建平行网络,完全是开发人员的选择——我们不强制这样做。事实上,我强烈反对这样做(我以前在我的博客中也说过)。公平地说,你提到我正在做不寻常的事情,并且将 AMP 视为……任何其他用于构建网站的库,但这真的必须是不寻常的吗?
总之,请继续思考,也许在周三参加我们的设计评审吧!
老实说,我越是想象出不同的回应,就越会听到同样的回应:“如果没有搜索结果页面的好处,没有人会考虑 AMP”。
它不是最好的技术。它是被强加的技术。
抱歉这么说,但这是现实。
我真的很喜欢你们所有谷歌人,但虽然很悲哀,但这是现实。