WordPress Optimization Bible

This WordPress optimization tutorial is the most comprehensive guide to WordPress optimization created with the intention of helping you troubleshoot performance related issues and provide you with guidelines on how to speed up your WordPress site..

If you ever experienced slow WordPress admin panel, "MySQL server has gone away" message, pages taking forever to load or you want to prepare your site for a major increase in traffic (for example Digg front page) this is the guide for you.

1. Check the Site stats

Most commonly the problem with slow loading sites is just the sheer size of the page. A typical webpage today will be loaded with images, flash, videos and javascripts all which take a significant portion of bandwidth.

If you want to start dealing with this issue seriously you need to get Firefox browser, Firebug extension and Yslow plugin.

Yslow module will allow you to get a performance score from 0-100.  Getting your site to 80+ score should be your aim.

Try to keep your page size under 100KB. Try to keep it under 50kb if possible. If you have a lot of multimedia content then by all means learn to use YSlow.

Learn about ways to improve the page loading speed.

Another useful Firefox extension worth checking out is Google's Page Speed.

2. Check your (Vista) System

In rare occasions when you are loading your and other sites slowly, it can be your Vista system that is causing the slowdown.

If you are running Vista check this article for a diagnosis and a possible solution.

3. Check the Plugins

Plugins are usually the prime suspect for slowdowns. With so many WordPress plugins around, chance is you might have installed a plugin which does not use the resources in an optimum way.

For example such plugins that caused slowdowns in the past have been Popularity contest, aLinks or @Feed.

To check plugins, deactivate all of them and check the critical areas of the site again. If everything runs OK, re-enable the plugins one by one until you find the problematic plugin.

After finding the cause you can either write a message to the plugin author and hope they fix it or search for an alternative.

4. Check your Theme

If it's not the plugins, and you are troubleshooting slowdown of the site, you should check it with a different theme.

Themes can include code with plugin capabilities inside the theme's function.php file so everything what applies to plugins can apply to the theme.

Also, themes may use excessive JavaScript or image files, causing slow loading of the page because of huge amount of data to transfer and/or number of http requests used.

WordPress comes installed with a default theme and it's best used to test the site if your theme is the suspect for poor performance.

If you discover your theme is causing the slowdowns, you can use the excellent Firebug tool for Firefox browser to debug the problem. Learn more about Firebug, your new best friend.

You can also use this site get general information about the site very fast.

5. Optimize Database Tables

Database tables should be periodically optimized (and repaired if necessary) for optimum performance.

I recommend using WP-DBManager plugin which provides this functionality as well as database backup, all crucial for any blog installation.

WP-DBManager allows you to schedule and forget, and it will take care of all the work automatically.

Other alternative is manually optimizing and repairing your table through a tool like phpmyadmin.

6. Turn off Post Revisions

With WordPress 2.6, post version tracking mechanism was introduced. For example, every time you "Save" a post, a revision is written to the database. If you do not need this feature you can easily turn it off by adding one line to your wp-config.php file, found in the installation directory of your WordPress site:

define('WP_POST_REVISIONS', false);

If you have run a blog with revisions turned on for a while, chance is you will have a lot of revision posts in your database. if you wish to remove them for good, simply run this query (for example using the mentioned WP-DBManager) plugin.

DELETE FROM wp_posts WHERE post_type = "revision";

This will remove all "revision" posts from your database, making it smaller in the process.

NOTE: Do this with care. If you are not sure what you are doing, make sure to at least create a backup of the database first or even better, ask a professional to help you.

7. Implement Caching

Caching is a method of retrieving data from a ready storage (cache) instead of using resources to generate it every time the same information is needed. Using cache is much faster way to retrieve information and is generally recommended practice for most modern applications.

The easiest way to implement caching (and usually the only way if your blog is on shared hosting) is to use a caching plugin.

The most commonly used is WP Super Cache.

A new kid on the block, W3 Total Cache is more powerful alternative, maturing with every day.

8. MySQL Optimization

MySQL can save the results of a query in it's own cache. To enable it edit the MySQL configuration file (usually /etc/my.cnf) and add these lines:

query_cache_type = 1
query_cache_limit = 1M
query_cache_size = 16M

This will create a 16 MB query cache after you restart the MySQL server (the amount depends on the amount of available RAM, I use around 250MB on 4GB machine).

To check if it is properly running, run this query:

SHOW STATUS LIKE 'Qcache%';

Example result:

Qcache_free_blocks718
Qcache_free_memory13004008
Qcache_hits780759
Qcache_inserts56292
Qcache_lowmem_prunes0
Qcache_not_cached3711
Qcache_queries_in_cache1715
Qcache_total_blocks4344

Further MySQL Optimization:

