I was particularly interested in attending the WordPress Optimization session presented by Ben Metcalfe of WP Engine during WordCamp Philly. Considering that most of our end-users are on shared hosting and not well-versed on technical jargon, it’s common to receive questions on the support forums related to slow sites / servers / and optimization tips.
Ben provided a list of to-dos for WordPress optimization. Some are a bit technical and you may need a server admin to perform them, however others are do-able right from within WordPress. If I find a link to Ben’s presentation online, I’ll be sure to link directly to it. For now, here’s the quick list to consider depending on your setup and circumstances:
For all users:
- Keep WP Updated – Always stay updated.
- Use a Cache Plugin – WP Super Cache or W3 Total Cache work for most users. Even WordPress.com uses a cache plugin.
- Deactivate Unused Plugins – If you have plugins you are not using, deactivate them. If you’re sure you do not need them, delete the plugins. Note that in some cases, even if a plugin is deactivated, it may still be loaded into memory. In short, be a neat-freak about your plugins.
- Avoid Bad Plugins – I provide a list of some of these on the support forums.
- Hosting – Check your hosting solution. Who is on your server? Use YouGetSignal’s Reverse IP Lookup if you wish to see other sites on your site. If you have non-kosher sites on the same server, ask your host to move you to another one. If you have a thousand other sites on your server, you have quite a packed server (or said differently, a terrible host).
- Offloading (poor-man’s CDN) – If you have the ability to offload your images or other large files (videos, etc.), do it. Flickr is a great solution for serving images.
- Feedburn your RSS Feed – Let Google’s FeedBurner handle your feed. Check your logs to see how many requests are made to your /feed url.
- Repair your MySQL Database – Be consistent in repairing your MySQL database. Once a month is fine for most users.
- OptimizeDB plugin by Joost does this for you without any overhead
- Use PHPMyAdmin – only if you are tech and db-savvy
- Manually – only if you are tech and db-savvy
- Load from Multiple Sub-domains – To bypass limits on simultaneous processing, if you understand domain mapping and server administration, then look into using multiple sub-domains for serving files. Even better, try using different domains.
- Browser Caching – W3 Total Cache will take care of this – HTTP cache-control, expires header, and entitry tags.
For Advanced Users and High Traffic Sites:
- Log Slow MySQL Queries – check your logs! What’s taking the most time? Dig into it.
Good How To:
Check Site with Profile Tools- use any of the tools below to dig into your site’s performance.
- CDN – Use a CDN. It can be used all the time – OR – just in “emergencies.”
- MaxCDN (used by WP Engine)
- Amazon CloudFront
- Smush Images – Let’s face it – you don’t sit there and optimize every image before uploading it to your site. The plugin below will do it for you.
- APC / Opcode cache – PHP-APC + W3-Total-Cache
- Apache Optimization – your server admin should be able to optimize your Apache server. When possible, disable .htaccess and use httpd.conf instead (central library that Apache uses). Do NOT attempt this unless you know what you are doing! It is not for beginners.
- Dedicated MySQLDB Box – Consider moving your MySQLDB Box to another server in the same data center.
- Reverse-proxy with nginx – Run Apache on port 8080. Cache static pages.
- Varnish Cache – Ideally, do not run Varnish on port 80 (even though some tutorials tell you to do so on port 80). Varnish cache doesn’t like cookies. Send cookies to nginx.
- Memcache – Ideally, run Memcache on a separate box in the same datacenter under the same subnet.
- HyperDB – multiple database servers – not intended for the standard user.
- Static Site on Amazon S3 – If you can generate your site as static pages, Amazon can host them. Do not do this if your site requires any dynamic widgets or data processing.
Finally, here’s something that should be reinforced by everyone, do not edit WordPress core files. It’s not good practice and will be overwritten when you upgrade your WP installation.
Now, go optimize your site!
- WpEngine is a very special hosting company that focuses only on WordPress hosting, where the support is provided by WordPress experts.
- Shared Hosting – HostGator to clients who are getting started or have growing sites.
So you acquired a domain name, and are now looking at web hosting providers for your WordPress sites. With all the different choices and providers out there, where should you start your search for the best web hosting? In this article, we explain the various types of hosting, features to consider, and provide a few recommendations.
Continue reading »
If you’re reading this then you want to know how to buy a domain name. Acquiring a great domain name is the first step in building a web site. It’s also one of the easiest things to do online – even for beginners with no technical knowledge.
- Do Keyword Research. If you plan on building a web site related to horse riding, then you’ll want to research the keywords in Google and check out your competition. Based on your research, determine what keywords you plan on targeting for search results and choose the domain name that best reflects your topic. Tip: It’s a good idea to have your keyword in your domain name for ranking purposes. This is not absolutely necessary, but definitely helps.
- Choose the proper top-level domain or TLD. In other words, the suffix of your domain (i.e., .com, .net, .org, .info, etc). If your business is in the United States, then you should use .com as your domain. Most users assume domains end with a .com, so that should be your first preference. If .com is not available, only then would I recommend .net. The .org TLD is reserved for nonprofits. Stick to these TLDs and avoid the rest.
- Check the domain name history. Google for previously indexed pages or any negative backlinks. You want to start with a clean slate.
Continue reading »
Here is a sample HTML code to generate a proper list:
<li>Naming a Business or Product</li>
<li>Distribution of Print Media</li>
<li>Logo and Identity Design</li>
<li>Advertising campaign setup</li>
<li>Search Engine Optimization</li>
One of the major change of WordPress 2.5 was to remove the IDs on all admin pages. The reason of removing ID’s from admin pages was probably due to the fact that the common user don’t need them but since our templates are magazine/news style where we do have multiple loops on main pages, we will need to check category ID’s in order to set our templates.
If your browser shows the URL in the status bar, you can see the ID number when you mouse over the category link. If the status bar is disabled, you can activate it by checking the Status bar choice under View on both Firefox and Internet Explorer.
Continue reading »