是否可以仅通过用户代理来提供 AMP 页面?

Is it possible to serve AMP pages by user agent alone?

我的网站是自适应的,而不是响应式的构建,针对不同的用户代理分类(移动和 desktop/tablet)使用不同的模板。我们通过强大的用户代理检测并使用 Vary 返回内容来做到这一点:user-agent header(根据 Google 的指导方针)

我想在创建 AMP 页面时保留此结构 - 根据用户代理检测用户并发回 AMP 模板。

这是否可能,如果可能,AMP 使用的用户代理是什么?

目前 AMP 搜索结果仅向移动用户显示。根据 Google,如果显示器尺寸小于 7 英寸,则设备被视为 "mobile"。因此,从 Google 搜索结果中,您可以将其提供给移动设备。

现在,如果您要使用 AMP 为您的所有页面提供服务,那就是另一回事了,也就是说,如果我要访问类似 foo.bar 或该域下的任何其他页面,我会收到 AMP 页面,就像 ampproject.org 的设置方式一样。但根据我的测试,用户代理根本不受影响,应该与您在常规 HTML 页面中获得的内容相同。

乔治·克劳福德的回答:

GoogleBot 使用其 UA 请求 AMP 页面 details on webmaster central blog

但是,这并不能真正帮助您,因为它与常规 GoogleBot 的 UA 相同。 AMP 页面需要能够从 Google 想要抓取的规范页面中被发现,因此如果您将 Google 限制为仅查看 AMP 页面,那么它将无法找到规范页面,因此它不会正确抓取您的内容。

AMP 用户代理只是普通的网络浏览器,因此确实没有办法将它们与所有其他网络流量区分开来。这是设计使然。

您仍然可以实施基于 AMP 的自适应设计,您可以在其中使用 AMP 构建您提供给一部分用户的页面。例如。您可以只为手机用户使用 AMP,并分别为他们选择 AMP 模板。