There a lot of options you can play with so here is my MySQL config file instead, tuned in for 4GB, quad-core dedicated machine. This will most probably not work for your machine out of box, use it just as a general guideline.

[mysqld]
bulk_insert_buffer_size = 8M
connect_timeout=10
interactive_timeout=50
join_buffer=1M
key_buffer=250M
max_allowed_packet=16M
max_connect_errors=10
max_connections=100
max_heap_table_size = 32M
myisam_sort_buffer_size=96M
query_cache_limit = 4M
query_cache_size = 250M
query_cache_type = 1
query_prealloc_size = 65K
query_alloc_block_size = 128K
read_buffer_size=1M
read_rnd_buffer_size=768K
record_buffer=1M
safe-show-database
skip-innodb
skip-locking
skip-networking
sort_buffer=1M
table_cache=4096
thread_cache_size=1024
thread_concurrency=8
tmp_table_size = 32M
wait_timeout=500

# for slow queries, comment when not used
#log-slow-queries=/var/log/mysql-slow.log
#long_query_time=1
#log-queries-not-using-indexes

[mysqld_safe]
nice = -5
open_files_limit = 8192

[mysqldump]
quick
max_allowed_packet = 16M

[myisamchk]
key_buffer = 64M
sort_buffer = 64M
read_buffer = 16M
write_buffer = 16M

Tip #2:
Here is a further read regarding MySQL optimization and another one here.

Extremely useful mysqlrepot tool will help you tweak that mysql like nothing. Mysql tuner is one of the best and quickest tools out there to tell you how can you fix up your database. MySQL Tuning primer and MySQL Activity Report are another two scripts to try out.

Maatkit is an extremely useful toolkit for managing MySQL.

MySQL slow query log is valuable for getting info about most problematic queries. To activate it you can edit your my.cnf

log-slow-queries=/var/log/mysql-slow.log
long_query_time=1
log-queries-not-using-indexes

This will create a log of slow queries and those not using indexes. Now you need to be able to identify the slow ones for which you can use external slow log filter and parsing tools. Using 'EXPLAIN' is an effective way to understand and optimize complex queries.

You can also install mytop, a 'top' command clone that works with MySQL.

9. PHP Opcode Cache

PHP is interpreted language, meaning that every time PHP code is started, it is compiled into the so called op-codes, which are then run by the system. This compilation process can be cached by installing an opcode cache such as eAccelerator. There are other caching solutions out there as well.

To install eAccelerator, unpack the archive and go to the eAccelerator folder. Then type:

phpize
./configure
make
make install

This will install eAccelerrator.

Next create temp folder for storage:

mkdir /var/cache/eaccelerator

chmod 0777 /var/cache/eaccelerator

Finally to enable it, add these lines to the end of your php.ini file (usually /etc/php.ini or /usr/lib/php.ini):

extension="eaccelerator.so"
eaccelerator.shm_size="16"
eaccelerator.cache_dir="/var/cache/eaccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"

The changes will be noticeable at once, as PHP does not need to be 'restarted'.

Note #1: WP Super Cache and eAccelerator work fine together showing further increase in performance.

Note #2: If you like even more possibility for performance, check the WP Super Cache and eAccelerator plugin.

Note #3: Unfortunately eAccelerator won't work if PHP is run as CGI. You can try using fastcgi which will work with suExec and eAccelerator.

Note #4:W3 Total Cache mentioned earlier already utilities both memcached and APC making it amazingly fast.

10. Web Server optimization

Apache optimization is something books have been written on so I will first forward you to this article here. Indepth apache compilation tips here, performance tuning here, VPS tips here and keep alive tips here.

You can easily test changes in your configuration by running a test from your command prompt

ab -t30 -c5 http://www.mysite.com/

and comparing results. I get around 200 req/s on VPS server.

For more flexible testing you can use Autobench which works in conjunction with httperf, another benchmarking tool.

Use a fast web server like nginx to serve static content (ie. images) while passing dynamic requests is another popular technique you can use to improve performance.

Note #1: More cool resources. Optimizing Page load time and a great series on website performance.

Note #2: You can find even more tips&tricks on Elliot Back's site

11. "MySQL server has gone away" workaround

This WordPress database error appears on certain configurations and it manifests in very slow and no response, usually on your admin pages.

Workaround for this MySQL problem has been best addressed in this article.

This problem evidently exists, but the suggested fix is valid only until you upgrade your WordPress. Hopefully it will be further researched and added into the WordPress core in the future.

Note #1: Sometimes increasing MySQL wait_timeout to 1000 will help with this issue.

12. Fixing posting not possible problem

If you experience WordPress admin panel crawling to a halt, with inability to post or update certain posts, you are probably hitting the mod_security wall.

