So finally you've decided to switch to self-hosted WordPress blog and now looking for a good web host! Well, there are hundreds and hundreds of web hosting providers with tons of hosting plans. I'm not going to recommend any web host in this article nor am I going to compare their hosting plans with each other. Instead of that, we're going to discuss about some of the most important technical requirements that must be checked before signing up for any hosting plan. Almost all of the topics discussed here are generally for shared web server as it the most common type of web hosting that powers large number of WordPress blogs.
Check LAMP Stack VersionThe most common software stack used to host WordPress is Linux, Apache, MySQL and PHP. There are several other alternatives to Apache web server that are used by some of the hosting providers like Nginx and Lighttpd.
To know about the latest PHP and MySQL versions that are required to host a WordPress blog, you can visit this link which is regularly updated as new WordPress versions are released for general usage. Before you sign up for any hosting plan, make sure their LAMP stack is up-to-date and satisfy the minimum hosting requirements.
Check Availability of Important Apache ModulesApache modules can be compared with WordPress plugins. They simply extend the functionality of a typical Apache web server configuration. These modules are compiled separately and are generally loaded after the core is booted and is in active state.
A typical WordPress installation runs fine with the default Apache web server configuration. But to completely leverage the power of this platform as well as for adding some extra features, you need additional Apache modules enabled on your web server. Here's a list of some of the important ones.
- mod_rewrite - This is one of the most important extensions that must be available on your web server for proper functioning of WordPress. We all know the benefits of optimized permalinks available in WordPress. If you want to use them, this Apache module must be active.
- mod_access - This module is necessary if you want to restrict access to your WordPress dashboard except from your own IP address. We generally do it through .htaccess file which internally uses this module to keep check on IP-based access for admin dashboard.
- mod_auth - If you want to create password protected folders this Apache module must be available on your web server. Absence of this module restricts creation of secure password protected directories that are very useful in different circumstances.
- mod_expires - This important module is used by several caching plugins. Although these caching plugins can work without this module but you may not get the performance and the desired results.
- mod_headers - Quite similar to the previous module, this one also aids in better cache management. Both of these modules must be present on your web server to fully leverage the power of popular caching plugins used by WordPress bloggers.
- mod_deflate - This module is also necessary to speed up your WordPress blog. It compresses different types of files (objects) hosted on your web server before sending them to the visitor's browser.
Check Maximum CPU Cycles Allowed (Per/hour & Per/month)You must have noticed that I'm not talking about bandwidth and disk space. The reason is very simple, because these two criteria don’t need any discussion. Yes, you read it right - both bandwidth and disk space is given in generous amount in almost every popular shared hosting plan. In fact, nowadays there is a trend of putting 'unlimited' in front of both these parameters which is actually a mirage for unaware users.
What matters most is the amount of server resources allowed for your account - both on per hour and per month basis. The most important resource is CPU share (CPU cycles). As traffic starts to grow so does the amount of CPU cycles and at some point of time bloggers may find their account suspended with a reason stating that their websites' resources consumption is very high. In most cases, the only solution suggested by the official support is upgrade to a more expensive plan. All claims of providing unlimited bandwidth and disk space vanish in air within a second.
Whenever you're purchasing a shared hosting plan, clearly inquire about the number of CPU cycles allowed per hour. Also make sure that they're providing tracking of CPU consumption from within the dashboard so that you can make necessary changes to lessen the impact on your shared server.
Check Support For Caching PluginsNowadays usage of caching plugins is like a norm for WordPress blogs. There are several popular plugins that are used to cache objects on a web server. Each one of them provides different levels of caching capabilities. These caching plugins often use additional Apache modules from proper functioning.
You must ask about the caching plugins supported by your web host. For example, a famous hosting provider (I won't name them) recommends usage of WP Super Cache instead of w3 Total Cache (which usually gives better results) for its shared hosting accounts. You must confirm from the concerned department about the support of your favorite caching plugin with all the necessary extensions and modules to completely leverage the available options within the plugin.
Ensure SFTP & SSH SupportSecurity is a major concern while hosting any kind of website. Every web hosting account comes with access to directory tree through FTP protocol. While transferring files to and fro from your local PC to your web server through FTP client, your sensitive information within files is prone to sniffing from seasoned hackers.
To avoid this unguarded connection while transferring files to your web server you must use a secure version (SFTP) of FTP protocol. Make sure your web host provides secure FTP connections to the server. Secure Shell (SSH) availability is must for completing several important tasks while managing WordPress blogs.
It can be compared (visually) with a DOS command prompt. Through SSH, you get remote access to your web server's command prompt. This enables you to complete several critical tasks in an optimized manner that is not easily possible from regular dashboard. For example, I use SSH for two things on a regular basis. I take backups of my blogs and also examine abnormal disk usage. Both these tasks are easily done through SSH command prompt. While you sign up for a hosting account, always make sure that both SFTP and SSH access is available.
Check Maximum Database Space AllowedShared hosting plans often talk about the number of databases that can be created by the user. But there's much more on stake than simply the number of databases that can be created by the account holder. It's the actual database space on disk that matters the most. Most shared hosting plans offer anywhere between 2GB to 4GB space for database which is ample for most websites.
But if you have a busy posting schedule with multiple blogs, this space can get consumed very easily. In such cases, you must inquire about the availability of additional database space allocation within your existing plan and that too at reasonable rates. Sometimes, web hosts simply ask to upgrade the hosting plan instead of allocating more space for the database even if the customer is ready to pay for it.
Check Maximum Simultaneous Connections AllowedMost shared hosting plans restrict the number of simultaneous connections allowed per account. In simple words, it can be roughly compared with the maximum number of visitors that can browse your blog at a given time. Most web hosts restrict this number to anywhere between 20 to 30 concurrent connections for shared hosting plans.
If this count goes below 20, you should never choose that web hosting plan. Signing up for such plan will make your blog inaccessible if a sudden traffic spike comes from various social media websites. You may inquire about an option to temporarily increase this limit on a formal request. Generally, hosting providers do not honor such kinds of requests, but there's no harm in asking about it.
Check Cron Jobs Limits & RestrictionsThis is yet another important factor that must be checked before signing up for any shared hosting plan. Almost every web host applies several restrictions on cron jobs that can be created by the account holders.
These restrictions may include the following parameters. Maximum execution time for a single script, maximum CPU time during entire running state, maximum number of simultaneous file descriptors that can be opened by a script and maximum number of sub-processes that can be spawned by your script. Make sure you inquire about each of these parameters and see whether you're given enough privilege and resources to run your scripts well and good with applied restrictions.
Check Access To Raw Server LogsApart from regular web analytics software used by bloggers, usage of raw server logs is also prevalent to analyze and detect various kinds of problems. These log files contains detailed technical information related to actions and events happening on your web server that are directly related to your WordPress blog.
If your hosting plan doesn't give access to these logs, probably they're hiding something. Make sure you get access to these raw server logs and that too for up to 5 or 7 days back. This ensures that you can study them well in case of any catastrophic event to find out the exact reason of the problem. They must also provide direct download option for these logs instead of simple read-only access within the dashboard.