top | item 13048864

Google’s AMP is a gilded cage

257 points| robin_reala | 9 years ago |shkspr.mobi

124 comments

order
[+] robertelder|9 years ago|reply
I did a technical review of what I felt were the major pros/cons of implementing AMP pages:

http://blog.robertelder.org/adding-support-for-amp-pages/

Edit: To save you a click, here are some of the key points:

- You can't use Javascript on AMP pages, but you can put Javascript in iframes or substitute the javascript feature for an existing amp-component.

- AMP pages require that Javascript is enabled.

- In order for pages to pass AMP validation you must include the "https://cdn.ampproject.org/v0.js" script on AMP pages. Furthermore, I believe you are required to hotlink to the ampproject version as I have been unable to pass validation with a locally served copy of these scripts.

- You can't use inline 'style="..."' tags

- AMP uses inline 'style="..."' tags on rendered markup

- External stylesheets are not allowed

- You will likely want to maintain a separate AMP view and a non-amp version of your pages.

- The DOM structure of AMP pages will be slightly different than for desktop pages.

I wouldn't say that I like AMP, but since the world is going mobile I figured I should try to become and early adopter for AMP. In a way, I kind of hope that the AMP projects gets abandoned, but if that happens then I'll have wasted a bunch of time adopting it.

[+] TeMPOraL|9 years ago|reply
Thanks for writing the review, it's a summary.

BTW. Without judging whether AMP is good or bad, I'll say in this comment you just highlighted the mechanism by which many a bad thing becomes commonplace. "I wish $thing wouldn't be done, but because $market_realities, I figure I should adopt the $thing for now". Even if nobody wants $thing to happen, when many people think like this, it'll get adopted anyway, and then enshrined as the new status quo.

[+] madeofpalk|9 years ago|reply
Have you looked at and 'reviewed' alternatives, such as Facebook Instant Articles or Apple News Format?

Why is passing validation an important thing for AMP? The main complaint I hear about it is the AMP CDN, where Google caches and hosts your page for you. If you're failing validation then they wouldn't do this, right? So you get the advantages of a fast page without the disadvantage of Google reposting your content.

[+] jayd16|9 years ago|reply
The AMP only js, hot linking and non-local copy is part of the cache magic that makes it work so I wouldn't expect that to change.
[+] flukus|9 years ago|reply
So have we gone full circle on turned html into a basic document structure? I thought the next cycle would have been in json.
[+] hannob|9 years ago|reply
AMP is the result of webmasters being unable to provide any kind of reasonable site performance. Which isn't hard. Don't include content from dozens or hundreds of thirdparty hosts. Don't do crazy amounts of super slow javascript.

If people would do that there would be no need for AMP. The whole concept is mostly "Google tells people their webpages suck and puts them into a cage where they can guarantee that they don't suck".

[+] untog|9 years ago|reply
It's worth pointing out, though, that the source of a lot of this performance drain is ads. And Google are the main provider of ads across the internet.

To me, AMP feels like a method for Google to sidestep the real issue at hand.

[+] jakasto|9 years ago|reply
I don't disagree with you. However, I think the best solutions almost always address root issues, so I'd much rather Google more heavily penalized slow sites. That gets to the heart of the issue without harmful side effects. AMP does neither.
[+] cbdfghh|9 years ago|reply
The solution is very simple.

Google's spider uses headless chrome which runs Javascript (to index flash and Ajax content). Why can't they detect how long it takes to run your page before getting useful content?

What about just penalizing Javascript?

What about penalizing download size?

[+] vlunkr|9 years ago|reply
Yeah you'd think that isn't very hard, but time has proven that we are quite incapable of writing websites with sane amounts of ads, trackers, and JS libraries.
[+] voltagex_|9 years ago|reply
How much of AMP's speed is coming from re-hosting content on very very fast CDNs with edge nodes everywhere?
[+] threatofrain|9 years ago|reply
I would say that JavaScript can also make <some> aspects of your site faster than pure HTML CSS.

Why? Because most sites are not just a single landing page -- they have links, or tabs, or new pages, and each request could take 0.2 seconds.

So instead of requesting a new page at the time of clicking on a link, and then re-loading your entire page, you just fetch information predictively and mutate the DOM to give a feeling of <instant>, faster than even an HTML CSS page behind a CDN.

