Hacker News new | past | comments | ask | show | jobs | submit login
Despite faster broadband every year, web pages don't load any faster (datafantic.com)
196 points by robertritz on Sept 22, 2022 | hide | past | favorite | 170 comments



Not just load time, but "time to read content" has exploded. Once the webapp has downloaded and it can start doing REST like requests for the actual content, it also needs to start loading pop-ups and the "continue reading"-button, that can hide the content after it is loaded.

So once all that is done, the user needs to click away cookie consent banner, newsletter sign-up and the continue reading button. And only now can we stop the clock on "time to read content".

This is a big reason why I read comments first. I click and get straight to content.

EDIT: I just realized that the "time to ..."-moniker works really bad in my phrasing here. Maybe "time to start reading" would have been better.


'Reader View' plugins for Chrome [1], and native for Safari help me a lot with this, cut out all the fat and you're left with only the meat.

Doesn't help with load times though, it would be an interesting exercise for such a plugin to only fetch the content, a la Lynx back in the day.

[1] https://add0n.com/chrome-reader-view.html


NoScript gives you a 90s style web experience. It's vastly superior to what passes for normal these days and blows away AMP pages on page load performance.


I was a huge fan of NoScript when it first came out and depended on it extensively until FireFox changed something on their backend and it broke NoScript. Then NoScript released an updated version of the extension and honestly I had a terrible time trying to figure out how to use it.

IIRC there was some kind of grid format used that was entirely opaque to me; yet the developer must have thought was an improvement over the previous "allow X.domain.com temporarily" vs "allow X.domain.com permanently." that I was used to.

I should give it another try, maybe it's not as obscure as it once was.

EDIT: I've just reinstalled it, and it is much more intuitive then it was before. Thank-you for reminded me about it.


And for the most egregious cases of broken design, which are sadly regular, you need to disable styling too.


Yup, many sites just read faster without the cruft.

For me, everything has continued to get faster for the past 30 years. Better modems, service, dsl, cable. 15 years ago, installed button on browser at work to turn off scripting (all or nothing). Used until NoScript came out.

Most news sites, NYTimes, WPost, CNN, even HN - you don't even need scripting to read the text, and it loads like lightning. I don't even bother with an add blocker these days. Want to see pics? Tweak the pic link yourself, or google the article title. Worth it, because it's so much faster.

On HN, I finally got a log in and enabled scripting for ycombinator.com - it's usually always fast anyway.

Example: to follow the war in Ukraine at

https://www.scribblemaps.com/maps/view/The-War-in-Ukraine/09...

- I just enable "scribblemaps.com". Don't need "azure.com", "google-analytics.com", or "visualstudio.com".

Most sites I leave default, no scripting at all. If I really want to see missing content, I might try enabling some, or even all, if I trust the site. Most of the time I can read everything I want without wasting the time.


The "open all links in Reader view" option in iOS is amazing. I whitelist sites where it breaks or if I need translate, but load times are faster too.


What's the point of "continue reading"? Why not just show the full thing immediately?


What the network tab in your browser's DevTools when you click it, and you'll see.

Even if the whole text is loaded with the initial page, you'll see a request to somewhere to record that you clicked. Your engagement has been measured. This can be helpful for the site directly (which articles do people actually care about after the first paragraph) and that people are engaged enough to click for more is something they can “sell” to advertisers. A better designed site will have the “read more” button be an actual link so if you have JS disabled (or it fails to load) instead of the content reveal simply failing it falls back to a full-page round-trip so you are counted that way.

This could be done with picking up on scroll events or visibility tests on lower parts of the article, instead of asking the user to click, but those methods are less accurate for a number of reasons (people with big screens, people with JS disabled or JS failed to load, …)


Once upon a time, web browsers were equipped with a STOP button. As soon as the thing you were interested in was loaded, you could press it and...everything else on the web page would just stop loading. Unfortunately, now days the thing you are interested is hiding behind mountains of cruft and usually the last thing to load.


So much effort to be able to claim that you do targeted advertising, that is yet to be proven to be effective.


It isn't as much to claim specifics about what you do wrt targetting.

It is to try prove they have engaged users who are looking at the screen rather than, for instance, opening it in a tab then closing it later without ever reading any of it.

You might link that to what adverts were shown, but only if they know that information (they may not if the advertising space is farmed out to 3rd parties which is very common).


Is it really that ineffective? Let's say I get 1 million click-throughs and 100k of them click "read more", which I send as conversions to Facebook. Won't Facebook's algorithm start targeting people similar to the 100k that "converted", making the next 1 million clicks contain more people that hit "read more"?


> Is it really that ineffective?

Maybe, maybe not. It could all be a huge cycle of cons with each part of the advertising and stalking business making crap up about what is effective and convincing the next people in the cycle. But certainly some think it is effective, or at least are hoping that it will be.

It could be like junk email: there are companies and individuals who make money from sending it. It doesn't actually matter to them if it is effective, as long as they can convince others buying their services that it is, or likely might be, effective, and they get their money whether it actually is or very much is not.


It's obviously to show more ads.


Can't be that obvious considering every reply claims a different reason.


My guess it figures out who actually wants to read the article, as opposed to accidental clicks, scrapers etc.


First reason here that I actually think is valid. Thanks!


A measuring point.


Don't web developers get full access to the state of the user's scrolling?


In theory on a list of stories this would give you the excerpt and help you scan the list for interesting pieces.

In practice if editors don’t write excerpts, this is the first paragraph, and if there are no other stories, well it’s a measurement of engagement at that point.


Originally, they saved bandwidth. High res images would take time. I believe it continues because they want you to see below at other potential articles/ads.


Makes those user engagement metrics look good?


Those buttons drive me as crazy as cookie banners seems to drive others.


More room for cramming ads, especially on mobile.


”So once all that is done, the user needs to click away cookie consent banner, newsletter sign-up and the continue reading button. And only now can we stop the clock on "time to read content".”

You forgot the paywall that you will see at this point.

Maybe there is also a customer service bot saying: ”Hey! Ask me about our special offer on 12 month subscription!”


Don't forget about the banner advertisement which is lazily loaded and shifts the content you're reading so far down you can't see it anymore.


And the banner asking you to install their PWA because you wanted to read one article on their site. Also don't forget to enable push notifications so they can tell you when they post a new update.


haha.. i am building a browser extension that does login and bypass captcha by sending the captcha image to a server and getting a response. that roundabout takes ~6 seconds. the "normal" way of handling was designed with "username<tab>password<tab><captcha send><show captcha getting banner><spinner><captcha get><captcha paste><tab><enter>

this "felt" too much work so i thought of redesigning the workflow so we ended up with <captcha send>username<wait><tab>password><wait><tab><show captcha getting banner><wait><captcha paste><tab><enter>

we made the entire process take time to accommodate the ~6 seconds of captcha which currently does not "feel" as taking that time because people are now not happy with loading and wait spinnners generally or stuff taking time, they want everything to be instant. this is just gaming the system so that we can work around technical limitations


I believe we are almost at peak GUI. The endgame here is that all these crappy GUIs that are getting worse every year will be relegated to a role of being APIs for AI agents.

Instead of clicking around and filling out forms and waiting for loading spinners all the time, we'll just tell a large language model what we want to do in English, and it will go off and screen-scrape a bunch of apps and websites, do all the clicking for us, and summarize the results in a much simpler UI designed to actually be fast and useful, vs. designed to optimize the business metrics of some company as interpreted by a gaggle of product managers.

This isn't unprecedented. Plaid screen scrapes terrible bank websites and turns them into APIs, though without AI. Google Duplex uses AI to turn restaurant phone numbers into an API for making reservations. DeepMind's Sparrow[1], just announced today, answers factual questions posed in plain English by performing Google searches and summarizing the results. But it's going to be a revolution when it becomes much more general and able to take actions rather than just summarize information. It isn't far off! https://adept.ai is pretty much exactly what I'm talking about, and I expect there are a lot more people working on similar things that are still in stealth mode.

[1] https://www.deepmind.com/blog/building-safer-dialogue-agents


You mention it in your response, but this whole paradigm looks like an extension of what we have with Google Search.

And Google Search is so utterly weak. Not just because of the neutering of search options or the weird priority conflict inside Google, but just because even with litteraly all the data in the world about a specific user it doesn't seems like it can wrangle what a request actually means.

It can tell me the time in Chicago, but not what computer would actually be the best for my work. That search will only be spam, irrelevant popular results and paid reviews.

Same if I asked for a _good_ pizza recipe, it would probably not understand what that actually means for me.

The whole model of "throwing a request in the box and expecting a result" seems broken to me, I mean even between humans it doesn't work that way, why would it work with an advanced AI ?

PS: even with more back and forth, I'm imagining what we have now with customer support over chat, and while more efficient than by phone, it's definitely not the interface I want by default


I have a web app that is essentially a full OS GUI in the browser. The load time in Chrome with state restoration is almost exactly 0.3 seconds, which includes asynchronous gathering of file system artifacts and rendering display thereof.

At the same many primarily text sites struggle, such as news and social media, struggle to load in 15 seconds.

My connection measures about 920mbps down so 15 seconds is really ridiculously slow. This is certainly not a technology problem evidenced by my own app that is doing so much more is such shorter time.


You are right. It is not a technology problem. It is a problem of incentives. The people writing the software don't have the right incentives to make it pleasant to use.


Some of them do, and then we end up with social media that doesn't take 15 seconds to load.

This site, for instance.


It's not the incentives that make this site load in 15 seconds. The site just doesn't have the incentives found in the majority of sites to make it any more complex than it has to be.


Using a LLM as an agent will be comical, like a supervillain trying to explain a menial chore to a dimwitted henchman: “No, you fool, that’s not what I meant when I said bring me the head of R&D!”

Then, maybe LLMs will get more intelligent and it will be less comical, and more like having an actual slave. An agent intelligent enough to do all these things is probably intelligent enough make me queasy at the thought of being its master.


Your point about more people working on similar projects in stealth mode is likely an underappreciated notion. And thank you for introducing me to Adept; looking forward to keeping my eyes on that company's progress.


how naive, we have long since moved from peak GUIs now the game is infesting them and rearanging them around the need to serve adds


> we'll just tell a large language model what we want to do in English

Language is an imprecise tool, it has inherent ambiguity. Language is also laborious and one dimensional (stream of bits over temporal dimension). A tool such as the one you describe would be extremely frustrating to use.


If you imagine asking Siri or Google Assistant to do things for you, of course that would be incredibly frustrating; they suck. That style of HCI is a dead end for sure. However, asking a human personal assistant to do things for you wouldn't be so frustrating. Especially if they know you well. That is the kind of experience I'm talking about. Yes, I do believe it is possible in the not too distant future. Maybe 10 years or so. It won't be as good as a human assistant at first, but it will not be like the speech interfaces you're used to.


They won't go down without a fight. They want real human eyeballs.

But I wonder if there will come a point where captchas and "Not a Robot" checkboxes no longer work.


If AI can't solve the captchas, we can just hire people to do it. Services for that already exist and they are fairly cheap.


Somewhat related, but I recently discovered the Calibre "Fetch News" function. It parses the articles (similarly to archive.org I assume in that it also bypasses paywalls) and puts them into a nice EPUB format. I run it in server mode on a RPi so every morning I can just load up the Calibre web reader on my phone and read the news in pure text form.


We can wish that crappy websites didn’t get more bloated every year, but as long as they still load fast enough most people don’t know the difference or care. Everything has an opportunity cost, so once things are good enough the resources that could be spent optimizing will be spent elsewhere instead, and bloat that can be added to solve other business goals will be added.

It’s understandable to get frustrated by this, but at some point you realize it’s pointless.

This is true in many, many facets of life. Household possessions tend to expand to fill the available square footage. Cities sprawl haphazardly until commute times become unbearable. Irrigation expands until the rivers are depleted. Life expands to the limit, always.


That would only be true if every one of your customers had fast, loss free, reliable internet 100% of the time they want to access a website.

Even in a modern city this is rarely the case.

So I'm afraid the real answer is that webdev is just not mature yet.


I blame the devs before I blame the platform. Relational databases are mature enough and yet devs still find ways to create queries that time out with only a few thousand rows in their tables.


Businesses don't need to provide a perfect experience to every one of their customers. If they did, they would. Like previously said, businesses are good at satisfying customer needs as dictated by their customers' wallets.


Ironically, the worst website I have to regularly navigate is my ISP's.


See also Induced demand/traffic: building more roads/adding lanes to roads increases congestion rather than decreasing it: https://bettertransport.org.uk/sites/default/files/trunk-roa... https://en.wikipedia.org/wiki/Induced_demand


I thought about exactly this when I saw this headline. Extra bandwidth just means we can have video header images rather than a still. Here, have a few more tracking scripts.


Throughput of networks is increasing but latency doesn’t improve as much (although 5G wireless is a big improvement over 4G LTE). Also TCP slow-start limits how fast an HTTP connection can go, and most are short-lived so the connection is still ramping up when it is closed. That’s one of the supposed benefits of QUIC a.k.a. HTTP/3.

And then there is bloat, the scourge of JavaScript frameworks and what passes for front-end development nowadays.


> and then there is bloat, the scourge of JavaScript frameworks and what passes for front-end development nowadays.

It keeps getting worse.

When I do web app security assessments, I end up with a logfile of all requests/responses made during browsing a site.

The sizes of these logfiles have ballooned over the past few years, even controlling for site complexity.

Many megabytes of JS shit, images, etc being loaded and often without being cached properly (so they get reloaded every time).

A lot of it is first party framework bloat (webdev active choices), but a lot is third party bloat - all the adtech and other garbage that gets loaded every time (also without cacheing) for analytics and tracking.


Yes, and it's not as if tools like Google's Lighthouse/PageSpeedInsights or Mozilla's Firefox Profiler haven't been available for years.

Economists and lawmakers have determined that the economic benefits of personalization accrue to the ad middlemen like Google, not to the publishers who have to encumber their sites with all the surveillance beacons, but the reality of the market is publishers have no leverage. That said, most of those beacons are set with the async/defer attribute and should not have a measurable on page load speed.


> but a lot is third party bloat - all the adtech and other garbage that gets loaded every time (also without cacheing) for analytics and tracking.

This is also amusing from a change management process at large organizations: want to tweak an Apache setting? Spend a month getting CAB approval and wait for a deployment window.

Want to inject unreviewed JavaScript onto every page in the domain? Login to Adobe…


On mobile latency has constantly improved. GPRS/EDGE was often +100ms ping --> 3G 400-50ms depending on the day --> 4G/LTE 50-30ms and now I'm often getting sub-20ms ping on 5G connections.


Yes, moving from voice-centric to IP-centric network technology has helped, and 5G paid laudable attention to latency. Their target for 5G is actually 1ms, but of course backhaul will dominate that.


I had heard the 1 ms number also and did some research some time ago. As far as I understood the 1 ms is for specialised low latency connections and devices not for the every day browsing.

Here are two sources which I found useful at that time https://broadbandlibrary.com/5g-low-latency-requirements/ https://www.linkedin.com/pulse/we-need-talk-low-latency-dean...


Yes, I subscribe to Dean Bubley and he is a very useful corrective to the telco boosterism on things like overselling 5G, network slicing, the dumpster fire that is RCS and so on.

Still, it's important that latency is top of mind for the designers of 5G, as it gets short shrift far too often.


1ms only to the tower.