ModSecurity is Apache module for increasing web site security by preventing system intrusions. However, sometimes it may decide that your perfectly normal WordPress MySQL query is trying to do something suspicious and black list it, which manifests in very slow or no response of the site.

To test if this is the case, check your Apache error log, for example:

tail -f /usr/local/apache/logs/error_log

and look for something like this:

ModSecurity: Access denied with code 500 (phase 2) ... [id "300013"] [rev "1"] [msg "Generic SQL injection protection"] [severity "CRITICAL"] [hostname  www.prelovac.com"] [uri "/vladimir/wp-admin/page.php"

It tells you the access for this page was denied because of a security rule with id 300013. Fixing this includes white-listing this rule for the page in question.

To do that, edit apache config file (for example /usr/local/apache/conf/modsec2/exclude.conf) and add these lines:

SecRuleRemoveById 300013

This will white list the page for the given security rule and your site will continue to work normally.

13. RSS Pings and Pingbacks

Reasons for slow WordPress posting may include rss ping and pingback timeouts.

By default WordPress will try to ping servers listed in your ping list (found in Settings->Writing panel) and one of them may timeout slowing the entire process.

Second reason are post pingbacks, mechanism in which WordPress notifies the sites you linked to in your article. You can disable pingbacks in Settings->Discussion by un-checking option "Attempt to notify any blogs linked to from the article (slows down posting)".

Try clearing ping list and disabling pingbacks to see if that helps speed up your posting time.

Following are the general Rules for optimizing page loading time

14. Use subdomains to share the load

Most browsers are set to load 2-4 files from a domain in parallel. If you move some files to a different domain (subdomain will work) the browser will start downloading 2-4 more files in parallel.

It is good idea to move your theme image files to a subdomain you create. I have created demo.prelovac.com/images and moved my theme images there. I have then changed the theme style.css to reflect the full url to the new image files. Job done!

15. Minimize the number of HTTP requests

You can lower the number of HTTP requests by using fewer images (or placing all images in one large image and position them with CSS), fewer javascripts, fewer css files (usually meaning fewer plugins).

Good effort has been made by PHP speedy plugin which will merge all your JavaScript and all CSS files in one big file which really helps in lowering the HTTP request numbers. The biggest drawback of PHP Speedy is that it's not 100% compatible with all plugins.

Also use the CSS Sprite generator to move all your images into one image and then use CSS background-position to display them. This will cut your number of HTTP requests significantly.

16. Compress the content using apache .htaccess

If you have our own server you can chose to gzip all content sent to browsers. This will lower the loading time significantly as most html pages compress very well.

Add this code to your .htaccess

AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript application/x-javascript application/x-httpd-php application/rss+xml application/atom_xml text/javascript

17. Create expires headers

Expire headers tell the browser how long it should keep the content in cache. Most of the images on your site never change and it is good idea to keep them cached locally.

Here is a recommended setting:

Header unset Pragma
FileETag None
Header unset ETag
 
# 1 YEAR

Header set Cache-Control "public"
Header set Expires "Thu, 15 Apr 2010 20:00:00 GMT"
Header unset Last-Modified
 
# 2 HOURS

Header set Cache-Control "max-age=7200, must-revalidate"
 
# CACHED FOREVER
# MOD_REWRITE TO RENAME EVERY CHANGE

Header set Cache-Control "public"
Header set Expires "Thu, 15 Apr 2010 20:00:00 GMT"
Header unset Last-Modified

Use cacheability engine to check your cache configuration.

18. Cache Gravatars

Many blogs use Gravatars, the little images next to your comments. However gravatars have two big flaws in regards to site optimization:

  • Every gravatar image is a new HTTP requests even if same image is loaded (page with 100 comments would have 100 additional HTTP requests)
  • Gravatar images do not contain expire headers

What we can do is create a local gravatar cache, where images would be cached and served from our site. Ideally you would place the gravatar cache on a separate subdomain (see first heading).

I use a plugin from Zenpax.com which allows all gravatars to be cached locally.

19. Optimize the images with smush.it

It is often overlooked that your images can be optimized (made smaller) which can significantly reduce loading times.

Wouldn't it be perfect if you could open a site, press a button in your browser and get all images on the site optimized and made available in a single zip file. That is possible thanks to smush.it and their Firefox plugin. It is amazing how effective this is!

20. CSS on top, JavaScript on bottom

It is golden practice to put CSS files on top of the page so they are loaded first. JavaScript files should be placed on the bottom of the page (when possible). I have created a simple plugin which will move the properly registered JavaScript files to the bottom of your pages. The plugin is called Footer javaScript.

Conclusion

Modern webservers and websites have grown to depend on many different factors.

This article covered various approaches to optimization from system level apache, PHP and MySQL changes to settings within your WordPress.

I hope following this guide will help you create a fast and responsive WordPress based site.

115 Comments

  1. Touren tourendatenbank.com
    Jan 3rd, 2010

    thank you very much for sharing these useful "acceleration" hints ;-)

  2. Zyklon bezproblemweb.ru
    Dec 17th, 2009

    Thank you for done work!
    You toilled exactly not in vain. Many Your recommendations on optimization I helped.

  3. Paul Kaiser goodstand.com
    Dec 14th, 2009

    Fantastic, thanks for this article. I find that when clients use some "Theme Framework" templates like "Thesis," you have to experiment more to see what works. Your suggestion of W3 Total Cache seems to work best for this particular install of Thesis on a Hostgator shared server. Just in my opinion.

  4. Axo.R juegos.gs
    Dec 11th, 2009

    Thanks especially for W3 Total Cache, it's working nice on my site for the moment, i'm satisfied with this plugin. I appreciate your article and wish you all the best.

  5. Dominik dominik-ulbricht.de
    Oct 20th, 2009

    Hello,

    thanks for this useful article. It's help to speed-up my Wordpress and now I can work fast ;)
    More time for breaks :)

  6. 24Seven webbosphere.com
    Oct 7th, 2009

    Wasn't aware of the Vista possibility you mention. Will implement some of the things you suggest here and let you know how it goes. Thanks for the info!

  7. Wyniki na zywo e-scores.info
    Oct 3rd, 2009

    Thank You very much for so useful post. :) Now I'm working at optimize my WP.

  8. WPclassifieds.net wpclassifieds.net
    Oct 1st, 2009

    Thank you for these interesting tips. Great Article , i will use your tips and let you know if my blog is running faste

  9. Jef somebodysomeone.org
    Sep 28th, 2009

    Nice tips, everyone should look at this...

  10. Dr. Laser fractionalc02.com
    Sep 7th, 2009

    I am thinking of making one of my sites http://fractionalc02.com have cached pages by using the wp-cache plugin as indicated above. I am wondering if there are any downsides to this as I am not worried about resource allocation as that is not currently an issue for me.

    Thanks,
    Dr. L

  11. Thomas homeboy05.de
    Jul 24th, 2009

    Thank you for these interesting tips.

  12. RED foxwebcreations.com
    Jul 10th, 2009

    Great Article , i will use your tips and let you know if my blog is running faster.

  13. Vladimir prelovac.com
    Jul 2nd, 2009

    I didn't, 149 comments with their own gravatar images did.

  14. I83 Design i83design.com
    Jul 2nd, 2009

    This is a great list but I am confused, according to your number one rule, 100K or less, this page is showing as a grade of C with 229K. Is there a reason why you exceed your own suggestion?

  15. Guillermo Lopez itsguilletime.com
    Jun 30th, 2009

    Very useful article, thanks!

  16. explaisntuff explainstuff.com
    Jun 26th, 2009

    Thanks a lot vladimir! Very well composed and systematic explanation of each point mentioned.

  17. kazama blog.wordthai.com
    Jun 26th, 2009

    very good tips. One of my wordpress web is very slow. I will try yslow plugin first.

  18. Sathyavrathan PK smartadmin.in
    Jun 24th, 2009

    A very useful article...thanks for sharing....!

  19. Bekleidung modeindex.com
    Jun 4th, 2009

    those are bunch of helpful tips,
    I never knew about smush.it,wp-dbmaneger will try most of them which i can and see what Difference in my blog i can see, Hope my blog Gets Fast

  20. Cappadocia turkeycappadocia.net
    May 31st, 2009

    This is useful especially for beginner like me

  21. Eglence dengesiz.biz
    May 31st, 2009

    Good one. Been using some others of Lester Chan's great bunch of plugins but will now try out his DB manager.

  22. Kırtasiye file.com.tr
    May 24th, 2009

    Very like WordPress Optimization

  23. Diyet bukadar.com
    May 19th, 2009

    nice tips thx

  24. tagecho se seagull bangkokgreet.com
    May 17th, 2009

    Got the Guide thanks.

  25. Harsh Agrawal shoutmeloud.com
    May 17th, 2009

    Great tips. My dreamhost Crashed and they pointed my to this post to optimize my wordpress. I will certainly make changes as mentioned.

  26. Strangely strangelyperfect.tv
    Apr 29th, 2009

    Thanks for all these tips Vladimir. You've give me quite a few pointers to work through... For tables optimisation, I've used a plugin called WP-Optimize that works fine for me! I used to go into phpAdmin but this does the job quicker. It does a few other tricks as well.

  27. David Harrington complainypants.com
    Apr 24th, 2009

    Vladimir: Thanks again! Not only is your page incredibly helpful, but your comments are really helpful too.

  28. Vladimir prelovac.com
    Apr 24th, 2009

    david:
    1. Is it better for my server's speed/health to manually edit the code and use Google Ajax Libraries or to use the plugins for Wordpress?

    Always better to use plugins for flexibility.

    2. If I am using Yslow and a CDN and Google Libraries, it looks like I get penalized in Yslow for multiple DNS lookups. Is there a way around this?

    It's a matter of balancing these out but typically dns lookups are very fast.

    3. Is there a good way to add Sharethis to my Wordpress blog that won't screw up Yslow?

    yeah, make your own icons and submit links.

  29. John Zoum
    Apr 23rd, 2009

    Vladimir,

    thanks for these tips. I am going to experiment with the caching options you have suggested. Appreciated amigo.

    -John

  30. David Harrington complainypants.com
    Apr 21st, 2009

    Thanks so much for this guide. I've used your tips to get my Yslow rating much higher. (At the moment some of the options are turned off while I use an outside programmer for something else, so don't judge me.)

    A few things I discovered and wanted to add:

    * Those of us on Bluehost will have a harder time installing eaccelerator. There is a good guide here:
    http://rk.md/2008/eaccel-bluehost/

    * I've discovered that Google App Engine is a wonderful CDN tool, and it should be cheap even if my site happens to take off. I don't know any Python, but it's a snap if you install the Google App Engine launcher (I use the Mac program) and combine it with the instructions at: http://24ways.org/2008/using-google-app-engine-as-your-own-cdn. Then you can start offloading images and scripts to appspot.com.

    * Finally, Google Ajax Libraries can also offload a lot of content: http://code.google.com/apis/ajaxlibs/. Wordpress even has plugins that will do this.

    A few questions:

    1. Is it better for my server's speed/health to manually edit the code and use Google Ajax Libraries or to use the plugins for Wordpress?

    2. If I am using Yslow and a CDN and Google Libraries, it looks like I get penalized in Yslow for multiple DNS lookups. Is there a way around this?

    3. Is there a good way to add Sharethis to my Wordpress blog that won't screw up Yslow?

    Thanks! I am such a novice at this but I want to be a nerd.

  31. 24Seven 247webpros.com
    Apr 7th, 2009

    Hope you don't mind but we've added you as source for good info on our site ... it only makes sense!

  32. ashly frontpageyou.co.uk
    Mar 29th, 2009

    wow, excellent blog post. Some super information here to optimise and speed up any wordpress blog! I suppose one thing to make sure is alos to have a good web host too! I have had lots of issues with this before!

  33. Vladimir prelovac.com
    Mar 26th, 2009

    That's a fair point Marc, however the content on this page gets low score because of external resources over which I have no control of (digg, gravatar etc.) My home page has score 83 and is failing to reach 90 only because the CDN is not on yahoo server - the only cdn yslow recognizes. Other losses are due to wordpress plugins, and its a matter of balancing usability and convenience with speed.

  34. Marc bigbie.net
    Mar 26th, 2009

    Regarding YSlow. I'll play with it a while longer but I have looked at many sites, including this one, that have the "Top XX Recommendations on Speeding up a WP Site" and frankly they all fail the YSlow test miserably. Are you/they all not taking their own advice or is YSlow really useful at all?

  35. NJ SEO webdesignworkplace.com
    Mar 22nd, 2009

    Thanks Vlad... the Yslow tip is really fantastic. I've been using an online site for years and I always wondered what would happen if that site went away. But with Yslow bolting right onto Firebug it's convenient... always a click away. No worries now. Cheers -

  36. Session sessionmagazine.com
    Mar 21st, 2009

    Than you for these tips. I just rented new dedicated server and I optimized my wordpress and server by your tips.

    Now I had upload of 90mbps!!! and my memory was just 20% taken, load was up to 3 and my server worked like a charm!

    Greetings from Serbia! ;)

  37. Rishi rk.md
    Mar 21st, 2009

    Fantastic guide! A real "Bible" in WordPress optimization. Just as a side note, I've noticed better performance with the XCache PHP opcode cacher in place of eAccelerator. :-)

  38. Victor crazyxhtml.com
    Mar 20th, 2009

    thanks! very interesting....

    but i don't understand how to Create expires headers

  39. Steve Adams 316design.com
    Mar 19th, 2009

    Great article! Thank you for putting this together. I will implement them on all future projetcs. When time allows, I will go back and update previous sites.

    Thx,
    Steve

  40. kovshenin kovshenin.com
    Mar 16th, 2009

    Good points you got there. Thanks!

  41. blogger makemoneylink.blogspot.com
    Mar 13th, 2009

    very good post thx

  42. blogger blog-blogspot.com
    Mar 13th, 2009

    nice tips thx

  43. blogger blog-blogspot.com
    Mar 6th, 2009

    Good job man. Very value article

  44. Seo en-wordpress.com
    Mar 6th, 2009

    thx man for tips

  45. Marcos mediaproweb.com
    Feb 18th, 2009

    Very value article.And importants points to optimize our sites. Thanks.

  46. Anthony Lepki anthony.lepki.ca
    Feb 11th, 2009

    This post is an absolute keeper with technical tips most people would not even consider on using with their WordPress blogs. My concern is alway to optimize my blogs for performance, glad to see others are writing about this. Thanks

  47. Jason 1001words.com
    Feb 5th, 2009

    Amazing guide. Thanks for creating it.

  48. Pupsor pupsor.com
    Jan 27th, 2009

    Good job! I'll use it for mysql. But i have one question about webserver. What do you think about nginx or lighthttp? it can be help me with many http requests, is it right?

  49. Keith Collantine f1fanatic.co.uk
    Jan 26th, 2009

    Excellent compilation of tips, Vladimir! However the link to Firebug has a typo in it...

  50. jhesqi dotnewbie.com
    Jan 8th, 2009

    Nice post. I will certainly make adjustments on my own website. Kudos!

  51. GM fithbiz.com
    Jan 7th, 2009

    These is a Great Guide. I'm so lazy and really just wish that i could do this with an automated script.

    Makes me think, if somebody create a Wordpress optimizer Plugin, can you imagine the Response?

  52. Bob Hitching hitching.net
    Jan 3rd, 2009

    Great info, thanks. Minor point, but I think you might have a typo in your #13 code snippet; the final 't' is missing from text/javascript.

  53. Hisham mylifethinking.com
    Dec 13th, 2008

    Great article with lots of information, helped me to solve some problem, thanks for sharing.

  54. rajaotai rajaotai.co.cc
    Dec 12th, 2008

    cool. i like this

  55. Money Ideas moneyideas.us
    Dec 10th, 2008

    Wooow, great guide man! Thanks.

  56. kabarmadura kabarmadura.com
    Nov 24th, 2008

    great ... thanks
    increase my weblog performance

    thanks for sharing

  57. cls500 yourliferegained.com
    Nov 24th, 2008

    How about optimization in a hosted environment? I use GoDaddy.com for my blog and don't have the ability to add additional software or run commands.

  58. hamdan bukujurnal.com
    Nov 22nd, 2008

    oh, and how about flash content? it surely eat up bandwidth, isn't it??

  59. hamdan bukujurnal.com
    Nov 22nd, 2008

    Thank you for the tips. I just realize that popularity contest will reduce the wp performance. And I will implement wp super cache too.
    It should be noted though that traceroute or ping should be run from some different sources to determine the speed or loading time of the wordpress installed more accurately.

  60. Vladimir prelovac.com
    Nov 21st, 2008

    Rewritten it today give it a try ;)

  61. Jürgen Wagner danet.com
    Nov 21st, 2008

    Nice article, however, it covers the more obvious items only... plus, one of the culprits of making my blog extremely slow in page display was your SEO Automatic Links plugin ;-) With a large number of tags and categories, the replacement process is by far too inefficient and requires to many iterations on costly string manipulations. I'll try to rewrite that some time.

    Cheers,
    --Jürgen

  62. Hem squidoo.com
    Nov 17th, 2008

    Really great article.... Very much informative

  63. Kasumi kasumiseo.co.uk
    Nov 17th, 2008

    Very useful optimisation guide Vladimir

  64. steve w smallbusinessvoodoo.com
    Nov 16th, 2008

    Fantastic posting. Deleting post revisions particularly helpful. Thanks.

  65. Rocio ars-legalconsulting.es
    Nov 16th, 2008

    Thanks for the point 6. "Turn off Post Revisions"

    Is great for my dabatbase performance and size.

    Salutatins

  66. photoTristan tristantom.com
    Nov 16th, 2008

    PS, the deleting revisions should be double quotes around the word revision not single quotes as above. At least that is what worked for me.

  67. photoTristan tristantom.com
    Nov 15th, 2008

    @Yannick - Most shared hosting plans will not let you do all that is mentioned in this post. You would need a dedicated or (virtual dedicated server) which costs more.

  68. DemoGeek demogeek.com
    Nov 14th, 2008

    The tip about revisions really helped. It reduced my DB size by almost 40%. Great article.

  69. Nunzio laguidainformatica.it
    Nov 14th, 2008

    Great work!

  70. Fastlane MJ thefastlanetomillions.com
    Nov 14th, 2008

    Excellent article ... was having some stalling issues with my WP site and this helped me isolate the problem.

  71. top free hosting topfreehosting.22web.net
    Nov 14th, 2008

    i use the cache plugins too...

  72. statistic blog jokosupriyanto.com
    Nov 14th, 2008

    wow nice tips bro

  73. Jaki arrowrootmedia.com
    Nov 13th, 2008

    This is really, really helpful. I'm sure you took quite a bit of time to actually compile this. This kind of stuff only comes with experience, so thanks for sharing!

  74. Amit amitnyamtabad.com
    Nov 13th, 2008

    Brilliant post there buddy, I know that wordpress is not the out of the box solution but this one will surely help a lot.

  75. Lisa
    Nov 13th, 2008

    Holy cow! Just from removing all the revisions, my post database went from almost 700 lines down to 300. Thanks for the code to shut revisions off.

  76. sunder searchandhra.com
    Nov 13th, 2008

    this is one of the best article i read about wordpress optimization, for the caching side try for 1bolgcher for best results

  77. Justin soloengine.com
    Nov 13th, 2008

    Kudos. A very well researched and crisply writtenarticle.

  78. Darjeeling Info darjeelinginformation.com
    Nov 13th, 2008

    Great tips, helped me optimize mine.

  79. Tinh vietblogviet.com
    Nov 13th, 2008

    great tips, thanks for sharing these tips. Tinh

  80. Michael Perry sisnv.net
    Nov 13th, 2008

    Thank you very much for these great recommendations.

    Tips 3, 6 and 10 appear to be gems; all of these tips are diamonds.

    Appreciate the insights...

    Michael G Perry
    Las Vegas, Nevada

  81. byme websitegue.co.cc
    Nov 13th, 2008

    Nice info brother,
    cool
    byme

  82. Yannick mafiarose.com
    Nov 13th, 2008

    Thanks for you guide (sorry for my english).

    Do you have a suggesion for the best web hosting provider. I have a accunt on MediaTemple but if I want control the MySQL process, MediaTemple charge a big price (for a smal blog :-) ).

    Thanks again.

  83. wolkanca blog.wolkanca.com
    Nov 13th, 2008

    thanks very useful tips for wordpress blogger.

  84. Hisham mylifethinking.com
    Nov 12th, 2008

    Thanks for the useful information!

  85. Internet Business Blogger internetbusinessblogger.com
    Nov 12th, 2008

    Great tips. I have not had problems with this kind of problem really since I moved from Movable Type.

    The one plugin that still does cause me a problem though is SRG Clean Archives. As much as I love the plugin it really is a bit of a load on posting and I would constantly get errors wehn posting to a blog where there is a lot off posts (500+ posts).

  86. Velvet Blues velvetblues.com
    Nov 12th, 2008

    Great tips. We just started using caching plugins ourselves, and have noticed huge improvements over all of our blogs, especially on those that are hosted on bad web hosts.

  87. Ext JS for Beginners 1018-media.com
    Nov 12th, 2008

    Hey!
    These are some really great tips, I especially like the caching one, and the post revision one.
    I use the source code plugins so making sure that your post looks right requires a lot of "Save" > "Preview" which I'm guessing from what you've written will be creating a lot of revision style posts...and on a shared host like you mention would slow the queries right down!

    I'm just heading over to my blog now to implement some caching and delete revision posts now. Thanks for the tips!!!

    Take Care

    James

  88. Science Tech News sci-technews.com
    Nov 12th, 2008

    Really nice tips. I found my site's problem. I'll change my hosting provider.

  89. Vladimir prelovac.com
    Nov 12th, 2008

    Great work deserves credit :P

  90. GaMerZ lesterchan.net
    Nov 12th, 2008

    Thanks for including my WP-DBManager to the list =D

  91. Umut webresourcesdepot.com
    Nov 12th, 2008

    This was really very helpful. Thanks.

  92. Jaems jaems.org
    Nov 12th, 2008

    This was really helpful!!

  93. Banago wplancer.com
    Nov 12th, 2008

    This is a great post. Thanks for writing it and sharing with us.

  94. Michael popcornconfessions.com
    Nov 12th, 2008

    A lot of these tips really require you to have access to low level things, having either a server or a virtual private server. That's not a huge deal, since you can get a vps for close to the same price as shared hosting these days.

    Along the same lines, if you do have access to control the server, you may forgo apache altogether in favor of a lightweight server like nginx or lighttpd.

  95. Jay Kishor gameconsolesuk.blogspot.com
    Nov 12th, 2008

    I liked most "MySQL" tips. I think it is major part in the WordPress optimization. All tips are well informative and nice.

    Thanks
    http://blogs.ibibo.com/mybiography/

  96. sarpras articles2u.com
    Nov 12th, 2008

    very useful tips for wordpress blogger.

    I run tracert http://www.articles2u.com

    19. 320ms 320ms 328ms 64.22.101.2006

    My Connection is fast? - Help me

  97. Midnight midnightclublosangelescheats.com
    Nov 12th, 2008

    Very useful tips, definitely bookmark worthy.

  98. wynddell-kingdom303 kingdom303.blogspot.com
    Nov 12th, 2008

    This is what I've been looking for to help in my blogging.

  99. matt articlesnatch.com
    Nov 12th, 2008

    thanks for the tips. I had heard of a few of these before - but several I had never considered. thanks again! it was good read.

  100. Rajeev Edmonds mintblogger.com
    Nov 12th, 2008

    These methods definitely speed up and optimize the Wordpress installation. Thanks for sharing.

  101. WordsnCollision inventorspot.com
    Nov 12th, 2008

    WordPress is an exceptional platform and these tips are a huge help to people who want to exploit it to the fullest. Thanks for taking the time to provide the details.

  102. BOB
    Nov 12th, 2008

    Так хочется эти же типы только на русском =(

  103. Rob sunrayzzimports.com
    Nov 12th, 2008

    Great stuff here. I've been struggling with my blogs as of late, trying to speed them up and this really helped.

  104. UK TV Guide uk-tv-guide.com
    Nov 12th, 2008

    I didn't know about WP-DBManager, thanks. Nice list.

  105. JamesSpratt.org jamesspratt.org
    Nov 12th, 2008

    Good one. Been using some others of Lester Chan's great bunch of plugins but will now try out his DB manager.

    Cheers Vlad.

    James

    http://jamesspratt.org/

  106. John MAson
    Nov 12th, 2008

    Wow dude, excellent tips. Thanks for sharing them.

    Jess
    http://www.anolite.echoz.com

  107. John Baker johnbakersblog.co.uk
    Nov 12th, 2008

    OK, that's given me some work to do. Thanks, a great article with really useful info.

  108. Stuart Foster thelostjacket.com
    Nov 12th, 2008

    Great advice...especially for a relative Wordpress noob like myself. I just started hosting my own site on GoDaddy, after having it exist for a long time (without CSS access on Wordpress's own server). Great advice, and I will definitely be applying it to my blog. Thanks!

  109. Ariejan de Vroom ariejan.net
    Nov 12th, 2008

    Also check my article on how to digg-proof your Wordpress blog.

    Making your blog digg-proof not only means you are better suited to survive when your site hits the digg frontpage, it also means that page load times in general drop down a lot!

    http://ariejan.net/2008/07/09/how-to-digg-proof-your-wordpress-blog/

  110. Yong Hwee thesecondpress.com
    Nov 12th, 2008

    Dude, these tips are awesome! Congrats on making the Digg frontpage..

  111. Gurgaon hotgurgaon.com
    Nov 12th, 2008

    NIce information about word press blogging thanks!!!!

  112. whlooi bsl5.com
    Nov 12th, 2008

    This is useful especially for beginner like me. Thanks for putting this up. ^^; For the WP on shared hosting, once may opt for dedicated IP. It helps.

  113. Ivan | Irish Blogger ivan.irishblogger.ie
    Nov 11th, 2008

    Also check as much as you can before purchasing your hosting account. That is especially true with Shared Hosting. Google their company names for the user reviews...

    Ivan | http://www.IrishBlogger.ie

  114. Dee tripmadam.com
    Nov 11th, 2008

    Thank you so much for these interesting and usefull tips. Especially 6 (didn't know you could turn it of), 9 & 10. Keep up the good work!

  115. usrbingeek newdealfinder.com
    Nov 11th, 2008

    Don't you mean single quotes on: define('WP_POST_REVISIONS', false);

    and wouldn't you need single quotes on this too?
    DELETE FROM wp_posts WHERE post_type = 'revision';

Have your say

Your email is never published nor shared. Required fields are marked *

*
*

Subscribe without commenting

About Vladimir

vladimir prelovac Hi! My name is Vladimir Prelovac. I am a computer engineer by profession and an adventurer by state of mind.

"I would love to change the world, I just don't have the source code yet."

Books by Vladimir

WordPress Plugin Devleopment Book WordPress Plugin Development: Beginner's Guide

Published by Packt Publishing, available online through Amazon. Click the image for more information.

Consulting Services

Professional WordPress Services, including custom developed plugins and themes

Expert on-site WordPress SEO consulting and an 'out-of-the-box thinking' approach to problems