Most web hosts do a very poor job at explaining what you can or cannot do. If you look at homepage of almost any host it looks like it doesn’t matter what plan you choose because they all promise you “unlimited” everything.
During my extensive research I found only a handful of web hosts who go a step further by including a tiny link that takes you to a page where they explain that their resources are rather finite and you actually do have restrictions. Examples of these brave companies include Site5 and DreamHost. The links look as if they hope you never click on them, but still their willingness to be more transparent than their colleagues is something I appreciate.
StableHost, the rising star of web hosting world, mentions bandwidth limits and suggestions like “Perfect for small businesses with low-traffic websites” or “Ideal for large websites that will have a lot of visitors”, which helps. SiteGround made it even easier and instead of bandwidth / disk space numbers offers approximate number of monthly visitors your site can receive with each plan, which is even better.
However the rest of hosts (or most of them anyway) explain these details in their terms and conditions, which of course we never read. This doesn’t mean they are bad hosts, they simply do this because everyone else does. Most customers are ignorant about these matters and will be turned off by restrictions.
In reality nothing is unlimited in web hosting world, which is understandable and is completely okay. The real issue is they won’t tell you what exactly your limits are. Even bandwidth and disk space numbers do not really help because there are many other metrics to consider, such as your database size, the number of database queries per hour, the number of simultaneous Apache connections and many other factors. You can have a low traffic website and still get suspended for consuming too many shared resources, making server unstable. Database-driven websites like WordPress are typically heavy and if you aren’t educating yourself you risk being suspended even with 50 visitors per day.
The experience of having your account suspended is no fun experience. You will typically receive an automated message, your website will go offline and will stay that way until you figure out what is causing the problem. This can take anywhere from a few hours to a couple of days to fix and if you aren’t technical you might just give up on your site altogether. If your website is actually a business you will be losing money every minute you are offline and if you don’t fix the problem quickly you might also lose your rankings in Google.
Optimizing your WordPress site
Obviously, prevention comes first. Here is how you can optimize your WordPress blog or website to consume minimum resources while being as functional as possible.
1. Keep plugins to minimum
You’ve heard this before – keep your plugins to minimum and I mean to vital minimum. If you are using Genesis you don’t need WordPress SEO by Yoast (or anyone else for that matter), you don’t need Google Analytics plugin or Statcounter plugin. If you aren’t using Genesis or something similar you can include Analytics right into your theme code – you don’t have to be very technical to do this. There are some people out there who love saying you don’t have to be technical to have a website, which is of course true but it’s not all there is to it. It is only a question of time when you run into technical issues and having a basic understanding of your website’s anatomy can prove very useful.
2. Clean up post revisions and optimize database
Wordpress has many awesome features, one of those is auto-save. One of my posts here had 286 revisions; if you think about it it’s like a site on its own. That is an exception of course, my typical post can have anywhere from 15 to 25 revisions, all saved in database. This means that over time the number of your autosaved posts will exceed the number of actual published posts on your blog or website, all saved in database. While WordPress doesn’t provide an option to clean up your database, there is plugin for that. Optimize database after deleting revisions (a descriptive name indeed) does an excellent job at that. It even allows you to schedule the work, but I think running a scheduled cleanup defeats the purpose of cleanup itself as we are cleaning up to save resources. Any scheduled work will consume considerable amount of your finite resources, so I suggest that every once in a while you install it, clean up, optimize your database and then delete this plugin. You can install it again in a couple of month for next cleanup.
3. Avoid most related posts plugins.
Most related posts plugins will waste resources as they usually generate related post information the moment user request a particular page. The bigger is your website and the more traffic you have, the slower and less efficient the whole process becomes. Unfortunately it is best to let these lovely thumbnails go, but the good news you don’t have to link your pages manually either. Efficient related posts plugin is designed to consume minimum resources. It doesn’t generate fancy thumbnails but it does its job without affecting the speed of your website or exceeding your limits.
Many web hosts will advise you to use cache plugins with WP Super Cache being their favorite. There is no doubt this plugin can do wonders in terms of resource usage and make your website a little faster, however I discovered a number of serious issues with this plugin, which is why I don’t suggest anyone to use this.
The issues I am talking about are duplicate content issues when any particular page will be accessible via different URLs. If you have a page with URL yoursite.com/page/ WP Super Cache will make it available at
yoursite.com/page (no slash at the end)
Now some say this doesn’t matter, however I don’t think anyone has a solid proof for that. I think anyone who relies on organic search should avoid issues like that and just because everyone is using it is not sufficient proof that it’s safe, because most websites don’t have traffic. Maybe a blogger with established readership who come from RSS readers and by entering his URL directly in the browser doesn’t care much, just as he doesn’t care when he publishes posts with titles like “Friday Thoughts”, but anyone who is about SEO should think twice before installing this.
Another popular option is W3 Total Cache, however it also has a problem with slash at the end of URLs and it is known to display random blank pages. Needless to say, I suggest to avoid this one too.
I tested several more cache plugins and they all seemed to have “slash” issue, however Hyper Cache Extended won’t mess up your URLs while saving your resources and making your website blazingly fast! Here is a screenshot from my Webmaster Tools. You can see how time spent downloading a page dropped after installing Hyper Cache Extended on one of my websites:
It is simple to configure and you will see improved speed very soon after installation (it needs a little bit of time to create cache).
In addition, there are some known offenders or plugins that are known to consume considerable amount of resources. Here is the list:
- most related posts plugins. WordPress Related Posts, YARPP and, I guess Related Posts by Zemanta as it seems to be a copy of WordPress Related Posts. I personally loved Zemanta, but had to let it go.
- WPRobot3 and other auto-posting plugins.
- all WordPress statistics plugins, including StatPress and WP Post Views. I personally was suspended after installing ManageWP Worker plugin because I wanted to use ManageWP uptime monitor. While my host didn’t point out any particular plugin, the timing suggests that ManageWP just caused the whole thing to spill over the brim.
- WP Post Views
-bbPress forums plugin, which I am still using on this site because there is no other solution. Any forum plugin will cause significant resource usage because it has to.
- all backup plugins
- all or most SEO plugins
What to do if your web hosting account is suspended
Typically your web host will suspend your account with no warning, because your website affects their other clients. In many cases you will just receive an automated email that only vaguely suggests where to look for the problem, which doesn’t really help especially if you aren’t technical. Sadly, this can happen in the midst of your advertising campaign where you are paying money for every click for your visitors only to bounce off 403 page. It can also happen when you are featured on a high-traffic website. It can also happen with only 50 visitors per day if you’re going crazy with plugins. The steps above are great for prevention, but what do you do if you are already suspended and need to find a quick solution?
First, you won’t be able to access your WordPress dashboard, so you need to navigate to your plugin folder via cPanel (hopefully you have one). Navigate to wp-content –> plugins and simply delete all unnecessary plugins or plugins that could cause high resource usage. Once you do, send your web host an email with description of what you have done and wait for their reply. If the problem was in plugins only they are likely to unsuspend your account. If this happens, sign in to your WordPress dashboard and do prevention steps above to optimize even further. This means:
- delete post revisions
- optimize databases
- install Hyper Cache Extended
Sometimes your website may become too heavy for shared hosting, i.e. you have too many visitors, so your web host will offer you another more expensive web hosting plan (VPS or dedicated server). If this is the case then there is nothing you can do except that you can shop around and see if you can get a better deal for VPS or dedicated server elsewhere.
Some hosts offer better customized plans where you still share resources with others but you can have a slightly higher traffic than with your old host. I had to move from Hostgator to Site5 for this reason. While I still love Hostgator, my websites outgrew its shared plans and instead of jumping straight to their VPS level 5 or dedicated server that would cost me at least $100 per month I am paying $40 per month for Site5 shared cloud Premium. In fact, after optimizing their charts suggest that I could even downgrade to a cheaper plan.
UPDATE: After cleaning up and optimizing even further I was able to switch to their Host Pro Turbo account which costs me less than $14 per month. Because my traffic continued to grow I think I will separate my websites and move one of them to another host to avoid paying for VPS. If you are going to continue building websites or blogs, educate yourself, it will safe you a lot of money.
What I love about Site5 the most is their transparency. While their charts are proprietary and show only relative numbers that cannot be compared to actual numbers used by other hosts, they still give you a good idea about how well you are doing and whether you are about to outgrow your hosting plan.
You can also take a look at StableHost Entrerprise web hosting plans too. They have an excellent reputation and seem to be more open about resources and limitations. Another good option for some will be GoGeek plan by SiteGround.
Jumping off the ship
Once again I want to stress that possibility of being suspended for excessive resource usage is a part of shared web hosting and without it we would be never able to host our websites for just a few dollars per month. The fact that your host has suspended you doesn’t make them a bad host. If they don’t practice this they will endanger websites of their customers, including yours.
Having said that, sometimes you might be already annoyed by your host for other reasons or find them slow to respond while you are losing money for every minute offline. If this is your case, you can delete all unnecessary plugins as described above and quickly move your website somewhere else. You won’t be suspended immediately as you already made your website lighter by deleting plugins and you will have a little bit of time to optimize things. Moving WordPress website isn’t hard and doesn’t require more than an hour in most cases. DNS propagate very fast these days, so you can be online again within less than two hours.
This doesn’t have to be a final commitment to your new host. Many offer monthly payment plans or/and give 30-90 days money back guarantees. Site5 offers a free trial for 30 days. In case you don’t like your new host you can pay just for this one month and move again. It still makes sense because you will be online sooner, win some time to optimize things and research other web hosts. In addition, most web hosts will offer free file transfer (takes them 1-3 days) so you don’t have to do this yourself again.
This of course suggests that you know how to move WordPress website. There are many tutorials online and some of them are more confusing than they have to be. I strongly suggest that you learn how to transfer WordPress website before you find yourself in this situation and if possible practice that too. Many web hosts will move your website for free but this can take anywhere from one to three days. If you are suspended and your host is slow to reply your emails you need to move immediately, which means you have to do it yourself. I will share my own way of transferring WordPress website in the nearest future.