Yes, backhaul (the connection from the tower to the Internet via the carrier's central facilities) dominates, as well as queueing latency for packets waiting to be delivered to phones, since traffic is overwhelmingly downloads.


Desktop bandwidth is improving over time, but as I understand HTTP Archive is still using a 5 Mbps cable connection.

From their FAQ/changelog [1]:

> 19 Mar 2013: The default connection speed was increased from DSL (1.5 mbps) to Cable (5.0 mbps). This only affects IE (not iPhone).

There was another popular article on HN a while ago [2], claiming mobile websites had gotten slower since 2011. But actually HTTP Archive just started using a slower mobile connection in 2013. I wrote more about that issue with the HTTP Archive data at the time [3].

[1] https://httparchive.org/faq [2] https://www.nngroup.com/articles/the-need-for-speed/ [3] https://www.debugbear.com/blog/is-the-web-getting-slower


Regarding "4 seconds wasted" per visit: HTTP Archive also publishes real-user performance data from Google, and only 10% of desktop websites take 4 seconds or more to load. (And I think that's not the average experience but the 75th percentile.) https://httparchive.org/reports/chrome-ux-report#cruxSlowLcp

The Google data uses Largest Contentful Paint instead of Speed Index, but the two metrics ultimately try to measure the same thing. Both have pros and cons. Speed Index goes up if there are ongoing animations (e.g sliders). LCP only looks at the single largest content element.

When looking at the real-user LCP data over time, keep in mind that changes are often due to changes in the LCP definition (e.g opacity 0 elements used to count but don't any more). https://chromium.googlesource.com/chromium/src/+/master/docs...


Despite faster computers every year, my computers don't seem to run any faster, either


Software wastes any gains we get from hardware. See Jonathan Blow's talk on the subject: https://www.youtube.com/watch?v=FeAMiBKi_EM


“What Andy giveth, Bill taketh away.”


Is the quote attributed to Bill "why should I refactor code when CPUs get faster, drives get larger" an internet legend or a terribly paraphrased line said by Bill?


Computer speed is a lot like driving traffic times. The amount of time it takes is pretty fixed as it’s based on what people find acceptable which doesn’t change. With faster computers just comes more features at the same speed.


Atlanta keeps adding new lanes to highways, but the traffic jams never get any better! (There's probably better throughput though)


But software is faster to write and so in theory cheaper to buy.


It's just disheartening to see software racing to the bottom, quality-wise.


Count your pixels.


My 1920x1080 LCD monitor has LESS pixels than my CRT monitor in the 90s :)


You mean that a modern computer has to push more pixels than an old one? I don't think that's enough to explain the apparent lack of progress.


This website loads an exceptional amount of data for what it is, at least for me. On my browser it makes calls to a site called streamlitapp.com every 100 ms. It appears to be using about 100MB of bandwidth every 10 seconds from what I can see


100MB is a LOT. Do you perhaps mean 100KB?

Streamlit is the framework I used to build the app at the bottom of the article with. It does unfortunately load a decent amount of JS. However it should be non-blocking, which means it won't interfere with how quickly you can see or use the page.

It pings back to Streamlit to keep your session state alive as it's running a whole Python interpreter on the backend for each session.

The speed index for this page hovers between 1-2 seconds when I test it.


Using a wasteful app to complain about bad page design. Oh irony.


It seems to ping with about 800B for a response of about the same size every 2 seconds. So every minute that's about 25KB up and 25KB down.

I wouldn't do it like that, but to call that wasteful when many websites need 5MB of ad code before they let you see anything is a bit over the top!


> With home broadband reaching 70 Mbps globally

The source for that is some stats from speedtest.net, which I assume is calculated from the users who used their speed test? So it's probably heavily skewed towards power users who have a fast connection and want to check if they are really getting what they are paying for. Most "casual" users with shitty DSL connections are happy if "the internet" works at all and are pretty unlikely to ever use this service...


Prior topics on HN about those speed tests (eg[1]) also show ISPs prioritize them which gives a misleading representation of typical speeds.

[1] https://news.ycombinator.com/item?id=31062799


This is why Netflix started their own (fast.com), making it more difficult for ISPs to throttle NF video content (or just prioritise speedtest traffic) and blame NF for poor performance (or poor quality because it was using more highly compressed streams to deal with low throughput) because “if you run any speedtest you'll see your connection through us is fine, it must be NF being busy”.


The irony of this post is that the single heaviest resource loaded by this page is a 750kb image used only for the meta tags as a sharing image which most people consuming and downloading the page will never see.

What's baffling to me is how people love to spend seemingly infinite time playing with tech stacks and what not but then pay very little attention to basic details like what to load and how many resources do they really need.


These images don't get loaded by a browser, probably it's being used somewhere else. 750kb is way too big for that kind of image anyway.


Ah you're right. It's even dumber. It's used as a header image but it's then hidden with a display: None !important;

But I see the image inside the network tab so bandwidth is getting wasted for no reason.


I maintain that "booting a Mac, loading Chrome, loading Google Docs, and getting ready to type", takes as long as "booting DOS, starting Windows 3.1, loading Word for Windows 2.0", takes as long as "loading GEOS from floppy disk on a C64, loading geoWrite", and so on, and so forth.


If anything, it probably got slightly slower over the years.

Reminds me of that time when we switched from writing by hand (and sometimes typing on a typewriter) all kinds of forms and reports to composing them on a computer and then printing it: initial time savings were pretty huge and so, naturally, the powers that be said "well, guess We can make you fill much more paperwork than you currently are filling" and did so. In the end, the amount of paperwork increased slightly out of proportion and we're now spending slightly more time on it than we used to. A sort of a law of conservation of effort, if you will.


Try beat:

1. Power on BBC

2. Type *EDIT[ENTER]

Though obviously not as fully featured as a modern word processor, or even some editors of the time.


No, c'mon. I still remember how it took ages for my old Windows to boot up and even get to the desktop. Maybe DOS was faster without GUI but it was god damn slow at one point. And all that weird noise your PC would make while reading from the disk non-withstanding the dance with the modem. With my current Mac I'd say it takes about 15s to open Docs.


The interesting twist to me is that waking up a phone and opening the Google Docs app is the same time length or a tad faster.

We haven't progressed in speed, but versatility is theough the roof compared to 10 ~ 20 years ago.


Speaking from experience, at shipping time of a new site performance testing is done, and the developers are asked to improve performance until it is just good enough. So it doesn’t matter how big or small the site is, unless by shipping time it is already faster than desired it will only get optimized to run as fast as every other site, but no faster.


This would seem to be Myhrvold's first law in action.

https://blog.codinghorror.com/software-its-a-gas/


I got a new M2 Macbook and it's astonishing how much faster the web is. It seems a lot of the lag must just be javascript execution time and not content loading.


Don't worry web developers will come up with more ways to over-engineer a form with 2 inputs.


Idk about fast, but a broken back button is kind of a problem.


In Japan a bunch of crappy 90s looking websites at least have the courtesy to tell you that the Back button does not work and "do not use it"


That would not make me any happier.


oh it does not make me feel happier either. Its just funny that they know that its broken and dont even bother fixing it and instead just slap a message.


won't fix. works as designed. <closes ticket>


I wish my browser to save the full state of js app on every action firing which use to alter the state. No matter how much storage is needed for this approach.


You'd be better off saving a copy of the images and code and recording your UI playback!

Or just stream is as video on Youtube and let Google pay for the storage :)


Sounds like a fun way to go OOM :')


This data is not for RAM, it may be done using an HDD or even cloud. This data is not for reading but for storing only. I mean, the concept of browsing history was born when the HDDs used to have memory of a fruit fly and a price of an elephant, I really do not need headers only in my history because most of them become dead in 3-5 years. Wouldn't it great to read my 10-years old interactions with web or to save some big SPA for interacting with it later maybe when no online will be available?


https://web.archive.org/web/20220923024040/https://www.dataf...

Do you think this is including ad loads? Ad networks run a real-time auction. It takes some time to collect bids so the highest can be chosen.


OpenRTB is capped at 100ms for the auction and in practice much less than that. One of the few areas of web development or assimilated where serious attention is paid to performance.


Jevon’s paradox: “…occurs when technological progress or government policy increases the efficiency with which a resource is used (reducing the amount necessary for any one use), but the falling cost of use increases its demand, negating reductions in resource use.”

Developers will therefore always maximize resource usage as more becomes available.


Before I upgraded my macbook air 2019 to an m1 I could barely visit most "big" websites. I remember a redesign of a specific store that went from "perfectly usable albeit a bit outdated in term of design" to "10x slower, looks nicer but usability is dog shit"


Which is exactly why professional users use desktops.


in my android and linux pc, firefox will refuse to display web pages which was fully downloaded couple hours before.

ff always ask for internet connection although all needed files are in the cache.

i'm on internet diet (disable wifi for hours long) so bad behaviors are apparent

those who always-on-24/7 fiber may not notice


I've seriously always wondered exactly what the purpose of a cache for web pages in a browser is. Why is it there? It takes up many megabytes (or even GB) of space. Yet it seems to serve no purpose whatsoever: every time you navigate to that page, it always reloads it from the web server, even if you just briefly (mis-)click on a link and then click on "back". A lot of disk space could be saved by simply eliminating these caches.


Because for some files developers can set a max time it should be cached. Just open developer tools and go to the Network tab, make sure "Disable Cache" is unchecked and then reload the page. In the column "Transferred" you can see, which things are loaded from cache


Well we could start here and now by reporting load sizes/site footprint in bytes which wouldn't look out of place on hn, along with badges for cookie consent dialogs, ga usage, non-responsive design, high energy consumption flags for sites that suck the last power out of your mobile, and other non-desiderata. Or just mark a site as requiring JavaScript so we can avoid it. DDG should be doing the same.


It is possible that website loading is bottlenecked by latency and an irreducible number of round trips needed. Bandwidth is not obviously a bottleneck.


I was wondering the same thing, especially with https


It'd be interesting to know why load time hasn't improved.

In the comments I mostly see "because of js and adtech", but is there a factual analysis somewhere ? How much is due to the recent massive deployment of https and related latency ? Is it a problem of latency or bandwidth ? What type of contents is causing most of the waiting time ? Images, css, js ? Just wondering


> In the comments I mostly see "because of js and adtech", but is there a factual analysis somewhere ?

I'm not sure what sort of analysis you're looking for, but different sites have different problems. I'm not convinced that averaging them makes sense, and it's very difficult to create a reasonable metric. As soon as you start measuring some specific metric, people will optimize for it whilst still making the site unusable. Unfortunately "usable state" is too hard to quantify without it being game-able.

> How much is due to the recent massive deployment of https and related latency

Very little, you can check here [0] and see for yourself. Obviously it depends on your distance to the server you are reaching, but the added latency of HTTPS isn't really a factor when you're looking at 10s for a page to load.

> What type of contents is causing most of the waiting time ? Images, css, js ?

Lets look at CNN (only because I happen to remember that a lite version exists thanks to someone on HN). The lite[1] version loads entirely in 350ms for me. The normal version[2] with adblock on finishes loading everything after 1.43s. The normal version with adblock off, finishes loading after 20s and reflows a bunch of times as ads get loaded.

So I agree with the rest of the comments, it's "because of js and adtech".

Disclaimer: I'm in South Africa at the moment on 4g, my internet isn't the best :)

[0] https://www.httpvshttps.com/

[1] https://lite.cnn.com/en

[2] https://edition.cnn.com/


> In the comments I mostly see "because of js and adtech", but is there a factual analysis somewhere ?

I don't know about a real analysis, but it's pretty easy to see the effect in your own browser. Disable JS and see how much faster the page loads.


I put Patreon's official button on a site once and was confused at the seconds it added to the load. It's a little button!

Turns out it was hauling in 10MB of analytics scripts.


Javascript and it's consequences have been a disaster for the web.


In the past computers (incl. hard drives and CPUs) were orders of magnitude faster than the communication lines so it made sense to compress everything as hard as possible and cache that. Now I have a 10 Gbps line, a 1 Gbps network card (I don't feel like I need a faster one), a 200 Mbps SSD and the CPU often is near-100%-loaded.


Making general software faster is saving the planet, both by saving human waiting time and carbon footprint on electricity. We are not measuring on this domain enough and we should start doing so. The added bonus is that faster software/website makes better UX, and we saves time on doing "UX research" as well.


My boring html-only pages load pretty fast.


Browsing with NoScript feels pretty snappy, too


Good enough is good enough. Just like faster computers don’t make new apps any faster (even at the peak of scaling decades ago), they make sure we can write more complex apps without making them too slow, or equivalently, add more things to apps and sites if there is any performance headroom left.


>Good enough is good enough.

Oh to be a mere average computer user. I work with files that can still take some non-instant time after hitting save to complete. Conversely, it still takes some non-instant time to open said file. As long as there's such a thing as progress bars, count downs, spinning wheels, beach balls, etc, there is always room to make things faster.


I develop very complicated software for a living and as always, there are some features that will take an unreasonable amount of time. On large documents, you have customers wait 5 seconds for a regular operation (that you may need to complete dozens of times in a row).

And yet when you ask customers whether they want more features, or a faster program it's invariably features. Fix a bug or add a feature? Add a feature. Improve perf or add a feature? Add a feature.

My own tolerance for delays is tiny, but my "average users" seem to not suffer from it at all. I guess the reason is this: they know how much time something took before. They know that if this takes 10 seconds and it took them an hour to do on paper, that's quick. Meanwhile for me I'm in the IDE having a 200ms keystroke delay and I'm almost having a heart attack.


>And yet when you ask customers whether they want more features, or a faster program it's invariably features. Fix a bug or add a feature? Add a feature. Improve perf or add a feature? Add a feature.

Of course this is what they want. To the user, the damn thing should have been working when you released it. To the user, you shouldn't have to ask to have something that's broken but is meant to be a feature to be fixed. If it's not working, why is it there in the first place. Fix it. Duh. But also add new features before your competitor does and takes your users. This is such a weird excuse on discussions about a progress bar.


Go re-watch "Office Space" from the 1990s, in particular the scene where the main character is trying to save his work and shut down before the boss comes by and asks him to work over the weekend.

25 years later, progress bars are no better: they steadily go to 15%, then stop there for a while, suddenly zoom to 80%, then slowly progress to 99%, then stop there for a long time.


Writing a progress bar is basically still impossible. If you are doing a single slow thing like rendering or uploading etc then you can make a progress bar.

But if you are making something that has multiple phases and you want to use a single progress bar then that isn't goingt to progress nicely from 0 to 100 it's just impossible.

You'll either have to make an overall progress bar for the different phases, or just indicate that this is phase 4/5 and the progress of that phase is 82%. This solves the jumpy progress bar issue, but doesn't solve the underlying issue of actually showing an estimate of time remaining. You have no idea whether phase 5/5 is going to take 1 second or 1 minute.

When a progress bar stops at 99% it's just because some final task that was expected to not take very long, did. E.g. it could be deleting a file at the end of some install process, and that for some reason blocks. There is obviously no way of knowing the actual time that will take without trying it, at which point it's too late for the progress bar to adjust of course.

So: we'll have general artificial intelligence on smartwatches, before we have smooth multi-phase progress indication (because that's never).


>Writing a progress bar is basically still impossible.

So then why try it?

I would much rather see some sort of update like when you run "yum update" and it spits out 3/15, 11/15, etc. You don't have to show all of the lines scrolling, but you could do similar to a "\r" instead of a "\n" in the progress window with an update that is very intuitive. You know how many steps you must take to accomplish the user's request. I don't need to see how long each step is taking per se, but if you showed me the total number of steps and show each one ticking off would be much more useful than the typical blue bar race.


Your alternative was already attempted with Windows 98.

During startup, the console would display the modules after it loaded them. People attributed failure to load the next module as a failure of the last one visible.

This ended with mup.sys being blamed for every failure.


>During startup, the console would display the modules after it loaded them. People attributed failure to load the next module as a failure of the last one visible.

Then why didn't they print a message before loading a module? This is really simple stuff, and would immediately show the problem. This is pretty normal in printing to logfiles in software: print messages both before and after an action is taken, so if it gets stuck in the action, you see that it never succeeded though it was started.


I don't know the specifics to mup.sys you mentioned or Win98 at all, but isn't this pretty much the same for every OS/application debugging? The message can't be updated to the screen until the process has completed. I thought it typical debugging knowledge that you look at the processing after what ever the last completed message was. It's kind of common sense when you actually think about the logging process.


> There is obviously no way of knowing the actual time that will take without trying (...)

How is that obvious? Deleting a file doesn't just block for no reason. The OS (usually) or disk hardware (rarely) are the ones that decide to block it, and they have the information needed to know how long it will take.

What actually happens is that the advantages of showing a correct progress bar simply don't justify the complexity needed for it, and a decision to show a crappy incorrect progress bar is made.


Let's take another example. E.g. if you have a progress bar for doing a set of 5 git operations you don't know whether the 3rd might start some housekeeping. For some tools (such as git) it might be possible to force this automatic housekeeping off in order to make a predicable progress bar. But in others it might not be. In some tools you may be able to predict if it will happen, and in others maybe not.

Another example (from the real world this time): I make a progress bar for an iterative optimization of an design in a program. The number of iterations until the design completes can't be reliably estimated. It's not completely underterministic of course, but the complexity of making that estimation isn't just high, it's likely to be so high that it approaches the complexity of the optimization itself.


Your second paragraph is basically what I meant: The complexity is just too high. This is especially true when downloading data from the internet is involved.

But the first example, git housekeeping, depends only on information readily available locally. git could just give this information to any calling program that needs it, but my guess is that nobody thinks that progress bars are worth it.

Actually, in today's world, I'd be happy if progress bars (or even indefinite loading indicators) would even show me when the process has crashed and won't ever finish, but they'll happily show "progress" that will never finish.


>Go re-watch "Office Space" from the 1990s

I like how you assume I can't recite that movie from memory.



No website I use does take 6 seconds to load. And I have 50 Mbps downlink. Can anyone name a website that does take that long to load? Github for example does load in 4.37 seconds with cache disabled in developer tools. CNN does take 3.58 seconds.

But I'm using uBlock origin …


> But I'm using uBlock origin …

You aren't loading all the adtech webshit that makes up the majority of a page load.

Given that network wide adblock/tracker blocking saves upwards of 60% of bandwidth (for web traffic) on the average network, its pretty obvious where the problem is.


The slowdowns come from:

Latency: Part of the page loads, and then the page asks for more data. In some cases, (such as loading a page hosted on another continent,) this is bound by the speed of light.

Poor data access (database) code: Sometimes this is due to lazy or incompetent programmers, other times its due to the fact that "not instant" is "good enough."

Writing a web page to load everything very quickly in a single request is surprisingly hard, and will often break modern and easily understood design patterns.


> Latency: Part of the page loads, and then the page asks for more data. In some cases, (such as loading a page hosted on another continent,) this is bound by the speed of light.

This problem is exacerbated by the fact that web pages are just built as giant JavaScript applications for no reason. With a page pretending to be an app, the browser has to download, parse, and execute the JavaScript core before the browser can do anything. All of the resources are hidden somewhere inside the application and the browser is stuck with its thumb up its ass unable to load or do anything.

Sites using a bunch of JavaScript to "render" everything client side are causing their own stupid problems. I just built a toy React app that only displays Hello World. It's the most trivial app that isn't just a blank project. A production build of it weighs in at 143kB for just the JavaScript portion. It's also multiple resource requests just to load that crap. Even bundled into an HTML skeleton it's still 145kB of JavaScript to run before the browser can do anything else.

Served locally it takes about 20ms to load that React app and draw something on my screen. An HTML copy of Frankenstein (463kB) loaded from the same server loaded in 5ms. A plain HTML document three times the size of the toy React "app" loaded in a quarter of the time!

> Writing a web page to load everything very quickly in a single request is surprisingly hard, and will often break modern and easily understood design patterns.

I find this to be an odd take. This nearly 4,000 word CNN article[0] including graphics weighs in at 70kB. The HTML alone including a bunch of inline styling (tables, font tags, etc) weighs only 55kB. With no graphics loaded it is still a perfectly readable article. Loading the HTML of that page in my above test it still loads in 5ms and is 100% readable.

Not just that but I can navigate with the sidebars and headers. In less space than just a toy React app I've got a completely usable page that can display as close to instantly as my eyes can determine. There's nothing about "modern and easily understood design patterns" that requires hundreds of kB of JavaScript or even extra CSS. It would be trivial to replace the table and font tags with CSS in the header and likely get the whole document even smaller while keeping 100% of the functionality and navigation.

The CNN article example coincidentally shows how stupid the JavaScript bloat problem is because several of the images are not found and the 404 pages CNN is returning in their place are a megabyte.

[0] http://www.cnn.com/TECH/computing/9806/24/win98.idg/index.ht...


I wonder if it is time to explore alternative syntax parsers with a more generic API to accommodate other markup formats. At least initially this could be 1:1 with HTML but eventually could support new functions not limited by HTML itself so that the features and languages can move at separate paces.

Being able to render an enhanced markdown or JSON or YAML page in the browser without any generators would be phenomenal and resolve a lot of long-standing issues with structured data.


The title of this post is annoying: Typically we say "faster broadband", when we talk about bandwidth, not about "speed" (which would be latency). So obviously, as long as your website is not larger than your bandwidth capacity, nothing is gonna get "faster", when you upgrade your broadband bandwidth.

This is the same as saying "Despite larger pipes every year, water still doesn't reach your house any faster".


Bandwidth = data per unit of time. So for the same amount of data, faster bandwidth absolutely decreases load time.


Expanding on this point:

If a website is transferring more data to render content, or worse, before starting to display content, then bandwidth matters as it will move that data more quickly.

If a website requires multiple round trips to complete a given request, then latency will also matter, and sets an absolute minimum floor to time-to-display (TTD) regardless of bandwidth. The higher your latency, the slower that process.

In theory it's possible for an SPA (single-page application) to be more responsive despite an overall larger page weight as it can incrementally request and present additional content. In practice such pages often perform worse on time to display due to both increased total data transfer and round-trip request requirements. A lightweight HTTP/2 HTML+CSS only site can be far more performant if it's based on static pages and request/load dynamics.


Sure. Again, the basic issue is that this is not optimized for the user. It's optimized for whoever stands to make money from the pages.


You can make pages insanely fast: https://danluu.com/car-safety/ for example, but you will notice it is very simple and lacks video/ads.

This is not optimized for "engagement" or whatever proxy for "money in my pocket", however, so it's pretty rare.


Classic rebound effect. Same thing for cars.

> Contrary to popular belief, the average car is not in fact that much more fuel-efficient than older cars. Still, to this day, the average vehicle has a range of between 20 and 30 miles per gallon; a stat which was very similar in the 1920s. But, why is this? Well, cars are a whole lot bigger.


It's not cars just being bigger, they need to produce less toxic emissions too because of regulations.


I used to be bothered by this, but in reality it works like a filter. The crappier the website, the crappier the content.


Recently I've been wondering why my internet seems to be getting so slow. It then dawned on me that webpage bloat has progressed to the point that my 2015 MacBook (the small one with the rubbish processor) really struggles to load a typical webpage in a reasonable amount of time.


More bandwidth, more processing power, more browser APIs and support for shiny CSS effects:

More sites taking advantage of them at the same pace of technical development, cancelling them out.

Otherwise if we had a website from 10 years ago it is faster to load with today's connections.


HackerNews loads pretty fast, and would be one of my favorite sites even if it didn't.


On similar note: Despite faster hardware every year, laptops don't perform any better, running applications.

Usage experience with typical specs of 2022 (500G SSD and 16G RAM) is as good or bad as ones from 20 years back (say, 20G HDD and 128M RAM).


Actually curious, what do you mean exactly by "doesn't perform better" in this context? My experience doesn't go as far (10-15 years), but while I agree a whole subset of softwares don't feel much different (text editors, web browsers), in some other domains I can feel the difference (video games, programing IDEs and the tools they offer). Where I imagine I agree is if a computer hardware becomes 10x more performant, there is not a related 10x improvement performance on softwares


I started software professionally in 2008 and I honestly can't tell a difference between literally anything in this time period. I was using Netbeans and doing Java EE / JSF and the feedback loop feels about the same as it does today. I do remember going from Java EE to Play Framework and it being a little faster feedback loop. Sublime Text still works about the same as it did on Leopard. The only noticeable speed bump I've felt in this time period was going to an M1 from 2019 Intel MacbookPro. I think the reason is the 2019 Intel Macbook pro is one of the slowest computers to ever be released and while throttled (99% of the time) it was slower than my 2015 Macbook Pro and maybe even my 2013. I'm sure the M1 will be eaten up with React and Electron apps soon enough.


My broadband speed hasn't changed since I moved into my house 9 years ago. Just saying.


do things feel slower since then?


I have ad blocking everywhere so, no. About the same.


Since I started using the Adguard dns - it is surprising how much faster everything is. But still there is too much cruft in the most common sites.

A startup could probably nuke reddit in a month if they just concentrate on performance and usability.


Because that represents the patience of the typical user. For the most part, apps/sites/whatever have always hovered around such a limit. It takes that long not because of tech, but because of people.


Ironically this page loaded for me in about 500ms on my 1GB fiber connection.


Your network packets are making a round trip between your computer and the nearest server the site is on, so there's always going to be a hard limit on site speed based on distance. That has to happen a few times for DNS, OPTIONS, a GET for the HTML, maybe more for any blocking resources. Add on parsing and rendering and it's probably getting close to impossible to get much under 100ms for for websites these days. 5 times that isn't great but it does seem a little unreasonable to complain.


To be clear, I wasn't complaining about the speed. 1/2 a second is pretty quick when the average is 6 seconds.


Its almost the pattern that the articles complaining about bloat contribute about bloat themselves. Projection.


And bizarrely, even though it's a simple blog post it's almost 15MB.


>>> Despite faster broadband every year, web pages don't load any faster

I would rephrase it:

Because faster broadband every year, web pages don't load any faster


Sure they do. Just disable ads, and all 3rd party JS.


basically Jevons' paradox


1kb.club would like a word.


"Grove giveth, Gates taketh away"




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: