I am implementing AMP for landing pages on my website. From a related question on StackExchange, I learned that the latest 2 versions of major browsers support AMP even on desktops. In that case, if I use the same page both for desktop and mobile and a user happens to access the page from an unsupported browser, will AMP still render properly? Is there a mechanism for fallback to normal HTML?
2 Answers
AMP is just HTML/CSS/JS, that's why it works in all modern browsers. Browsers don't really "read AMP", they read HTML/CSS/JS because that's what AMP is comprised of. From the AMP documentation:
AMP HTML is a subset of HTML for authoring content pages such as news articles in a way that guarantees certain baseline performance characteristics.
[...] it does not require the development of new rendering engines: existing user agents can render AMP HTML just like all other HTML.
Also, AMP HTML documents can be uploaded to a web server and served just like any other HTML document; no special configuration for the server is necessary.
Regarding browser support, according to Google:
the core AMP library and built-in elements should aim for very wide browser support and we accept fixes for all browsers with market share greater than 1 percent
So while AMP may not render perfectly in all browsers, neither will standard HTML. Unless you are targeting IE < 10 support, your AMP pages should render well enough even on somewhat out-of-date browsers.
All that said, it makes the most sense to directly test your AMP pages in the specific deprecated web browsers that you know your visitors are using - as there's no sense in supporting browsers that no one is using!
-
1@Rob AMP is just HTML/CSS/JS. It's not proprietary markup. Please read the documentation I've cited in my answer. May 9, 2019 at 17:18
-
1@Rob You can run AMP without pre-rendering. While it's true that some SEO advantages are lost if you don't serve it through Google's CDN, that doesn't mean the pages don't work perfectly fine. From the documentation I cited: "[AMP] does not require the development of new rendering engines: existing user agents can render AMP HTML just like all other HTML." May 9, 2019 at 17:31
-
1@Rob Your article seems to prove the point I am making more than it proves yours. From your article: "[AMP] actually consists of normal HTML with a few restrictions and added specialized tags [...] The AMP JavaScript (JS) library uses all of the best performance practices, is managing loading resources, and gives the user their custom tags" May 9, 2019 at 17:34
-
1@Rob "HTML with restrictions" is still HTML - it renders fine in a browser. Custom tags are a standard feature of HTML. "AMP JavaScript" isn't special JavaScript, it's just "standards-based JavaScript that's bundled with the AMP project". In short, "HTML with restrictions", "AMP JavaScript", and custom tags are ALL standards-based. AMP does not need to be pre-rendered anywhere - it can work on its own. If you don't believe me, load a raw AMP page directly in your browser and watch it render. May 9, 2019 at 18:08
-
1@Rob I'm afraid it's your understanding that is incomplete or flawed. Browsers understand these tags in a consistent and predictable way as they are part of the HTML standard itself. When you run AMP as-is, every custom element registers itself in the browser just like you agree that they need to - you can see for example on line 291 of this script from the AMP codebase that runs client-side in your browser github.com/ampproject/amphtml/blob/master/builtins/amp-img.js May 9, 2019 at 19:22
AMP is intended to be a copy of your original page. You should always have a regular HTML version of every page, and consider that the primary copy, the one that most visitors will see - no matter what size screen they're viewing your site on.
The AMP version is only intended to be displayed when the visitor is using a mobile device and coming straight from Google search results. Because Google is the one showing the result, it then uses one of two technologies - either Google AMP Viewer or a Signed Exchange - to display the page. So, as long as visitors are coming from organic Google search using a mobile device, even if they're using an outdated browser, Google provides an intermediary to parse and display the content in the mobile browser. But visitors who come to your site any other way - searching Bing, clicking on an ad that links to your site, or from search results on a larger screen - should see the regular HTML version of the page.
-
No. No browser directly displays AMP by which I mean native support. You MUST use their library and/or viewer for it to work at all. AMP's web page talks about support for browsers and not browser support.– RobMay 9, 2019 at 14:56
-
Perhaps the WordPress plugin provides some support as well then - I can view my AMP pages directly in Chrome on desktop by visiting the URL, and everything displays as expected. Updating the answer accordingly. May 9, 2019 at 15:57
-
@WebElaine AMP is a subset of HTML/CSS/JS, that's why it displays properly in web browsers. It's just a normal web page with extra restrictions. May 9, 2019 at 17:06
-
2@Rob I'm not sure how to say this tactfully, but you're wrong. AMP is valid HTML/CSS/JS and is rendered client-side in the browser, not by Google's CDN. On AMP's own page it even says "AMP is a subset of HTML" amp.dev/documentation/guides-and-tutorials/learn/spec/… May 9, 2019 at 17:15
-
1@Rob "Also, AMP HTML documents can be uploaded to a web server and served just like any other HTML document; no special configuration for the server is necessary." -> from that same page I linked May 9, 2019 at 17:16