[+] edent|9 years ago|reply
(I'm the author of the blog post)

I agree with you. My site was already fairly lightweight, but I wanted to see if AMP improved things and made a better user experience.

It made it slightly faster, but other than that, didn't create a big enough impact for me to notice.

[+] sintaxi|9 years ago|reply
I can't help but feel AMP is a step in the wrong direction and was quite possibly a disingenuous play from Google from the get-go.

URL highjacking is harmful for the web and I can't for the life of me understand how this project could get past the initial stages without that drawback being understood.

[+] hehheh|9 years ago|reply
In a world where CloudFlare MITM is so openly embraced, I'm not surprised at all that AMP is at least somewhat popular.
[+] tehwebguy|9 years ago|reply
Yeah if I wanted to use some crappy reader I would have installed it. It's not just a website issue, it's a pain for users too!

Can Google just give me an option to say "I'm a big boy and I can use the internet right"?

[+] Twirrim|9 years ago|reply
Added bonus is the damage being done to Google's credibility. A number of the fake news sites now appear as being "google.com", due to the funky hosting approach of AMP.
[+] throwbsidbdk|9 years ago|reply
I think everyone is missing the point of AMP. Google could have just as easily SEO punished slow sites and had the same effect as amp. If a site was slow you wouldn't see it in search results anyway. Nothing inherent in AMP makes the web any faster than an optimized site.

The whole point of AMP is so that nobody ever really leaves Google. Anyone who thinks otherwise is naïve, and it's pretty fucking obvious with how the AMP UI is setup. People are saying "oh it's okay they'll change the UI when they improve AMP, V2". I doubt it, the UI was built the way it is intentionally to see if they can get away with it. "making the web faster" is just their marketing to get everyone to buy in.

Look, Google made my phone and my web browser. They are my main source of email, news, videos, and content. I spend most of my day using google devices and Google software on Google sites. Now google wants to host every site in the search results for "speed". Seem like a disturbing pattern? The internet needs to push back or be owned by Google. AMP has gone too far.

[+] shostack|9 years ago|reply
I am concerned with how they have "nudged" sites to use AMP with the consequence being worse mobile rankings combined with them essentially getting final say around who gets to be an ad partner that is white listed.

As an example of where this is concerning...look at the importance of the GDN and other exchange inventory to Google. Now look at FB trying to grow its offsite presence with Facebook Audience Network. Hmmm...doesn't seem to be supported by AMP tags. Interesting.

It also looks like it severely hinders analytics efforts for everyone but Google due to the JS limitations.

As a business move it is fascinating to wTch this play out. However I really do worry about how much control Google is trying to exert here...it is rather unprecedented.

[+] cybernytrix|9 years ago|reply
As a user, I can't stand amp -- issues are 1.) no link to original site. 2.) top banner plague 3.) weird smooth scrolling that messes with my muscle memory.

There are two workarounds to avoid amp all together: 1.) use DDG and prefix all queries with "!g" or 2.) visit encrypted.google.com that does not use amp.

Given that I tend to stay on a page for 2-10 minutes, shaving off 1sec is less than 0.8% improvement. This is not worth it given the horrible drawbacks and UX.

[+] cocktailpeanuts|9 years ago|reply
Wow this is crazy. I remember PayPal used to freeze your account when they detect a pattern they're not familiar with, and make you send a fax of your identity and all the documents and you wouldn't be able to touch your own money for a while.

This feels like a website version of that same bullshit process.

More and more I don't like how these "open" projects are coming from some of the largest companies. It's a huge conflict of interest, and people should know more about this.

It's important to realize that: The primary goal of Google AMP and the friends is NOT to make the web better and faster.

It's to become the AT&T/Verizon/Comcast of the content distribution. Facebook (Facebook Instant) and Google (AMP) and Apple (Apple News) want to own the low stack distribution channels as well as the application level (facebook.com, google.com, iOS devices) If one of these companies manage to control that level of the stack, they can use that as their huge advantage in competing with others.

[+] velcro|9 years ago|reply
AMP is of course mostly meant for articles - but we wanted to see how it did for complex(er) layouts. Had a weekend hackathon to recode our main one-pager for performance and SEO recently + we also did an AMP version of the page at http://pag.es

The AMP version of the site is (as expected) not as performant as our custom optimised one. AMP version will load 1.2MB+ of data with 28+ requests, while ours makes due with half of that and 0.6MB with 17 requests. Some of that is due to AMP components that could be a bit more optimised (like we have a hidden youtube video that launches on click - and the youtube AMP component will load all of it dependencies on first start which is not ideal - our custom version does this when the user clicks/launches the video).

However - the new site release did wonders for SEO. Its probably not all due to just having an AMP version, but also just having a good mobile/optimised site - we still landed on 1./2./3. google search page results for some fairly generic terms. Really surprised us - kind of shocking actually, especially since we did little with the page before and didn't have that many inbound links, etc...

[+] icebraining|9 years ago|reply
Comparing cold loading doesn't seem appropriate - one of the points of AMP is requiring you to hotlink to their specific resources, so as to benefit fully from cache, as more website get AMP'ed.
[+] ClassyJacket|9 years ago|reply
AMP is yet another good idea that Google didn't test properly or think through. As far as I can see, you can't click through to the actual page from an AMP page, which sucks if you want to share the link or something.
[+] edent|9 years ago|reply
On some AMP sites I see "click here to comment" which takes a user back to the main site.

