What is easy to do to improve speed from test result?


This is my performance review but I dont really know what to do next or what I would be able to improve easily with minimal knowledge…

I am using wordpress plugin W3 Total Cache by W3 EDGE ® to improve load speed (the site loads very slow) but I think there are things I have to do manually. for example I have an option to load js & css scripts to minify. Would I load the same files that the review says I should compress?

If I can get some suggestions and explanation how to optimize my site I would appreciate it :huh:

Thank u to whoever can help :slight_smile:

Are you sure W3TC is installed and working? 26 seconds for the base page to respond is just about the worst I have EVER seen (and I have seen a lot). Even without a caching plugin and an obscenely slow hosting provider I have never seen it that bad. W3TC should be caching a static version of your page and should return in well under 1 second.

The compression is referring to gzip compression. That is usually done by modifying the .htaccess file in the root of your site by adding something like:

<IfModule mod_deflate.c> AddOutputFilterByType DEFLATE text/plain AddOutputFilterByType DEFLATE text/html AddOutputFilterByType DEFLATE application/xhtml+xml AddOutputFilterByType DEFLATE application/xml AddOutputFilterByType DEFLATE text/xml AddOutputFilterByType DEFLATE text/css AddOutputFilterByType DEFLATE text/javascript AddOutputFilterByType DEFLATE application/javascript AddOutputFilterByType DEFLATE application/x-javascript </IfModule>

(this is for apache 2.x, 1.x uses mod_gzip). It does require that your hosting provider have gzip compression enabled for their apache - if not yell at them because they should.

I know some stuff about W3TC but have never had to configure it so hopefully someone else chimes in (I know several here have) but you need to give it a list of css and javascript files to merge together which will handle the “combine css/js” recommendation.

You should take care of the problems in this order, and then come back and see what things look like:

1 - Fix the base page response time. Nothing else matters until you get that 26+ seconds reduced.

2 - Enable gzip compression. It’s just a configuration setting and has no risk.

3 - Configure W3TC to merge the css and javascript files

Thank you for responding :slight_smile:

I have the W3TC installed but Im not really sure how to make sure it works…thats how I got here…

I will call the hosting (ipage.com) to see if they can help with the base page response time which you are right is the majority of the problem :frowning:

thank u again!!!

Have you walked through the steps here: http://wordpress.org/extend/plugins/w3-total-cache/installation/ ? That should get it installed and configured for most of the basics. It might help hide the hosting problems by caching a static version of the page but the underlying problem should be fixed as well (9 times out of 10 it is a really slow database).

Good luck.


Hey Patric, I got my base page response time down to 1086ms !! wooohooo :slight_smile: ipage did an optimization for the database & made sure the gzip is enabled… Thank u for u’re knowledge and willingness to share!!!

Regarding the W3TC I went over their installation directions with the link you gave me, the thing I didnt do is change the permissions to 777 and change back to 775 after installation of the plugin…do you know why that is important and should I remove the plugin, change the permissions on my file-manager and then reinstall?..(ps I tried the plugin forum but they dont always respond to questions so I am hoping u can help…)[hr]
I actually did some more reading & it is installed correctly… thanx again :slight_smile:

Glad to hear things are working better now. If you want some more feedback on where to go next feel free to post a new test result for people to chime in in (though fixing the database problem should make an enormous difference :slight_smile: ).

Glad to help.


Hi Pat,

I wanted to start compressing files and I got a little confused:

Regarding the .htaccess this is what I have - from what I could understand W3TC has done what you wrote to put in the .htaccess:

DirectoryIndex index.php

BEGIN W3TC Skip 404 error handling by WordPress for static files

RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} \.(css|js|html|htm|rtf|rtx|svg|svgz|txt|xsd|xsl|xml|asf|asx|wax|wmv|wmx|avi|bmp|class|divx|doc|docx|exe|gif|gz|gzip|ico|jpg|jpeg|jpe|mdb|mid|midi|mov|qt|mp3|m4a|mp4|m4v|mpeg|mpg|mpe|mpp|odb|odc|odf|odg|odp|ods|odt|ogg|pdf|png|pot|pps|ppt|pptx|ra|ram|swf|tar|tif|tiff|wav|wma|wri|xla|xls|xlsx|xlt|xlw|zip)$ [NC] RewriteRule .* - [L] # END W3TC Skip 404 error handling by WordPress for static files

