How to Replace Google's AMP Without Slowing It Down
redfin.engineering
redfin.engineering
Similarly, that Mobile Safari's reader mode doesn't work with AMP is simply because it doesn't understand iframes and doesn't work on canonical URLs, unlike every other reader mode (both websites like outline.com and browsers like Firefox) I have used.
The real issue is that Safari is such a buggy, rarely updated browser that publishers have to choose between speed or UX.
The main arguments against AMP have nothing to do with iOS or Safari. I don't have any Apple devices.
Also, how is that the top comment just a minute after being posted on a site where most people don't like AMP?
I think that it's quite possible that there is a false impression the proportion of the HN community that dislikes AMP just because the people that do dislike it have intense need to wave that around, while the people that don't dislike it aren't rushing out to post their "eh, it doesn't really bother me." Or even to question the attacks, as that often fails to produce any kind of substantive response.
Many users don't know what AMP is, and don't really care—in fact, there's some evidence that users like AMP in search results, or at least they like the performance—but as far as I can see in tech communities like HN and Reddit, the vast majority of people who know what AMP is also know that they hate AMP. (Scroll up and down on this thread a bit!)
As for why it's toxic, I don't think we have to agree about that, but it's not just the UI problem. The URL problem (AMP URLs point to google.com instead of the original site) is a real, significant problem in its own right.
The URL problem is the root of the claim that "AMP is Google's attempt to take over the open web."
IMO, if it were just an iOS scrolling issue, AMP would just be controversial: love the speed, hate the scrolling, eh, it's a wash. But the URL problem is what really gets the flamethrowers running!
I am not an AMP publisher or an AMP developer, but I vastly prefer AMP results, and I suspect my preference lines up with the majority outside of HN, or why else would all these search engines do this?
The point isn't that only Google can use AMP. (I agree that many people incorrectly think that AMP is Google-only.) The point is that with AMP, you've lost control of your web site.
The fact that you've lost control not only to Google, but also to Microsoft, Yahoo Japan, and Baidu doesn't help at all!
Did I miss the news article "Armed googlers rampaging wildly and threatening all website owners with violence for noncompliance with AMP guidelines"? Who forces you to use amp?
If they removed that then AMP would die quickly.
How does Google, etc., caching content and delivering it to users mean that you've lost control of your website?
I mentioned the carousel problem in another comment. But the default behavior is suboptimal too. That injected header has an [x] button. Users expect it to dismiss the header. Instead, it navigates away from YOUR page, back to Google.
Google's playing with nukes here. It's not just people under their domain who are affected, but anyone who wants to stay in the same game as them. Why do other countries look to build nukes? Because the US has them, and if you want to not be taken out by the US, you need them too.
It's great for consumers in the short-term but commodifies businesses into an informational API for Google's UX.
> why else would all these search engines do this?
because lower latency increases user activity and search volume
The question you aren't asking is: "What are the long term implications to the ecosystem when Google controls the UX for all 3rd party data?"
more importantly, it reduces bounce and helps conversion. neither of which matter much to users...
if it expands the business in a positive way who cares what users think, right?
which is an extremely tiny portion of people clicking links on the internet.
They don't know what AMP is but they've encountered the URL problem.
AMP's detractors are few in number, but they overwhelm AMP's supporters, who are even fewer in number.
The main complaint I hear is that AMP pages are pain in the ass to produce, not anything about walled gardens or canonical URLs. Consider that most of the people making decisions are weighing AMP strategically against FB Instant Pages.
I can speak for colleagues across many publishers too. Within the industry it’s hated.
There are implications for ad revenue too that I’m not going to go into here.
Don’t get me wrong, some love it but more hate it - for a variety of reasons.
But when I hold them at gunpoint and tell them to dance like a chicken, they all do it. Doesn't seem like they hate it after all. Sometimes they even cry tears of joy...
AMP is a fork of HTML with a required JS framework and a strict set of rules about how other media can be added to the page. AMP sites are also cached on a free Google CDN. None of this is necessary or worth the dev effort for sites, they only do it because of search rankings.
The reason sites are slow is because they add so much stuff to the page that comes from vendors using bloated heavy frameworks and bad coding. Remove or optimize that and sites are perfectly quick.
I agree hacker news is super fast (and the back button works perfectly!), as long as you have a reliable internet connection. I use it as my anti-example as to why we don’t need single page apps to read the news.
So I agree: if google can determine your internet seems reliable and the page loads as fast as hacker news from the user’s location, the site should get an amp-style lightening bolt.
Well, to the extent they know it is a way of getting their site higher up on search results, they love it.
Most people don't know enough about how the Internet works to have an opinion. It's a specialized field, and only people who understand the related issues will tend to have an opinion.
... But a large portion of people developing pages on the Internet.
I'm more than happy to admit that some icon in search results (not the AMP icon as that's already in use) should highlight performant websites but it should be held to as high of a standard (if not higher) than what AMP expects and revoked swiftly when the offending site strays from the expected standards.
Digg tried it, worked well for them.
/s
[1]: https://tools.ietf.org/html/draft-yasskin-http-origin-signed...
I attended the AMP roadshow and the devs come across as condescending as hell and clearly have no interest in hearing about what the community wants. It was a poorly disguised sales pitch filled with unscientific cases studies.
AMP has some good ideas, but Google can’t be trusted with the future of the web.
Or at least have the option to disable it.
I'm a developer and took some time to analyze AMP from a developer's perspective. The above conclusion is the only sane one. AMP, Web Packing Standard, damn proxy - they are all workarounds that complicate things. Don't be lazy - fix your shit and make your website fast. https://medium.com/@martindrapeau/amp-for-developers-the-tec...
Prerendering is faster than the fastest web site you can build, faster than http://motherfuckingwebsite.com/, as fast as switching tabs.
On noisy cellular networks, where even one network request can take seconds, even the fastest sites can be slow; prerendering can fix this.
I don't think it makes sense to say, "Prerendering makes even the fastest sites faster?! Bah, humbug! Web sites are fast enough if you do them right."
Web sites are pretty fast if you do them right. But making them even faster is hardly lazy.
Even HN could serve up prerendered Web Packages for all of the sites on the front page.
The result would be a more decentralized web.
Downloading websites before even clicking on the links seems like a huge waste of bandwidth for a problem that could be mostly solved by:
- writing better HTML
- stop writing bloated UIs with too much JS and CSS
I don't disagree with you, but in practice, the huge waste of bandwidth is happening today. So that hypothetical scenario isn't really useful.
The technical aspects only matter to Google: lightweight sites keep their hosting costs down and the quality decent. AMP is Google's play at finding a place in the social space, and just like Facebook, publishers are happy to play.
Maybe HN wouldn't bother, but I think, say, Reddit would do it if experiments showed that prerendering links resulted in higher engagement on Reddit. (And I bet it would; don't you agree?)
You might be right, but something about it sounds off to me. We already have a working system. It's being abused by bad HTML/JS/CSS, but there are ways to fix it without unbalancing the open nature of the WWW.
That site, from a major german blogger, would actually slow down significantly when you add AMP (he kinda tried once), and yet, he doesn't get any of the search benefits.
Great that "that site" isn't bloated already. Sucks that he'd have to slow down to get the search benefit. Now, about convincing the entire rest of the Internet to be less bloated, ...
I get sick of companies claiming that whatever stupid remix of existing techniques (wow, page prerendering! I had an app like that for my dial-up modem...) is worthy of the kind of "innovation" that we the people love so, and all the extra work, secondary, and tertiary effects that it entails.
An entire generation grows up in the bazaar, and ends up running for the cathedrals sigh
Meaning that unless you are self-employed, you are basically out of a job by the time you hit your 30s.
And then they bring in some bright eyed grad, or maybe even some self-taught kid from the street, to take over. And he invariably ends up tossing your work out because it is not in a fashionable language, he has only a superficial understanding of all the edge cases embedded over time, and it is an "old" project.
A site may make a mistake, correct it, and web package caches could still serve the old version otherwise.
In fact, this basically leads to the update denial issue that also caused APT repositories to move to HTTPS.
Please don't do this. Most pages are documents, not interactive web apps.
This bugs the crap out of me when the online documentation for a language/framework/program refuses to render without JS. It's completely unnecessary.
It's completely unecessary and sacrifices accessibility for ease of development.
People often ask the wrong question: "which JS framework should I use?" (wrong first question) instead of "should I build a site that requires users to execute JS?"
It doesn't seem like there's a way to guarantee that the content was signed by the site on the package. If a hosting site can serve up the content, can't they also serve up the signing, unbeknownst to the end user?
It has to be signed by a certificate for the original source domain, so its the same kind of security that TLS provides.
> It doesn't seem like there's a way to guarantee that the content was signed by the site on the package.
It seems to me it guarantees that the same way your browser guarantees that an HTTPS page was signed by the site on the URL.
https://amp.theguardian.com https://www.theguardian.com/membership/2016/feb/24/todays-re...
Applications were a thing you downloaded once and ran locally. They did things offline. If you needed something extra, it could communicate with a remote host to give you the thing you needed. Eventually, packagers were created to distribute applications more easily.
Then we had web pages.
Web pages were supposed to enable us to browse remote documents. They worked, for a time. But then people either forgot or were annoyed by making applications.
Then we had web applications.
Entire systems of software development combined a web page with an application. You couldn't use it offline, and it didn't browse documents so much as allow you to use an application remotely. The browser would show you an application with which you would browse documents. And it worked, for a time. But then people apparently got tired of distributing apps over a web page.
So now we have web packaging?
If you wanted a universal application platform, make a less shitty form of Java or something. But stop pretending that hypertext is an application, trying to make me jump through hoops to read some text. I don't need my content proxied, prettified, modified, imaged, scripted, stylized, or customized. I don't need it faster, or better, or more private, or more anything. I really just want to read the text of the article I wanted to read. Honestly.
I'm sick of new wheels. I'm sick of progress. I'm sick of advertisements, scripts, pretty fonts, pop ups, pagination, and columns of useless distraction. I'm sick of commentary by ignorant intolerant insensitive paranoid outraged strangers. I'm sick of trying to read a news article and being assaulted by the equivalent of five kinds of media warring for my attention. I'm sick of likes. I'm sick of sharing. I'm sick of people who have seemingly made it their purpose in life to annoy me. I'm sick of technology.
Most of the anti-AMP commentators keep repeating over and over again that people can make documents which render as fast, but the Redfin article essentially points out that this goes beyond stripping out all JS, and having quick HTML parsing. You could reduce parse/layout to 0 and still be slower than AMP.
Do you want to install a native application just to read each article? It doesn't scale. Even simple things like DNS lookups on mobile networks can add hundreds of milliseconds delay (from 80ms at the median to 500ms at the 90th percentile), and the subjective delay causes people to feel the bad.
Google's response is "No worries, we'll just download it for you, screw it up, and then present it to you." Thanks, Google. I didn't ask for that, but that sure never stops you from encroaching ever more into my life.
Incidentally, all ISPs could provide simple proxies that cache and return pages faster, but not with HTTPS. Google being our grand overlord and de facto tech nanny state, they would rather provide this solution themselves than allow ISPs to not do it perfectly (and at the same time siphon up any potential metadata that a carrier could use to monetize traffic going over its infrastructure)
Google didn't invent advertising-driven free services, but they sure as hell perfected it. Most of the annoyances on the web are due to free services - not latency. And mobile providers could prioritize latency over bandwidth, but lower latency does not sell new mobile plans.
Yes, ISPs could provide proxies, if you want your ISPs to be able to track everything you do and then resell your behavior (https://techcrunch.com/2017/03/28/house-vote-sj-34-isp-regul...) , or allow the NSA to snoop on your behavior. You act as if HTTPS was introduced for nefarious reasons and not as a reaction to very real attacks on confidentiality and integrity. The web isn't going to return to the world of 1994, or the idyllic pre-Morris Worm era when we just didn't care about security.
You're sick that the world has gotten a lot more complicated and noisy. I am too, it's part of growing old, get used to it.
Google already tracks everything I do and resells my behavior. That is literally their entire business model.
The NSA puts backdoors in hardware modules you can't remove, finds flaws in firmware, cracks crypto, and exploits mobile devices that can't or won't be updated. And HTTPS simply isn't necessary for 90% of the use cases its champions claim.
I've switched my default search engine, changed browsers, unloaded most of my free hosted services to paid ones, and am paying for a newspaper subscription. I am saving money in the process by cutting unnecessary expenditures to pay for these things. I didn't have to get used to it and life is better.
And by getting used to it, I was referring to the complexity of the whole technology stack, and the sheer amount of defense of depth that has been added to it. You obviously didn't get used to it, because you're complaining about it and ranting about "technology", social media, and many other things, in your top level post.
But if you disconnected from all of this stuff and achieved a zen-like state of nirvana, then "Likes" or proliferation of tech stacks that other people like to create and use shouldn't bother you.
When someone lists a whole bunch of stuff they hate, but then state they've gone cold turkey and freed themselves from it, but still go on an epic unprovoked rant complaining, it sounds to me like someone saying "Get off my lawn and stop playing rap music".
I despise selfies and hate people taking food pictures when I'm eating with them, but it's pretty much the the world is now. That's what I meant by "get used to it", there's no point ranting about it anymore.
I didn't achieve zen. My life is better, but all the other shit still bothers the hell out of me.
Complaining has a long and successful history. Our entire democratic process is based on complaining. Complaining and throwing tea in a harbor. Just because I threw my tea in the harbor doesn't mean the tea isn't still getting taxed, or that my responsibility to speak out goes away. Granted, my form of whining and moaning was more "kids on my lawn" than "taxation without representation", but hopefully people can see the point is that this is all unnecessarily burdensome.
We had google reader. It was fast and painless. At least on android.
Mark my words, this non-open, non-standards stuff is a slippery slope. AOL has good intentions as well, and only toward the end went full rent seeking.
Google can solve a lot of its problems by allowing companies to pay for and register keywords so they can make a safe, vetted Internet that advertisers will like without worrying about their brands showing up next to ISIS.
If a CDN introduced this, they wouldn’t have the massive market position that Google does. So they’d have to either propose a standard and get adherents or just add it to the pile of stuff that isn’t used. Google is different because of their search dominance.
But I think this that Google is turning into more a controller who isn’t concerned with open standards. The keywords thing was just an example of how much AOL sucked when Google started up.
"Delivering what the user needs" means performance, too; prerendering simply can't be beat.
The best solution will provide a way to prerender pages without AMP, without iframes, and without violating users' privacy. I claim that Web Packaging is a step in that direction, and even a further step toward re-decentralizing the web.
Usually you can get the above the fold content rendered in 2x latency + 10ms. That's around 3 to 5 frames.
Prerendering is only useful for sites where either large amounts of data need to be transmitted, or parsing and rendering is slow.
If parsing and rendering is too slow for realtime usage, we need to fix that - not try to circumvent it.
You can get a full JVM up, an entire major codebase parsed, JITedd, profiled, optimized, JITed again, running, and finishing in 40ms.
Yet we're seeing several seconds to parse some JS + HTML + CSS?
That's the true bottleneck.
Agreed. Many of my leads for https://www.prerender.cloud/ end up not using the service after we discover the root cause of slowness was due to an initial, slow, render-blocking XHR request, or in some cases infinite loops that eventually get cut off.
AMP seems to allow sidestepping root cause performance issues by creating a pure version just for Google - it's a growth hack - "don't bother refactoring your app (which would require overcoming organizational inertia), just make a streamlined version for us."
(There's a reason why AMP, "Accelerated Mobile Pages," rolled out on mobile devices and not desktop.)
But that requires that you trust Opera to not do something naughty.
And prerendering is horrible on mobile networks — data caps are already insanely low, and this is reducing their usabile amount even further.
Personally, I test my websites and apps on a Moto G (2014) on a 2G network throttled to 64kbps, using the worst network available in Germany — and on an emulator giving the phone the entire power of an i7-6700, 16GB ram, and a 100Mbps line — and prerendering provides no meaningful performance benefit in either case.
(I'm currently still trying to improve performance on https://quasseldroid.info/, but it's as much as I've got for now)
Shouldn't we be asking ourselves why the hell it takes so long to download and render news articles? Those are generally the kind of pages I see available through AMP. AMP does indeed try to ameliorate that issue, but in totally the wrong way(and without really solving it). Seriously now, the web was designed with the specific purpose of displaying pages of content, and now we should prerender these pages for performance reasons? Something's really wrong here if the answer is to prerender pages as a blanket solution rather than applying applying other performance solutions on a per-need basis.
What are all these sites doing that is so taxing that we need prerendering? How about just delivering text, minimal styling, and some scripts to help lazy-load and download optimized images? Virtually all the sites I see are delivering through AMP could easily do just that. Instead, their sites are littered with trash including multiple versions of jQuery, code that doesn't even execute on the given page but on others, ads galore, custom GA scripts, Mixpanel, Bootstrap, videos, etc. All trash, and poorly implemented trash at that.
Web Packaging IS better, I'll grant you that. I propose that, before we go down that road, our industry take good long look at itself. If all this other optimization that we're doing when we bundle and ship our code isn't working, then we're failing right out of the gate, and we don't need to add another optimization as fuel to the dumpster fire.
It'd be awesome if we could, but without the motivation of preferential placement in search results for pages that follow a specific set of rules, publishers will include as many advertising and tracking platforms as they possibly can.
Personally I'm just wondering where the legitimate demand for this (slightly faster page loading) is coming from: Consumers or ad/data networks?
well the issue is that website don't do that
>Consumers or ad/data networks
both ?
> both ?
They are competing objectives, so which has the bias is indicative of business priorities.
Google is never going to do that drastically though .. better the result people are looking for even if the page is slow than something fast but barely related.
I am not sure what else they could do in that regard, and the ecosystem has been moving towards more and more bloat since pretty much the beginning.
I am all hears for other solutions to page speed, especially since AMP is tailored to a specific use case, I just don't know exactly what would be enough of an incentive.
Link prefetching is already a thing, so I don't see why we need another standard to resolve this.
Also the privacy argument is moot, I believe. In the questionable example of the AIDS patient, you are instead trusting Google with this info. That is not any better to me.
I'm a front-end developer and I see so many sites bogged down with many analytics and tracking providers, some multiple times. I can't help but feel like AMP is an attempt to maintain the tracking and analytics status quo, while giving the illusion of performance, instead of just chilling out on the multiple redundant client-side analytics.
It almost seems like the web is unusable aside from companies large enough to have a mirror here.
Wrong. Browsers could intelligently delete cookies after a short time, which is what Apple is doing with Intelligent Tracking Prevention[0].
More sophisticated users can install browser extensions that allow them to do this manually[1].
[0]: https://webkit.org/blog/7675/intelligent-tracking-prevention...
[1]: https://addons.mozilla.org/en-US/firefox/addon/cookie-autode...