But, yes, I agree. User hostile - and there are plenty of comments on Google's product forums to support that viewpoint.

[+] oneeyedpigeon|9 years ago|reply
> AMP is yet another good idea

Can you explain why AMP is a good idea? I still don't really understand it, I'm afraid.

[+] IanCal|9 years ago|reply
I don't really understand why it's not done as a typical content-negotiation thing. Perhaps there's a good reason but since my first query of why they were doing something wasn't valid HTML and the reply was "O(fun) is important"...
[+] AJ007|9 years ago|reply
Perhaps who ever came up with it, an engineer, had some good ideas, and then when Google executives took a look they said wonderful here is an opportunity to:

- Cut off third party ad networks

- Reduce bounce rates from Google.com to outside sites

[+] the_duke|9 years ago|reply
Of course you can't because now you just share Google's AMP link and they can keep harvesting data...
[+] tlrobinson|9 years ago|reply
AMP should be an optimization for browsers that support it, that way:

1. They don't have to hijack the URL. I understand the technical reasons for this, but it's unforgivable.

2. Browsers can provide an easy way to view the original/full content.

3. Users can easily disable AMP in their browser if they want.

[+] revelation|9 years ago|reply
It's not like Google particularly cares for 1. I still get a ridiculous Google-redirector URL when copying a link from the search results that has enough entropy to uniquely identify every single atom in the universe 2^128 times over.

Despite showing the correct link in the status bar. It's a scummy dark pattern that needs to die.

[+] jc4p|9 years ago|reply
@edent - what web server are you using? I wouldn't bother with any Wordpress plugins, but if you're using Apache or something you should be able to `mod_rewrite` pages ending in `/amp` to the same page minus the `/amp`, which _should_ work right? Hopefully then Google will notice the 301s and catch up.

Posting this here because in the comments on the blog post he asked for any code that might help with that, I think something like:

`RewriteRule (.+)/amp/$ $1`

might work

[+] dangoldin|9 years ago|reply
Earlier this year I spent some time moving my blog to AMP and so far I'm pretty happy with the move. It's hosted on GitHub pages and I made the decision to go full AMP (including Desktop so I never went the /amp/ subfolder route) and allowed me to convert every existing page to AMP without having to have a new set of URLs.

It's noticeably faster but there are a few hiccups I had to deal with - JS needs to be in isolated iframes and getting Disqus comments took a bit of time but in my case the performance benefit outweighs it. At the same time I could just simplified my design without going full AMP and it probably would have been just as quick. The biggest frustration is that if you make any CSS changes it has to rebuild every single page since the style needs to be declared inline rather than as a link to a CSS file.

For those interested: http://dangoldin.com/

[+] majewsky|9 years ago|reply
I don't know what you did there, but it takes about 8 seconds on my desktop before it displays anything. Talk about "accelerated".

Edit: I checked with the Developer Tools, but I have no idea what is going on there. Assets are fully loaded within 500 ms, and then it just sits there for another 7.5 s before rendering anything at all. (I will note that cdn.ampproject.org is blocked by default in my uMatrix.)

[+] rml|9 years ago|reply
Wow, the pages on your site load so quickly they're finished rendering before I even start reading the article. Thanks for sharing this. Very cool.
[+] makecheck|9 years ago|reply
This experience basically ruined mobile Google for me and caused me to switch my entire search engine to avoid it.

It is completely wrong to optimize for viewing while breaking expectations for anything else. COPYING THE URL is very frequently the next thing I want to do, and AMP destroys this. For example, when looking up recipes, I often create a multi-device-sync note containing the URL, where I add a shopping list and whatever other notes I want to make; it makes no sense to be forced to copy a mobile-only, Google-domain link for almost every search result when next time I might be opening the page from my desktop machine!

Another major problem is that the only indication of this hijack is a little lightning-bolt and "AMP" next to certain links. I guarantee most users don’t know what that even means so problems will be blamed on “the site I clicked” and not “Google”.

[+] f_allwein|9 years ago|reply
Seems like a mixed blessing for users. I just started too realize that I'm getting links like

https://www.google.co.uk/amp/s/amp.theguardian.com/world/201...

from Google. Sites load fast and webmasters seem to like it (1), but I think it's a terrible user experience if you want to share the link etc. Apparently, Google will address this someday (2).

Regarding the issue mentioned here, of course Google can’t give direct support to all webmasters. But in my experience, the Webmaster forum is a great place to get help as it is full of smart users (and Googlers). Then I would say that, as I used to work for Google.

(1) http://digiday.com/publishers/publishers-excited-google-amp-...

(2) https://www.seroundtable.com/google-disable-amp-feedback-221...

(3) https://productforums.google.com/forum/#!forum/webmasters

