Choosing WordPress Hosting
For most people, managed hosting is a good choice. Managed WordPress hosts take care of most of the complexity for you for a small premium. If you’re a technologist or a do it yourselfer, then you may want to self host on your own virtual server.
I recommend WPEngine for most clients but there are many options:
- WordPress.com – The professional hosting brand for WordPress’ creator, Automattic
- WPEngine – Managed WordPress hosting company
- Page.ly – Managed WordPress hosting company
If you decide that you want more control and efficiency than a WordPress-oriented host such as WPEngine or WordPress.com can provide, you’ll need to look at self-hosting your website. You’ll either need deeper technical skills or you’ll need to hire someone who can help configure, secure and maintain your server.
WordPress.org & the WordPress Codex provide the code and documentation for the self-hosted version of WordPress.
In the past, you might pay for a shared or dedicated server account at a hosting company, however, cloud computing has completely changed this landscape.
I recommend that clients use cloud-based services because of their affordability, scalability and flexibility. Places such as Amazon AWS, Digital Ocean, Linode or RackSpace all offer scalable Linux-based cloud services that can be configured to run WordPress or almost any other content management system.
Some of the key issues you’ll want to screen and manage for are:
- Security. Does the host have an effective firewall to block denial of service (DOS) attacks or brute force login attacks? Are they proactive or reactive?
- Performance. How fast is the services provided for the cost?
- Reliability. How reliable are all aspects of the hosts services from electric power, to hardware redundancy e.g. hot swapping a failed hard drive, etc.
- Redundancy. If one element fails, how much redundancy is built in to the host’s systems?
- Affordability. How much does it cost for an effective installation.
- Scalability. How scalable is your website over time? How expandable? Can you scale up and down according to short term needs.
- Manageability. How easy or hard is it to work with the host’s systems? Do you have root access to your server?
- Support response and effectiveness. By far the most important issue is how do you get help when things go wrong. How long does it take the host to respond? Is support provided 7 x 24? Do they effectively and fully answer questions? Do they try to solve problems or just close tickets? Are they customer focused? Do they seem to care about your up-time?
How complicated is running your own server? Skim through my tutorial on setting up WordPress in the Amazon AWS cloud to get an idea. You’re likely going to want to hire a consultant or system administrator to assist you.
Using a CDN such as Amazon CloudFront can also help distribute the load on your server and provide higher performance and increased redundancy. If you’re using WordPress, a plugin such as W3TC is critical to make use of the CDN.
I recommend monitoring services to alert you when your web site goes down. It’s important to monitor for a variety of factors e.g. is the web page available? does it have the expected content? is the database connected? are the background tasks running? is there enough free disk space? is the CPU load too high? etc. You can customize my do it yourself monitoring solution or use a paid service such as ScoutApp.
And, I also recommend two tiers of backup mechanisms e.g. one in the cloud environment and one outside it; for WordPress, VaultPress.com might be a secondary backup.
It’s best to have at least one backup mechanism storing content outside of your primary host. VaultPress does this. But, you might also automate the transfer of your backups from your server to an outside service such as Amazon S3.
Please feel free to ask questions or post comments to this guide below. You can also reach me on Twitter @reifman or email me directly.
[button link=”/publishing-with-wordpress/sending-receiving-email/” size=”medium” variation=”red” textColor=”#ffffff” align=”right”]Continue…[/button]