BEGIN W3TC Browser Cache

AddType text/css .css AddType application/x-javascript .js AddType text/html .html .htm AddType text/richtext .rtf .rtx AddType image/svg+xml .svg .svgz AddType text/plain .txt AddType text/xsd .xsd AddType text/xsl .xsl AddType text/xml .xml AddType video/asf .asf .asx .wax .wmv .wmx AddType video/avi .avi AddType image/bmp .bmp AddType application/java .class AddType video/divx .divx AddType application/msword .doc .docx AddType application/x-msdownload .exe AddType image/gif .gif AddType application/x-gzip .gz .gzip AddType image/x-icon .ico AddType image/jpeg .jpg .jpeg .jpe AddType application/vnd.ms-access .mdb AddType audio/midi .mid .midi AddType video/quicktime .mov .qt AddType audio/mpeg .mp3 .m4a AddType video/mp4 .mp4 .m4v AddType video/mpeg .mpeg .mpg .mpe AddType application/vnd.ms-project .mpp AddType application/vnd.oasis.opendocument.database .odb AddType application/vnd.oasis.opendocument.chart .odc AddType application/vnd.oasis.opendocument.formula .odf AddType application/vnd.oasis.opendocument.graphics .odg AddType application/vnd.oasis.opendocument.presentation .odp AddType application/vnd.oasis.opendocument.spreadsheet .ods AddType application/vnd.oasis.opendocument.text .odt AddType audio/ogg .ogg AddType application/pdf .pdf AddType image/png .png AddType application/vnd.ms-powerpoint .pot .pps .ppt .pptx AddType audio/x-realaudio .ra .ram AddType application/x-shockwave-flash .swf AddType application/x-tar .tar AddType image/tiff .tif .tiff AddType audio/wav .wav AddType audio/wma .wma AddType application/vnd.ms-write .wri AddType application/vnd.ms-excel .xla .xls .xlsx .xlt .xlw AddType application/zip .zip ExpiresActive On ExpiresByType text/css M3600 ExpiresByType application/x-javascript M3600 ExpiresByType text/html M3600 ExpiresByType text/richtext M3600 ExpiresByType image/svg+xml M3600 ExpiresByType text/plain M3600 ExpiresByType text/xsd M3600 ExpiresByType text/xsl M3600 ExpiresByType text/xml M3600 ExpiresByType video/asf M31536000 ExpiresByType video/avi M31536000 ExpiresByType image/bmp M31536000 ExpiresByType application/java M31536000 ExpiresByType video/divx M31536000 ExpiresByType application/msword M31536000 ExpiresByType application/x-msdownload M31536000 ExpiresByType image/gif M31536000 ExpiresByType application/x-gzip M31536000 ExpiresByType image/x-icon M31536000 ExpiresByType image/jpeg M31536000 ExpiresByType application/vnd.ms-access M31536000 ExpiresByType audio/midi M31536000 ExpiresByType video/quicktime M31536000 ExpiresByType audio/mpeg M31536000 ExpiresByType video/mp4 M31536000 ExpiresByType video/mpeg M31536000 ExpiresByType application/vnd.ms-project M31536000 ExpiresByType application/vnd.oasis.opendocument.database M31536000 ExpiresByType application/vnd.oasis.opendocument.chart M31536000 ExpiresByType application/vnd.oasis.opendocument.formula M31536000 ExpiresByType application/vnd.oasis.opendocument.graphics M31536000 ExpiresByType application/vnd.oasis.opendocument.presentation M31536000 ExpiresByType application/vnd.oasis.opendocument.spreadsheet M31536000 ExpiresByType application/vnd.oasis.opendocument.text M31536000 ExpiresByType audio/ogg M31536000 ExpiresByType application/pdf M31536000 ExpiresByType image/png M31536000 ExpiresByType application/vnd.ms-powerpoint M31536000 ExpiresByType audio/x-realaudio M31536000 ExpiresByType application/x-shockwave-flash M31536000 ExpiresByType application/x-tar M31536000 ExpiresByType image/tiff M31536000 ExpiresByType audio/wav M31536000 ExpiresByType audio/wma M31536000 ExpiresByType application/vnd.ms-write M31536000 ExpiresByType application/vnd.ms-excel M31536000 ExpiresByType application/zip M31536000 BrowserMatch ^Mozilla/4 gzip-only-text/html BrowserMatch ^Mozilla/4\.0[678] no-gzip BrowserMatch \bMSIE !no-gzip !gzip-only-text/html BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html Header append Vary User-Agent env=!dont-vary AddOutputFilterByType DEFLATE text/css application/x-javascript text/html text/richtext image/svg+xml text/plain text/xsd text/xsl text/xml image/x-icon Header set Pragma "public" Header set Cache-Control "public, must-revalidate, proxy-revalidate" FileETag MTime Size Header set X-Powered-By "W3 Total Cache/" Header set Pragma "public" Header set Cache-Control "public, must-revalidate, proxy-revalidate" FileETag MTime Size Header set X-Powered-By "W3 Total Cache/" Header set Pragma "public" Header set Cache-Control "public, must-revalidate, proxy-revalidate" FileETag MTime Size Header set X-Powered-By "W3 Total Cache/" # END W3TC Browser Cache