[+] ksherlock|9 years ago|reply
As a developer type, I don't like AMP for a variety of reasons. As mobile browser user...

Webmasters: you had your chance and you blew it. Your website is completely unusable on my phone. AMP exists because of your indifference and incompetence.

[+] ninkendo|9 years ago|reply
I feel exactly the opposite as a browser user.

AMP breaks the back button and makes it so I can't swipe to navigate back. It puts google.com in the address bar so that I can't easily copy the link and paste it to someone else. It puts a permanent, excessively tall border on top of every page that I can't get rid of, making the usable viewing area much much smaller. (Oh and that X button that looks like it would close it? That takes you back to the search results. Figure that one out.) It breaks nearly every convention my device has for webpages and is totally nonstandard.

I really really wish google gave a way to disable AMP links in their results but they don't listen to people like me.

[+] fiatjaf|9 years ago|reply
This thing breaks the internet hard. What is the meaning of an URL now?
[+] Animats|9 years ago|reply
Amp is like the Roach Motel, "they check in - but they don't check out".
[+] cdata|9 years ago|reply
Disclosure: I work at Google. Opinions are my own.

I'm surprised when I read discussions about AMP on HN (typically carrying a negative tone regarding AMP) without anyone mentioning an obvious competing concept: Facebook Instant Articles.

Here is an excerpt from Facebook's FAQ on instant articles:

> Rather than loading an article using a web browser, which takes over 8 seconds on average, Instant Articles load using the same fast tools we use to load photos and videos in the Facebook app

Facebook has drawn a line around the open web and stamped it as slow compared to Facebook's proprietary content delivery system. If nothing else, AMP is a timely wakeup call for content publishers: if you like the open web, better start producing content that loads quickly on a phone over a 3G network. Otherwise, we will incrementally lose openness at the behest of users who will demand the superior experience of channels like Facebook Instant Articles.

[+] xg15|9 years ago|reply
The criticism on AMP is imo absolutely justified, but for the current case: Couldn't you at least solve the broken link by redirecting the AMP url to your actual page?

Taking this a step further, you could serve a minimal AMP page that contains just a link back to your original page.

[+] TeMPOraL|9 years ago|reply
All the discussions focus on AMP in isolation, but I keep wondering - is AMP just a knee-jerk reaction to the utter absurdity of current bloat proliferation on webpages, or is it a part of a bigger idea for reshaping the web? If it is the latter, I'd love to learn what the idea is, so it can be discussed in full.
[+] EricBurnett|9 years ago|reply
This post seems to conflate two ideas (1) AMP being an insufficient implementation (update-ping not working, and that being an awkward pattern anyways) and (2) AMP being actively harmful to the web ecosystem in principle.

(1) Comments on the implementation I don't know nearly enough to contest. It's a new technology, and will take a lot of changes in and out of Google to get right. It's also early days - continue raising a stink about things like this and I expect it to get better quick.

(2) The principle of AMP leads to a very interesting discussion. The fact that the top-level URL users go to is not the canonical URL for the page does stray into "breaking the web" territory, at least until it's better supported in browsers. On the other hand, as I understand it that's a technical requirement for AMP to be able to verify the content served through it, which is a requirement in turn for keeping AMP page quality high (in terms of latency, etc, rather than content judgements). Which I think is the most enticing part of AMP, and not something that should be given up lightly.

I see AMP as a possible answer to the tragedy-of-the-commons problems that have resulted from standardizing on third party display ads for monetization, third party scripts for analytics, etc. Giving someone else a hook into your page that isn't incentivized to keep it fast and reliable leads to an end state where publishers have no reason to clean up the experience on their own sites because that'd cost them money, and because the bad experience on every other site prevents them from being commensurately rewarded for being a good player. (E.g. adblockers affect every site equally). And the third party tech providers have no incentive to fix things for similar reasons - alternative providers out there would cause the same poor user experiences anyways, and make more money from doing so and enabling them to sell to publishers better. If we cannot rely on principled actions from publishers or tech providers, how does the experience of the web get better enough broadly?

AMP to me is an answer to that - maybe not the best answer, but the most viable one I've seen so far. It allows for direct control of what is/isn't possible, and if it gains traction may have enough clout to push for some of those better experiences that aren't arising naturally.

The other possible answers I see don't seem to be working better. Relying on regulation seems destined to failure; user experience is too messy to craft rules around, and nobody is placed to enforce them globally. Relying on common gatekeepers seems to be failing - Google algorithm changes worked for a while to incentivize page quality, but I don't think Facebook is (or should?) making equivalent judgements about the quality of content users link to for ranking purposes, and it seems even harder to enforce in other direct-user-sharing sites like Twitter.

[Edit] Disclaimer: I work for Google, in Technical Infrastructure. I used to be in Ads, though not related to AMP.