我目前正在评估 Google AMP 页面。所以对于我的静态页面,我已经实现了一个有效的基于放大器的版本并按照文档将它们链接在一起。
如果我错了,请纠正我。最终用户仍然点击原始页面,并且请求将被基于 AMP 的版本拦截?
(请注意,AMP 不是“Google AMP”——也不应与“ Google AMP Cache ”混淆)
AMP 常见问题解答指出:
AMP 文件可以缓存在云中,以减少内容到达用户移动设备所需的时间。通过使用 AMP 格式,内容制作者使 AMP 文件中的内容可供第三方缓存。在这种类型的框架下,出版商继续控制他们的内容,但平台可以轻松地缓存或镜像内容,以优化向用户的交付速度。
所以Google AMP 缓存只是一种可能的 AMP 缓存,可能还有其他的。
每次用户从缓存中访问 AMP 内容时,内容都会自动更新,一旦内容被缓存,更新后的版本就会提供给下一个用户。
更新 AMP 内容文档(重点是我的)中对此进行了进一步阐述:
更新存储在 Google AMP Cache 中的任何 AMP 文档版本的最有效方法是使用 AMP Cache URL 格式访问该文档。Google AMP Cache 会自动从其来源请求最新版本的 AMP 文档,并将更新后的版本提供给下一个用户。
我制作了一个 UML 序列图来说明会发生什么:
重要的是要注意这一点:
要利用 Google AMP 缓存,必须使用 AMP 缓存 URL 格式直接从缓存访问 AMP URL。
直接通过移动浏览器的地址栏向您的网站发出请求的普通用户不一定会收到 AMP 版本。如果他们的移动浏览器知道 AMP 版本(例如通过存储<link rel="amphtml" />值),那么它可能会使用它,但在任何情况下,请求都将直接发送到您的网络服务器,而不会访问任何中间缓存。
但是,如果他们通过搜索引擎(例如 Google)向您的网站发出请求,那么 Google 会amphtml在抓取您的网站时存储该路径,因此会将用户引导至 AMP 版本。