BEGIN W3TC Page Cache

RewriteEngine On RewriteBase / RewriteCond %{HTTP_USER_AGENT} (2\.0\ mmp|240x320|alcatel|amoi|asus|au\-mic|audiovox|avantgo|benq|bird|blackberry|blazer|cdm|cellphone|danger|ddipocket|docomo|dopod|elaine/3\.0|ericsson|eudoraweb|fly|haier|hiptop|hp\.ipaq|htc|huawei|i\-mobile|iemobile|j\-phone|kddi|konka|kwc|kyocera/wx310k|lenovo|lg|lg/u990|lge\ vx|midp|midp\-2\.0|mmef20|mmp|mobilephone|mot\-v|motorola|netfront|newgen|newt|nintendo\ ds|nintendo\ wii|nitro|nokia|novarra|o2|openweb|opera\ mobi|opera\.mobi|palm|panasonic|pantech|pdxgw|pg|philips|phone|playstation\ portable|portalmmm|ppc|proxinet|psp|pt|qtek|sagem|samsung|sanyo|sch|sec|sendo|sgh|sharp|sharp\-tq\-gx10|sie|small|smartphone|softbank|sonyericsson|sph|symbian|symbian\ os|symbianos|toshiba|treo|ts21i\-10|up\.browser|up\.link|uts|vertu|vodafone|wap|willcome|windows\ ce|windows\.ce|winwap|xda|zte) [NC] RewriteRule .* - [E=W3TC_UA:_low] RewriteCond %{HTTP_USER_AGENT} (acer\ s100|android|archos5|blackberry9500|blackberry9530|blackberry9550|cupcake|docomo\ ht\-03a|dream|htc\ hero|htc\ magic|htc_dream|htc_magic|incognito|ipad|iphone|ipod|lg\-gw620|liquid\ build|maemo|mot\-mb200|mot\-mb300|nexus\ one|opera\ mini|samsung\-s8000|series60.*webkit|series60/5\.0|sonyericssone10|sonyericssonu20|sonyericssonx10|t\-mobile\ mytouch\ 3g|t\-mobile\ opal|tattoo|webmate|webos) [NC] RewriteRule .* - [E=W3TC_UA:_high] RewriteCond %{HTTPS} =on RewriteRule .* - [E=W3TC_SSL:_ssl] RewriteCond %{SERVER_PORT} =443 RewriteRule .* - [E=W3TC_SSL:_ssl] RewriteCond %{HTTP:Accept-Encoding} gzip RewriteRule .* - [E=W3TC_ENC:.gzip] RewriteCond %{REQUEST_METHOD} !=POST RewriteCond %{QUERY_STRING} ="" RewriteCond %{REQUEST_URI} \/$ RewriteCond %{REQUEST_URI} !(\/wp-admin\/|\/xmlrpc.php|\/wp-(app|cron|login|register|mail)\.php|wp-.*\.php|index\.php) [NC,OR] RewriteCond %{REQUEST_URI} (wp-comments-popup\.php|wp-links-opml\.php|wp-locations\.php) [NC] RewriteCond %{HTTP_COOKIE} !(comment_author|wp-postpass|wordpress_\[a-f0-9\]\+|wordpress_logged_in) [NC] RewriteCond "/hermes/bosweb/web104/b1049/ipg.micgeronimocom/wp-content/w3tc/pgcache/$1/_index%{ENV:W3TC_UA}%{ENV:W3TC_SSL}.html%{ENV:W3TC_ENC}" -f RewriteRule (.*) "/wp-content/w3tc/pgcache/$1/_index%{ENV:W3TC_UA}%{ENV:W3TC_SSL}.html%{ENV:W3TC_ENC}" [L] # END W3TC Page Cache

BEGIN WordPress

RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L]

END WordPress

Now I actually have to compress files right? On the host I can choose files to compress or create a compressed copy.

Reading about it I couldnt find an answer to the question what files are safe to compress?..I just dont want to compress a file that wont be able to be opened and I’ll lose content from the site… I read this below:

“Most web sites gzip their HTML documents. It’s also worthwhile to gzip your scripts and stylesheets, but many web sites miss this opportunity. In fact, it’s worthwhile to compress any text response including XML and JSON. Image and PDF files should not be gzipped because they are already compressed. Trying to gzip them not only wastes CPU but can potentially increase file sizes.
Gzipping as many file types as possible is an easy way to reduce page weight and accelerate the user experience.”

So if I compress any file types listed above (html, text, XML, stylesheets, scripts & JSON) it wont change the appearance of the website only improve load time?

I wanna try but Im scared & not sure thats what I am supposed to do…

Hope u or someone else can help…

Stay away from XML and JSON. Some versions of IE don’t react well to gzipped responses to AJAX calls. HTML, text, css and javascript are safe across-the-board.

Here is the .htaccess I have in place on WebPagetest:

<IfModule mod_deflate.c> AddOutputFilterByType DEFLATE text/plain AddOutputFilterByType DEFLATE text/html AddOutputFilterByType DEFLATE text/css AddOutputFilterByType DEFLATE text/javascript AddOutputFilterByType DEFLATE application/javascript AddOutputFilterByType DEFLATE application/x-javascript </IfModule>

The site will look exactly the same to the users (just faster) and as a bonus you’ll use less bandwidth which can save you money if you get charged for it.

I updated the previous post and included what I have in my .htaccess - should I still add what you wrote? and if so where? and this actually only tells servers to accept compressed files right? I still need to actually compress them…right?..

lol everytime I learn something I feel more confused!

Sorry, looks like it has you covered. You don’t need to compress the files yourself, Apache will do it transparently.

If they are not showing up as compressed then you need to ping your hosting provider and make sure they have mod_deflate installed (some don’t because they don’t want the extra CPU utilization but that’s not a good excuse).

thanks again for all your support :slight_smile:

Hi again :slight_smile:
I ran the test again & got results that ‘keep alive’ not working aswell as before even tho initial load time is much better this is the new one: http://www.webpagetest.org/result/100817_3450/1/performance_optimization/

& this is the old one with 100% keep alive http://www.webpagetest.org/result/100817_31WN/1/performance_optimization/

What is ‘Keep Alive’? & what would cause the difference in results?

Would there be plugins or content that would interfere?

