• OzzModz is no longer taking registrations. All registrations are being redirected to Snog's Site
    All addons and support is available there now.

Speed Up Active Forum with HTTPS and Avatars Everywhere

finding_peace

New member
We have a mid-sized forum here:

Psychopath Free | Narcissist, Sociopath, and Psychopath Abuse Recovery

Speed test:

WebPagetest Test Result - Dulles : [url]www.psy...free.com/forum.php - 09/05/14 01:25:48[/url]

For the past few weeks, I've been playing around with the debugger and doing query optimizations. I've improved load time a bit (7sec to 5sec), but it's still not where I'd like it to be. My goal is 1.5sec, and I'll be more than happy to donate $50 if we can reach that goal.

Some things to note:

1. Our first byte time is going to be slower than most because we use HTTPS. The initial handshake adds 150-300ms to the first byte time. For security reasons, the site needs to remain 100% on HTTPS. So disabling it is not an option, but I'm open to any suggestions on speeding up the handshake.

2. We have avatars everywhere. Forum home, sidebar, widgets, forum display, memberinfo (for tags, likes, and quotes notifications), etc. I've managed to add all of these without any queries, but I'm still not sure if they're being cached properly, or loaded as fast as they could be. Avatars on our site are div background images, not img src.

3. [MENTION=3]Max Taxable[/MENTION]'s post here got our first byte time from F to C! So that was awesome. Any other tips like this would be great: Quick and easy way to leverage browser caching of static assets.

4. Google Ads & the Facebook Page frame seem to cause a lot of the latency. Is there any way to load the entire page without requiring these to finish? I use async for Google Ads, but I'm just wondering if there might be some other tricks to prevent it from adding to the load.

5. Google Page Speed complains about render-blocking CSS and Javascript, but it all seems like default vBulletin design. Is there anything I can do to optimize this?

6. Our server load average can be seen on the sidebar. Typically runs around 1-15%

Thanks!
 
Last edited:
Hey [MENTION=1]Ozzy47[/MENTION] thanks for the quick reply! Can your first .htaccess code be added in conjunction with the mod_expires code that I added from Max's post? Or should I pick one?
 
In the post I linked you to it has a much more extensive mod_expires it it. :)

Just make sure you use the final code, not all the little snippets.
 
My goal is 1.5sec
You are never, ever going to get that with a vB4.

The number 1 thing I can see you need is to trim the fat - you're loading over 1 megabyte on browsers. A fat site is a slow site.

Because of testing with chrome, WPT cannot get a kb read on your images in your test. They are all showing as 0kb on the image page.

Stop testing with Chrome - you are not getting the real picture with it. Use IE 10 only. Test to the more difficult standard. Chrome makes its claim to be "faster" because it ignores a great deal of the page elements. It's just Safari anyway - with the shortcuts and google's spyware added. It's not any better, and it's not any faster. It's just made to appear so.

Here's what's really going on.

This page shows you all the images which need optimization.

The flash elements on your page are 18 percent of the pageload. Do you really need those? Lose the custom fonts - most browsers don't render those anyway but they still load on them as a file.

Trim the fat. Test to the harder standard.
 
For a baseline result showing how fast you can be under the test conditions and with your hosting, turn all hooks off and make the default vB skin the default, then run a series of tests with same parameters I use.

That's a "be all you can be" scenario.
 
Thanks [MENTION=3]Max Taxable[/MENTION]! The flash elements come occasionally from Google Ads - we don't have any flash on our website. Should I set text-only ads on Adsense?

I can try optimizing some of these images, but most of them are about as compressed / small as I could get them without making the quality too bad. The optimization suggestions from WPT get them down 1-2%.

Any idea why Keep-Alive is turned off for this test? We have Keep Alive enabled in Apache, along with SSLSessionCache in mod_security. Why would this not be respected in IE, as opposed to Chrome? Looks like it is re-establishing a connection & handshake every time, which definitely isn't good.

I'll dump the site into our QA environment and disable hooks / reset the default theme and let you know the WPT results.
 
Last edited:
Thanks Max Taxable! The flash elements come occasionally from Google Ads - we don't have any flash on our website. Should I set text-only ads on Adsense?
That's a performance choice, and if it doesn't reduce revenue there's no reason not to do so.
I can try optimizing some of these images, but most of them are about as compressed / small as I could get them without making the quality too bad. The optimization suggestions from WPT get them down 1-2%.
There's no visible difference in image quality. Certainly the casual user isn't going to notice if there is, but he WILL notice the lightning speed. (Or most especially, the lack thereof.) Separate yourself from the equation and consider performance, bandwidth over millions of pageloads. Nobody gives a damn about your fancy images and their "quality." It's purely your own vanity working there.

WPT optimizes these images for you, click where it says "analyze jpeg" then save the smallest file size result to your computer, rename to match what's on the server, then upload to overwrite.

Any idea why Keep-Alive is turned off for this test? We have Keep Alive enabled in Apache, along with SSLSessionCache in mod_security. Why would this not be respected in IE, as opposed to Chrome? Looks like it is re-establishing a connection & handshake every time, which definitely isn't good.
It's not a test parameter that's turned on or off and it's not browser related - it's the fact you don't have keep-alive truly enabled for some reason. Same test, on my sites and on Ozzy's here, we don't have that issue. Ozzy has a good article on speeding up vB, in this forum.
 
It's not a test parameter that's turned on or off and it's not browser related - it's the fact you don't have keep-alive truly enabled for some reason. Same test, on my sites and on Ozzy's here, we don't have that issue. Ozzy has a good article on speeding up vB, in this forum.

Found the culprit here:

blogs.msdn.com/b/ieinternals/archive/2011/03/26/https-and-connection-close-is-your-apache-modssl-server-configuration-set-to-slow.aspx

Interesting read (if you like that sort of stuff!) - the solution is down at the end.

Sparknotes: HTTPS + Apache didn't used to play well with IE (1-5) so a lot of servers have this in their httpd-ssl.conf:

Code:
BrowserMatch ".*MSIE [1-5].*" \ 
nokeepalive ssl-unclean-shutdown \ 
downgrade-1.0 force-response-1.0

The above regex unfortunately matches IE 10 and 11 :) Oops!

The article recommends removing these lines altogether, since nobody is using those ancient browsers anymore. Or, at the very least, change the 1 to a 2. (But then you'll have to do this all over again when they reach IE 20)

Note: Some conf files don't even match on IE version, they just block all:

Code:
BrowserMatch ".*MSIE.*" \
         nokeepalive ssl-unclean-shutdown \
         downgrade-1.0 force-response-1.0

Either way, it's definitely something to look into for HTTPS sites. It's an unnecessary drain on server resources and a huge performance hit for IE users.

Note: if you use cPanel / EasyApache, be sure to follow these steps instead:

forums.cpanel.net/f5/disable-mod_setenvif-254932.html#post1076032

KeepAlive now working for IE10:

webpagetest.org/result/140906_Z0_KZT/

Now to look into all of the other things making it slow :D
 
Found the culprit here:

blogs.msdn.com/b/ieinternals/archive/2011/03/26/https-and-connection-close-is-your-apache-modssl-server-configuration-set-to-slow.aspx

Interesting read (if you like that sort of stuff!) - the solution is down at the end.

Sparknotes: HTTPS + Apache didn't used to play well with IE (1-5) so a lot of servers have this in their httpd-ssl.conf:

Code:
BrowserMatch ".*MSIE [1-5].*" \ 
nokeepalive ssl-unclean-shutdown \ 
downgrade-1.0 force-response-1.0

The above regex unfortunately matches IE 10 and 11 :) Oops!

The article recommends removing these lines altogether, since nobody is using those ancient browsers anymore. Or, at the very least, change the 1 to a 2. (But then you'll have to do this all over again when they reach IE 20)

Note: Some conf files don't even match on IE version, they just block all:

Code:
BrowserMatch ".*MSIE.*" \
         nokeepalive ssl-unclean-shutdown \
         downgrade-1.0 force-response-1.0

Either way, it's definitely something to look into for HTTPS sites. It's an unnecessary drain on server resources and a huge performance hit for IE users.

Note: if you use cPanel / EasyApache, be sure to follow these steps instead:

forums.cpanel.net/f5/disable-mod_setenvif-254932.html#post1076032

KeepAlive now working for IE10:

webpagetest.org/result/140906_Z0_KZT/

Now to look into all of the other things making it slow :D
Sweet! Good gumshoe work and very informative post! Thank you.

We learn something new every day.

By the way I hope I didn't come across as shitty in my last post, didn't mean to sound that way at all.
Now to look into all of the other things making it slow
Images are making up almost half of the total pageload.
 
Thanks [MENTION=3]Max Taxable[/MENTION]! You didn't come across as shitty, I'm finding this forum hugely helpful at getting our site in a healthier direction :) I will go through and start optimizing each image (and removing images as much as possible), hopefully get those two red scores up a bit.

Would it also help to get some of these images in a CSS sprites? Or would the difference be negligible?
 
Would it also help to get some of these images in a CSS sprites? Or would the difference be negligible?
If the images are fat they will still be fat as part of a sprite. Except then, it will be all of them IN the sprite still loading full kb on browsers, of EVERY image in the sprite. Every time even just one, is called.
 
Back
Top