After adding W3 Total Cache and a CDN(MaxCDN) I managed to reduce the overall loading time of the homepage to about 3sec, it depends on the time to first byte (which i can not seem to reduce and can be up to 2,3 seconds) thanks for all the great info on here by the way!
I seem to have tried everything but big G gives me an average load of around 6 seconds in Webmaster Tools, way to slow and don’t know what to do anymore, please assist!
For starters, make sure to include the trailing slash on your links on your homepage (/zebra-rugs/ instead of /zebra-rugs). That will get rid of the redirect and save 3/4 of a second.
After that it looks like there is still some back-end caching/tweaking that is needed. The 2 second first byte time is killing you.
If you visit the page and view source, W3TC displays some debugging information at the bottom of the page that can help improve things:
<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/
Minified using disk: basic
Page Caching using disk: enhanced
Database Caching 6/33 queries in 0.078 seconds using disk: basic
Object Caching 1312/1319 objects using disk: basic
Content Delivery Network via cdn.zebra-prints.com
Served from: www.zebra-prints.com @ 2011-11-16 12:53:02 -->
You can turn on more debug settings in the W3TC configuration which will give you timings for everything and tell you what all of the database queries were that couldn’t be cached in case some of them can be improved.
I’d focus on getting the first byte times down first and then after those are under control see if there is room for improvement in the rest of the page.
The first byte time varies I must say, sometimes it can be like it should (around 0.3 sec) and other times it can be even over 10 seconds…
If I would know what to do to reduce I would have been done but I don’t know where to start. Already contacted Hostgator and they say they can’t do anything on their behalf (doing all they can) since it’s a shared host.
I’ve read dozens of articles on how to optimize W3 total cache but can’t seem to get the load time down. Is there something I’m missing out on regarding settings?
I see the message in the source code of the page but don’t really know how I can use this data.
I’ve also considered Cloudflare as an extra boost for speed, can that help?
Cloudflare won’t help, it is back-end server processing time (probably database related).
On the main W3TC settings page there is a “Debug” section where you can turn on different sections to generate a LOT more debug information that may help show where the problem is. This is what mine looks like when I turn some of them on:
<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/
Served from: wp.patrickmeenan.com @ 2011-11-16 19:35:52 -->
<!-- W3 Total Cache: Object Cache debug info:
Engine: apc
Caching: enabled
Total calls: 800
Cache hits: 799
Cache misses: 1
Total time: 0.0518
W3TC Object Cache info:
# | Status | Source | Data size (b) | Query time (s) | ID:Group
1 | cached | persistent | 4 | 0.0008 | is_blog_installed:default
2 | cached | persistent | 145 | 0.0002 | notoptions:options
3 | cached | persistent | 20250 | 0.0004 | alloptions:options
4 | cached | internal | 145 | 0.0001 | notoptions:options
5 | cached | internal | 20250 | 0 | alloptions:options
...
800 | cached | internal | 20250 | 0 | alloptions:options
-->
<!-- W3 Total Cache: Db cache debug info:
Engine: apc
Total queries: 3
Cached queries: 0
Total query time: 0.0041
SQL info:
# | Time (s) | Caching (Reject reason) | Status | Data size (b) | Query
1 | 0.0028 | disabled (Query is rejected) | not cached | 0 | SELECT SQL_CALC_FOUND_ROWS wp_posts.* FROM wp_posts WHERE 1=1 AND wp_posts.post_type = 'post' AND (wp_posts.post_status = 'publish' OR wp_posts.post_status = 'private') ORDER BY wp_posts.post_date DESC LIMIT 0, 10
2 | 0.0007 | disabled (Query is rejected) | not cached | 0 | SELECT FOUND_ROWS()
3 | 0.0005 | disabled (User is logged in) | not cached | 0 | SELECT comment_approved, COUNT( * ) AS num_comments FROM wp_comments GROUP BY comment_approved
-->
<!-- W3 Total Cache: Page cache debug info:
Engine: apc
Cache key: w3tc_wp.patrickmeenan.com_1_page_6666cd76f96956469e7be39d750cc7d9
Caching: disabled
Reject reason: User is logged in
Status: not cached
Creation Time: 0.416s
Header info:
X-Pingback: http://wp.patrickmeenan.com/xmlrpc.php
Expires: Wed, 11 Jan 1984 05:00:00 GMT
Last-Modified: Wed, 16 Nov 2011 19:35:52 GMT
Cache-Control: no-cache, must-revalidate, max-age=0
Pragma: no-cache
Content-Type: text/html; charset=UTF-8
X-Powered-By: W3 Total Cache/0.9.2.4
-->
You might only want to turn on the page and database debug settings first but it should help identify any slow queries. If they are caused by plugins that are not needed then you can just disable them but otherwise it might take some database work to go faster.
In the WebPagetest advanced settings there is an option to “keep response bodies” which you can turn on when you do your tests so that you can have the actual html (and debug information) that matches a given test.
At the end of the day, W3TC is a cache and can help make things look faster but to get the underlying app to actually run faster may require switching hosting providers. It’s an unfortunate issue with a lot of the cheaper shared hosting providers.
We have come a long way in the fight against AIDS, but we are still a long way to go to achieve our ambitious goals. Your contribution for HIV/AIDS patients?