gregfielding
Expert
Just Getting Started
Member Likes (0)
I'm on mu with buddypress daily and my page speed is terrible. I'm not blaming the theme...I'm hoping you guys will have some more ideas for me.
My YSlow score is was a terrible 49, but I got it up to a slightly less terrible 54.
I was able to get my improvement with Use Google Libraries (which took about 3 scripts) and using WP-Minify, but only for Javascript - the CSS option kills the look of the page.
My worst scores were for these things:
Grade F on Make fewer HTTP requests
This page has 21 external Javascript scripts. Try combining them into one.
This page has 24 external stylesheets. Try combining them into one.
This page has 10 external background images. Try combining them with CSS sprites.
Grade F on Use a Content Delivery Network (CDN)
There are 103 static components that are not on CDN.
Grade F on Add Expires headers
There are 48 static components without a far-future expiration date.
Grade F on Compress components with gzip
There are 24 plain text components that should be sent compressed
Grade F on Minify CSS
Grade F on Configure entity tags (ETags)
There are 38 components with misconfigured ETags
Google Pagespeed came up with these weaknesses:
Combine External CSS
Combine External Javascript
Minimize DNS Lookups (this is the side effect of a hack that pulls posts from sub blogs up to my front page)
Minimize Size Request
Specify Image Dimensions
Parellelize Downloads across hostnames
So far...
I tried WP Total Cache, but it causes but problems with the activity stream and I had to delete it. I may try and bring it back, just checking the "database" option, but I'm guessing there are better options.
I tried to use WP-Optimize to clean up my database, but couldn't even get the admin screen to load without crashing my browser, so I deleted that plugin. I have about 5000 post revisions.
I tried putting javascript in the footer, but it killed my slideshow.
I put in the file-based caching tool recommended in the buddypress documentation, but it then prevented me from being able to add any new plugins. It caused the error message "The plugin does not have a valid header." I had to delete it. For what it's worth this improved my YSlow score by 1 point.
http://codex.buddypress.org/getting-started/improving-performance/
I looked into xcache, referenced on that same page, but installing it seems a bit overwhelming. I can learn it and figure it out...but I wanted to check here to see if it's worth it.
I googled around a bit and it seems like page speed is a common problem with more complex buddypress sites. And, it seems like there isn't any consensus on the best tools to use. Many of the most popular wordpress performance plugins, like DB Manager, are outdated and no longer being maintained.
For what it's worth. I've got a community of about 400 members and 200 blogs. I run lots of plugins, probably more than most. And, we have lots of images. I'm on MU 2.9.2 and BP 1.2.3.
This is becoming a pretty big problem for me and any expertise that you guys can share would be much appreciated!
Responses (23)
Member (joined March 2010) Likes (0)
I use W3 Total Cache and it works just great. But what I really think you need is a hosting upgrade.
You didn't mention what your hosting situation was. I am assuming that you are on dedicated hosting..you might try a RAM upgrade.
Lead Developer (joined May 2009) Likes (0)
21 js and 24 css files! I think you really need to start with that. What are they all?
I would also recommend enabeling mod_deflate/gzip on your server.
Also I would use W3 total cache and do some different config. Page cache won't help that score much so if that was your issue skip it. Take advantage of its js/css combining/minification, as well as offloading to a CDN as a last step.
Member (joined June 2008) Likes (0)
Server side compression and expires dates really increases performance.
My apache config settings for my blogsite are :
Member (joined January 2010) Likes (0)
Aaron, here's my css:
* http://housingstorm.com/wp-content/themes/bp-daily/_inc/css/reset.css
* http://housingstorm.com/wp-content/themes/bp-daily-child/style.css
* http://housingstorm.com/wp-content/themes/bp-daily/_inc/css/adminbar.css
* http://housingstorm.com/wp-includes/js/thickbox/thickbox.css?ver=20090514
* http://housingstorm.com/wp-content/plugins/invite-anyone/widgets/widgets-css.css?ver=2.9.2
* http://housingstorm.com/wp-content/plugins/contact-form-7/styles.css?ver=2.2.1
* http://housingstorm.com/wp-content/plugins/sociable/sociable.css?ver=2.9.2
* http://housingstorm.com/wp-content/plugins/facestream/css/style.css?ver=2.9.2
* http://housingstorm.com/wp-content/plugins/tweetstream/css/style.css?ver=2.9.2
* http://housingstorm.com/wp-content/themes/bp-daily/_inc/css/bp-default.css
* http://housingstorm.com/wp-content/themes/bp-daily/_inc/css/comments.css
* http://housingstorm.com/wp-content/themes/bp-daily/_inc/css/forms.css
* http://housingstorm.com/wp-content/themes/bp-daily/_inc/css/layout.css
* http://housingstorm.com/wp-content/themes/bp-daily/_inc/css/navigation.css
* http://housingstorm.com/wp-content/themes/bp-daily/_inc/css/styling.css
* http://housingstorm.com/wp-content/themes/bp-daily/_inc/css/typography.css
* http://housingstorm.com/wp-content/themes/bp-daily/_inc/css/scripting.css
* http://housingstorm.com/wp-content/themes/bp-daily/_inc/css/custom.css
* http://housingstorm.com/wp-content/themes/bp-daily-child/_inc/css/child.css
* http://housingstorm.com/wp-content/plugins/lightbox-2/Themes/White/lightbox.css
There are 3 CSS files served from static.ak.fbcdn.net. They should be combined into as few files as possible.
* http://static.ak.fbcdn.net/rsrc.php/zLN4X/hash/bgt0tze9.css
* http://static.ak.fbcdn.net/rsrc.php/zEMPN/hash/3wefa409.css
* http://static.ak.fbcdn.net/rsrc.php/zAJCM/hash/6kjpjus4.css
Here are 38 components missing entity tags:
Here are 28 components that should be compressed:
Steve,
Does that go in htaccess?
Keeper of the Dark Chocolate (joined July 2007) Likes (0)
I believe that goes into your site's httpd.conf file. I say site and not server because some platforms like CPanel create their own httpd.conf for each account. You'd have to check on that with your host.
Gotta admit though we do a lot of combining with our CSS. All of our plugin css gets put into two files, one for the public side and one for the admin side.
Member (joined January 2010) Likes (0)
Most of my css files are from bp-daily...only a few are from plugins. Is this a theme issue?
Theme Designer (joined November 2009) Likes (0)
@gregfielding: You have a lot of things that are not from the theme I see a lot of javascript and plugins. I would say you want to reduce calling javascript so much on the page and also you can look to combine all the css into one file if you want. A word on our themes. We have to provide themes that work for as many people as possible in as many situations as possible. They have to allow the following:
1. Theme options: customisation of colours and css elements
2. Several colour options
3. Ease of updating theme: therefore the split in the css files - this is actually something that has been changed / is different in some themes and an update to daily has reduced this number (coming for wp 3.0)
Now, the problems come when you mix into that for instance all the css and javascript you have then you get an issue. I would look at combining your pasted in CSS and additional CSS - you could even grab your theme css and lump it all literally in one file and mini that file if you wanted to go all out.
If you use daily as a theme you only have 12 css sheets (13 if it counts style.css (can't remember if it does) and then 6 if include admin js files... you're gaining a lot of files there. Some of this of course will be wp/bp.
Theme Designer (joined November 2009) Likes (0)
Update: Sorry just say this:
Did you try the noconflict javascript I was linking to you in the other thread today - my thoughts are that may work if you use that :)
Lead Developer (joined May 2009) Likes (0)
you should setup mod_deflate to compress js and css files as well. There are a bunch of tutorials on the web for enabling mod_deflate, cache headers, etc.
Member (joined January 2010) Likes (0)
Tammie, are you saying that I could use the javascript in footer option and somehow apply the "noconflict" function to keep my slideshow operating?
confused.
Theme Designer (joined November 2009) Likes (0)
@gregfielding: Well it all depends on what that js did - I could be missing the point but didn't see the link relating to it maybe you can relink / link it for me to have a look at to see before I assume? Easy way though to see if it's an error js wise and possibly something noconflict could fix if you are just putting a $ value direct in (again don't know if you were) would be to see if with it on firebug gets grumpy. I am fairly sure if a tutorial suggests using javascript for something and it's from a valid site it will work with our themes / slideshow assuming it's put on in the correct method - does that make sense?
Member (joined January 2010) Likes (0)
Tammie,
I just moved the javascript to the footer and the slideshow isn't working...can you take a look?
http://housingstorm.com/
thanks!
Member (joined January 2010) Likes (0)
Tammie, couldn't all of the parent theme css be combined into 1 file?
Lead Developer (joined May 2009) Likes (0)
It could yes, as well as child css. I guess they have it that way for easy of use. Personally I prefer one file divided up by comments.
Member (joined January 2010) Likes (0)
Update: I set up mod_deflate and made the following changes to htaccess.
I'm up to a YSlow score of 69! still bad but much better than 49 2 days ago.
Any thoughts on those settings?
Theme Designer (joined November 2009) Likes (0)
@Aaron: yeah we do but also daily has less now - also in daily it's like that for the scripting, colour options and keeping buddypress bits separate to easily update the core without touching the theme. However, there are improvements coming up in wp 3.0 stuff around this and some themes. But you are totally right if a site has performance issues nothing against popping that all into one large file at all.
@gregfielding: you can combine it all into one stylesheet without issues or shouldn't be an issue - you will have several declarations of the same style but not that conflict so nothing will cause issues. Again you're not telling me what 'this javascript does' - sorry but what is it.. what does it do and apologies if I'm missing that point. You have a lot that isn't theme related on your site. Also the slideshow works - sort of doubley puzzled now :) You want to see what impact other things have by removing them like the facebook, widgets and other scripting and you will see your yslow go up - sadly it's I think going to be a balancing act of what do you want on your site versus what can you get yslow to be.
If you think about it you are using google ads, loading a slideshow, loading a js drop down, using these:
later on you've got:
it all adds up....
Lead Developer (joined May 2009) Likes (0)
Make sure to compress xml, css, and js as well.
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript application/x-javascripthttp://httpd.apache.org/docs/2.0/mod/mod_deflate.html
Member (joined January 2010) Likes (0)
Thanks guys...
Tammie,
I think we got off a bit...One way I thought I could speed up my site was to move js to the footer. But, when I did, I had trouble with my drop-down menus and the slideshow.
I'm guessing that "what the js did" was control those two elements, and in the footer, those elements don't work properly.
Is that correct? or should those elements work properly even with the js in the footer?
Regardless, putting js in the footer is just one trick to help speed me up. I need to continue to explore other options as well.
Theme Designer (joined November 2009) Likes (0)
@gregfielding: Ah ha well yes you can't put scripting after you use it. Sorry I thought you were adding scripting along with that scripting hence the no conflict - apologies if I got in the wrong wood there. You have to link to the js THEN use it :)
I would say js in footer isn't going to be the biggie though look at the list I gave you perhaps for indication at some trimming you can do also.
Member (joined January 2010) Likes (0)
So, using W3 Total Cache or WP Minify kills user registration.
I'm guessing it's something with the minifying of the js? Any ideas?
Theme Designer (joined November 2009) Likes (0)
@gregfielding: Have you tried using them with the default buddypress theme or seeing if they are compatible with buddypress? They may not take into account what buddypress does which is extra js.
Member (joined October 2007) Likes (0)
@gregfielding
you mentioned that xcache seemed a bit overwhelming, but that is your solution for now. Install or ask your support to install xcache or APC or eaccelerator and maybe even memcached.
Member (joined April 2011) Likes (0)
@gregfielding - I notice your site runs reasonably quick. What did you end up doing to improve the performance?
Martin
WordPress Questions?
We've got answers!
Find out more »