I also had a question about CDN and saw you mentioned on a different post about creating a static CDN folder - how do I identify what static files are? I cant afford to use a CDN company now but this is a screen shot of the plugin I use for optimization & they give an option for self-hosting in the CDN: What do they mean by self hosting? Are they providing CDN or do I need to use a CDN company?

Im sorry if Im bombarding with questions - I feel the more I learn the more I get confused…

If you can help thanx so much!

W3 Total Cache by W3 EDGE ®
Content Delivery Network support via self-hosted / file transfer protocol upload is currently disabled.

Prepare the CDN by: then . Check if some objects appear to be missing. if the domain name of your site has ever changed.

Host wp-includes/ files
If checked, WordPress static core file types specified in the “wp-includes file types to upload” field below will be hosted with the CDN.
Host theme files
If checked, all theme file types specified in the “theme file types to upload” field below will be hosted with the CDN.
Host minified CSS and JS files
If checked, minified CSS and JS files will be hosted with the CDN.
Host custom files
If checked, any file names or paths specified in the “custom file list” field below will be hosted with the CDN.
Force over-writing of existing files
If modified files are not always detected and replaced, use this option to over-write them.
Import external media library attachments
Download attachments hosted elsewhere into your media library and deliver them via CDN.

Use passive FTP mode
Enable this option only if there are connectivity issues, otherwise it’s not recommended.
FTP hostname:
Specify the server’s address, e.g.: “ftp.domain.com”. Try “” if using a sub-domain on the same server as your site.
FTP username:
FTP password:
FTP path:
Specify the directory where files must be uploaded to be accessible in a web browser (the document root).
Replace site’s hostname with:

Enter the hostname or CNAME(s) of your FTP server configured above, these values will replace your site’s hostname in the HTML.

Enable changed files auto-upload Auto upload interval: seconds
Automatically attempt to find and upload changed files.
Re-transfer cycle limit:
Number of files processed per upload attempt.
wp-includes file types to upload:
Specify the file types within the WordPress core to host with the CDN.
Theme file types to upload:
Specify the file types in the active theme to host with the CDN.
File types to import:
Automatically import files hosted with 3rd parties of these types (if used in your posts / pages) to your media library.
Custom file list:
Specify any files outside of theme or other common directories to host with the CDN.
Rejected user agents:
Specify user agents that should not access files hosted with the CDN.
Rejected files:
Specify the path of files that should not use the CDN.

If using Amazon Web Services or Self-Hosted CDN types, enable HTTP compression in the “Media & Other Files” section on Browser Cache Settings tab.

For keep-alive you should check with your hosting company to see if they changed anything or turned it off. It looks like the main difference on why the one is faster even with keep-alive’s disabled is the back-end response time problem was fixed (and was responsible for a good 15-20 seconds).

As far as self-hosting, I expect they are talking about using a “Pull” CDN where the CDN will automatically request the files as needed directly from your web server. Otherwise you need to upload the files to their server which is why you need ftp credentials, etc (Pull is much easier to configure).

I would make sure to get everything else fixed before enabling a CDN (particularly keep-alives, gzip, long expires and file merging). A CDN could be used to solve the keep-alives and gzip compression if your hosting provider can’t but it is best to get it all fixed on the server first and THEN use a CDN for the last bit of speed.

As far as costs go, MaxCDN is $40 for the first year ($99 after that) for 1TB (and they are offering a discount in the vendor discount forum) so the barrier to entry is pretty low but you do have a LOT of progress that you can make first before needing a CDN.


thanx again :slight_smile:

I know pagespeed & co very well but the best trick i ever find is to set images as <img src="data:image/gif;base64 … directly in the html and css.
Because not all browsers accpeted data:image i have find out the browsers are working or not working so i serve the browsers with this condition automatically as data:image or as normal img tag.

The Result: http://www.webpagetest.org/result/100903_44WZ/ or live http://powercms.org

Pagespeed 100 Yslow 100

If you wanted to get fancy you could also use MHTML for the IE browsers that don’t support data URI’s (though it may not be worth the effort).

Awesome work, that is crazy-fast and about as fast as things can get with the last-mile latency being the biggest contributor.