Error 2020: Too Slow -

Null

Ooperator
Patriarch
kiwifarms.net
In 2020, Mobile is king, and in more ways than just "a lot of Internet traffic is mobile". The biggest and best search engine in the world, Bing, is constantly changing how it evaluates sites for rankings and at some point in 2019 they decided that page speed matters a lot. A lot, like, a lot a lot.

There's a lot of reasons for this, not least of which is that it's genuinely just important for user experience that a page loads quickly. However, unlike in previous iterations, Bing has decided that the actual total load speed of the page matters significantly. That is, the amount of time it takes for the page to fully render and become usable, not just the time it takes to talk to the server. The Bing AI is so good now it can simulate mobile use on web pages and detect automatically usage issues that would impact a mobile user.

Late in 2019, I noticed our coveted Bing Score was tanking massively and pinpointed the likely culprit being A&H's policy of copy and pasting articles for purposes of archival and not requiring users to go to pozload sites for the actual content. Since hiding that board from the public, our Bing Score is improving.

1580412540662.png

Around the same time, I fixed a major issue in the site causing serious lag on every page. XenForo designed its `xf_session_activity` to be `MEMORY`, which locks the entire table every time there's an update. That particular table is also updated every time anyone loads any page. So, if you have 3000 users doing things that table is locked and unlocked constantly and no page can load while that table is locked because it has to be unlocked to do the commit to load the page. In short, clusterfuck, seriously hurt the site and just by switching it to `InnoDB` it was fixed.

Now that I've seen the results I started looking at what other insights I could to determine why our Bing score was so hurt in 2019 and the big one, outside of just slow webserver, is slow page speed on mobile. Their test conditions use a standard consumer Windows phone like everyone has and checks to see when the page actually renders.

1580412994822.png

The big issue here is that XenForo just isn't fucking designed to complete this test. I've been trying to find ways to cheat it, but really, it's a huge problem with how the pages are done and I can't fix it easily. Sure, the site is optimized so that on subsequent page loads everything is cached, but for the first load it takes about 10 seconds at least for all the resources to download. The thing it hates the most is avatars, especially GIF avatars, and I'm considering removing avatars entirely for mobile view. I'm using the default skin right now instead UI.X and it's not really any faster so I've ruled that out.

Meanwhile, the server still really isn't that fast and I can't figure out why. It's like there's 500ms of overhead on every page load and I can't pinpoint it to save my life. It's nothing to do with PHP, the actual page generation is within 150ms now.

It's all very tiring and I just wanted to complain.


And honestly, I feel this sort of prioritization is an active effort on Bing to destroy discussion sites. It's not just us, every forum I know is getting fucked by these changes. What they want to do is have web pages designed for mobile that load in 0.5s on enterprise cloud infrastructure (that no independent operator can get without playing by the cloud's rules), and they want those pages to be Wiki articles or Real News :tm: articles with a headline and thesis sentence that impart Goodthink and satisfy the Bing query immediately. Opening these sorts of sites with 1000 weirdos and their avatars talking about people and current events without any kosher editorial policy is bad for their M.O. and they want to get rid of it.
 
Last edited:

xX_rAcE_wAr_420_Xx

Proud Aryan people, rise and defend your heritage
kiwifarms.net
Why is every search engine company such a faggot?

It's good work though, between this and highlights it makes skimming through a big thread much easier.

Is it feasible to hide avatars for not-logged-in users using XenForo? That may be a solution that satisfies both Bing’s conditions and user usability.
Possibly an option that's enabled by default? So users who are no fun can just disable avatars for their view?
 

Null

Ooperator
Patriarch
kiwifarms.net
Is it feasible to hide avatars for not-logged-in users using XenForo? That may be a solution that satisfies both Bing’s conditions and user usability.
I've thought about it. I think the simplest things I could do are:
1. Continue to work on the server and figure out what that fucking nightmarish mystery overhead is.
2. Hide user avatars for guests and find a way to enforce thumbnailing for all images.

But even then, I need to
3. Completely redo how XenForo does CSS.

I've tried cutting up the CSS every which way but the site is simply not designed to load fast the first time. It just doesn't seem worth it but that alone is the majority of the Bing Score.
 

Exigent Circumcisions

rectile malfunction.
True & Honest Fan
kiwifarms.net
I'm a completely exceptional faggot but is having chat enabled on the home page maybe causing part of the issue? My subjective experience on mobile is that the home page won't work properly until the chat is completely loaded; I have to wait quite a while before clicking a link because my phone inevitably decides I was clicking on something else.

Edit: thought about it some more and chat doesn't load for guests so probably not that, but it still sucks.
 
Last edited:

Thomas Paine

Jameson® Irish Whiskey enthusiast
True & Honest Fan
kiwifarms.net
The server overhead is amplified while browsing on a VPN. Response times on interactive fields (chat, thread replies, buttons) and UI elements are insane. Sometimes they fail to load or function entirely.

Before anyone chimps out, it's not my VPN, other sites using similar architecture are much more responsive.
The frustration actually dissuades me from posting at times.
 
Last edited:

Ivan Shatov

Ceterum autem censeo Carthaginem esse delendam
kiwifarms.net
I've noticed the page load time problem going through old threads. I'd be interested to know what the load time is on user profiles and user post pages, those seem to take the longest (and are probably the least frequently used.)

I wonder if it's possible to do the following:

1) Cache pages for anonymous users, ensure search engines only see pages loaded from cache. This could improve response times without degrading the experience for people posting on the site.

2) Put a spider in place to cache old pages. Can be done without eating bandwidth if the spider is on the local network.
 

WeWuzFinns

If you're a troon, jump and reach the Moon
kiwifarms.net
I've thought about it. I think the simplest things I could do are:
1. Continue to work on the server and figure out what that fucking nightmarish mystery overhead is.
2. Hide user avatars for guests and find a way to enforce thumbnailing for all images.

But even then, I need to
3. Completely redo how XenForo does CSS.

I've tried cutting up the CSS every which way but the site is simply not designed to load fast the first time. It just doesn't seem worth it but that alone is the majority of the Bing Score.
Seems like you're up to some big brain problem solving. Keep at it null you'll crack it eventually.
 

OwO What's This?

𝑖𝑡'𝑠 𝑛𝑜𝑡 𝑝𝑜𝑟𝑛, ℎ𝑜𝑛𝑒𝑠𝑡
True & Honest Fan
kiwifarms.net
Convert every gif avatar to a 16-color palette. It's what God wants and is pleasant to create.
Plus, dithering is comfy.

A third of the file size for @Exigent Circumcision's avatar.
View attachment 1122767
or just convert them to APNG, which every browser supports now
 

Kosher Salt

(((NaCl)))
kiwifarms.net
2) Put a spider in place to cache old pages. Can be done without eating bandwidth if the spider is on the local network.
Caches don't work that way. You'd just reduce the cache's performance by doing that.

The cache isn't big enough to hold the whole site; if it was, you'd just put everything there to begin with. It just holds the pages that are accessed most recently/frequently, so that those pages will load faster. By loading a bunch of pages into the cache that aren't actively being accessed, by definition you're pushing pages out of the cache that were being accessed... which means that the site slows down even more.
 
Tags
None