How we host our web sites

A necessary disclosure: some of the links in this article contain our affiliate information. It means that if you follow such links and order a service from the destination company, we may receive a small commission from them for sending them a customer (you). Keep in mind, however, that we don't give the recommendations just because of the commission, we only recommend our partners because they are extremely good at what they do: we use their services ourselves!

Our customers sometimes ask us for the recommendations for the web site technologies to use, because they want their web sites to be fast, responsive, reliable, and easy to manage, just like ours. After answering such a question for the n-th time, we decided to put together a web page describing the technologies that we use for our web sites, to let more people take advantage of our experience. Here we go:

Web hosting company

Our primary web hosting company is HostGator. Over the years, we've been through quite a few of the web hosting companies (our first web site went online in 1993, that's like the Columbus time measured in the Internet years!), and HostGator is the only one that we recommend without hesitation.

Reliability

This is probably the most important quality of a web host: if you web site becomes inaccessible, nothing else matters. To monitor the web site availability, we use the SiteUptime.com service. This service connects to our web site every 5 minutes, 24 hours a day, every single day, and checks whether the web site is responding properly. If it does not respond, we get notified via email immediately. It also keeps a record of all failures that occurred to our web site.

How did we do while hosting our web site with HostGator? During the first 6 months of 2012 (up to the time when this article was written), we've had 5 interruptions of service, each lasting less than 5 minutes, which amounts to 99.991% of uptime. Another example: during the whole year of 2011, we'd had 3 five-minute interruptions, 3 ten-minute interruptions, and one episode of a downtime that lasted 56 minutes. (This gives us the effective uptime level of 99.979%, according to the SiteUptime.com report.) This is a much better availability than what we've experienced with most web hosts that we were using before we switched to HostGator, especially considering how inexpensive the HostGator hosting is.

Fast customer support

We rarely had a need to contact HostGator for assistance, but when we did, the response was always fast and to the point. For example, when a new version of PHP engine was released a few months ago, we asked HostGator technical stuff to upgrade the older version of PHP on our account to the new one. They handled all the technical details and did the upgrade without causing any downtime to our web site.

On another occasion, we caused a problem to one of the web pages by ourselves: after we have updated the web page, it could not be opened in a web browser. After trying unsuccessfully to determine the reason for the problem ourselves, we contacted HostGator for assistance. In less than an hour one of the HostGator technicians had analyzed the situation, determined what caused it (turns out the file permissions on one of the PHP scripts were not set up properly), and fixed it (by changing the file permissions as necessary.) Again, this was in a stark contrast to many of the web hosting companies that we used in the past, when we often had to wait for hours (and sometimes for days) to get a response.

Ease of managing

Many of the hosting plans offered by HostGator come with a free CPanel web application (some of the plans offer it as an option.) Having CPanel to manage the web hosting account simplifies the process quite significantly. Using CPanel, we can create and delete the email accounts, set up email forwarders, configure spam detection options, create additional domains and subdomains, manage databases, and so on. If you don't know much about Linux and its command line interface, using CPanel is the only chance to do it right and reduce the possibility of doing something wrong.

Web server software

We use the Linux operating system (the CentOS distribution) running the Apache web server.

Web site platform

When deciding on the content management system for our web site a few years ago, we've evaluated quite a few offerings and almost chosen Drupal, but in the end we've settled on WordPress. "What?," you might ask, "your web site doesn't look like a blog!" Yes, it does not. WordPress is not just for blogs, it can be used for creating and managing the regular web sites like ours, too. (Having the blogging capabilities built-in does not hurt, either.)

Our main reasons for choosing WordPress were: simplicity, extensibility, and performance.

Simplicity

It's very easy to use WordPress to create both the web pages and the blog posts. There is a million of WordPress themes available on the Internet, professionally designed, both free and premium, to satisfy any taste or requirement, and one can install and change the theme with just a few mouse clicks.

Extensibility

There is no limit what you can achieve with WordPress by installing and configuring its plugins. Here are the essential plugins that we use and recommend:

  • All in One SEO Pack - Helps you optimize your WordPress pages and posts for the search engines.
  • Exec-PHP - Executes the PHP code in the posts, pages, and text widgets.
  • Google XML Sitemaps - The automatic sitemap generator.
  • HiFi - Lets you add statements to the header and footer of the WordPress pages and posts, without modifying the theme files.
  • Redirection - Redirects the old URLs to the new pages, keeping the statistics of their use. (Very useful when migrating the old web sites to WordPress.)
  • Sniplets - You can define reusable 'sniplets' of information that can be embedded within the posts and pages. If you need to update the information, you update the sniplet, and the pages get updated automatically!
  • W3 Total Cache - The WordPress performance plugin.
  • WordPress BlockYou - You can use this plugin to block selected IP addresses from accessing your website and keep the bad guys out.

Performance

With the W3 Total Cache plugin, the response of the WordPress site can approach that of a simple HTML-based collection of static pages: each web page is generated just once, and stored in a cache. When another visitor requests the same page, the pre-generated copy from the cache is served. When you update the web page, a new copy is generated and placed in the cache. This simple idea makes a huge difference on the web site performance.

Another factor that improved the performance of our web site was that we moved the static files (.css, .js, .png, etc.) to a Content Delivery Network (CDN). We've evaluated quite a few of them and chose MaxCDN: it offered great speed at a good price, and it was easy to set it up. We used the W3 Total Cache plugin to integrate our web site with MaxCDN.

If you decide to give MaxCDN a try, use the coupon code maxcdncoupon to save 25% off you first payment.

That's how we host our web sites. We hope this information can be useful to you when choosing the web hosting solutions for your web site. As a thank you for your attention, here is a discount coupon you can use to order a hosting plan from our preferred web hosting provider, HostGator:

WS994120624

Use this coupon code during the HostGator checkout and get $9.94 off the package price (we will get a small commission, too.)

Happy web adventures!

Read more

Tags: , ,

Comments:

  1. Ahmed says:

    my cron script was rniunng every 2 minutes! I thought I had it set to every hour, but apparently I messed up (they only allow them to run every 15 minutes, I believe). But they were courteous and fixed it for me. I guess it pays to double check every once in a while because it’s been like that for way over a year

Leave a Comment:

IMPORTANT! Do not put any URLs in the comment, or it will be rejected. Before submitting, please solve the following simple math (so we know that you are not a spambot) :-)

What is 10 - 8 ?
Please leave these fields as-is: