Setting up a website for the first time can be daunting. I’ve helped a bunch of people do this – and I’ve seen lots of people make mistakes with picking a registrar or hosting provider.
If you’re new to setting up websites, hopefully this guide will point you in the right direction.
There are three services necessary for having a website at your own domain name (e.g. example.com):
- Registrar – this is who you buy example.com from.
- DNS – this is who points example.com to your server (e.g. 184.108.40.206) so people don’t have to remember that long number (aka IP address) to get to your website.
- Hosting – this is the company that owns the server (identified with 220.127.116.11).
Sometimes a host will also provide DNS and domain registration services; registrars often provide some DNS services; and some DNS providers also offer domain registrations.
Regardless of where you get them, all three parts are critical for a website to work.
The short version
Now that you’ve got the terminology, here’s the upshot of this post:
- Namecheap* for your registrar.
- For your DNS, CloudFlare if you’re brave, DNSimple* if you’re not.
- Go platform (e.g. wordpress.com over self-hosting if you can. If you can’t, WPEngine* for WordPress and NearlyFreeSpeech for everything else.
- Don’t share your usernames/passwords – delegate access instead.
If you’re curious about the reasons behind this advice, keep reading.
The long version
At a minimum, I like to separate my hosting from my registrar and DNS in case I need to change hosting providers. It’s much more painful (and less likely) to change DNS providers or registrars. If these services are tied up with your host, switching hosts can cause downtime and will be substantially more difficult.
I have all eight of my domain names registered with Namecheap*. Their best feature is allowing you to delegate certain responsibilities, like renewing a domain name, to other accounts.
Standard domain names (those ending in
.org) cost about $10/year no matter where you go. Beware of other domain endings – they can be more expensive and may confuse less technical users. My email address ends in
.me and this is often a source of confusion when reading it over the phone.
I use CloudFlare for this domain name. It requires some manual configuration, but is free and does some fancy stuff on the back end to speed up your website.
I’ve also used DNSimple (another affiliate link) when I’ve needed to give DNS access to a third party – they’re the only DNS provider I’ve found that lets you delegate access other DNSimple accounts. They also have some one-click configuration options for popular services, like Google Apps, and have a relatively easy-to-use interface.
Namecheap also offers free DNS service. I haven’t used it, but it might be convenient if you register your domain name there and don’t want to deal with CloudFlare’s complexity or DNSimple’s monthly fee.
Your host (see below) should be able to give you instructions about how to set up your DNS. If you aren’t technical, DNSimple is the easiest of these three to use.
Choosing a host can be complicated, mostly because there are so many options out there and they are hard to compare. With that said, I think this choice boils down to three main factors:
- Ease of use – hosting won’t do you any good if you can’t figure out how to use it.
- Reliability – hosting is usually the point of failure if a website goes down.
- Cost – there is huge variation in monthly fees, and it’s easy to get screwed.
Ease of use
If you don’t have experience with hosting and you aren’t interested in learning or paying a developer, you should use a platform instead of a host. Examples of blogging platforms are wordpress.com and Tumblr. If you want a traditional website instead of a blog, Weebly’s platform is a good option.
If you do have some experience with web hosting, I recommend NearlyFreeSpeech. They do require some technical skills but have a dirt cheap pay-as-you-go plan and a good reputation. They also let you delegate access to other accounts on a per-website basis.
The two main causes of downtime related to your host are unscheduled downtime (e.g. the host loses power) and traffic spikes. I’ve written at length about how to set up your blog to survive traffic spikes, and the same general principles apply to non-blogs.
All the hosts I recommend here have good uptime* and can handle traffic.
* Tumblr had some trouble a few years ago, but I think it's pretty reliable now.
In addition to the monthly cost, you should also consider any time or money you will spend on dealing with problems or downtime. This is why I recommend using a platform like wordpress.com or Weebly if at all possible – there is huge time savings in not having to do website setup and maintenance yourself.
If you’re self-hosting a WordPress blog, I recommend WPEngine*. They are more expensive than budget hosts, but their support is great and they take care of maintenance for you. For most people, I think managed hosting is a net savings when you factor in your time.
If you’re not using WordPress, NearlyFreeSpeech is still my pick. What you pay is based on the space and bandwidth you use, so most websites cost pennies a day on their platform. Their support is also pay-per-use, but it’s only a dollar or two per ticket and they are quite responsive.
If you need fancier hosting than NearlyFreeSpeech provides, MediaTemple is a good bet. Their monthly fees can get pretty expensive, but their infrastructure and support is top notch.
In my experience, many of the popular budget hosts (less than $10/month) don’t have support you can contact easily or who will be helpful. Be careful of this if you use a host that’s not on this list.
Securing these services
These services are listed above in descending order of security importance: if someone got control of your hosting, you could switch hosts by changing your DNS; if someone got control of your DNS, you could switch DNS providers through your registrar.
For this reason, it’s really important to keep tight control over the registrar and, to a lesser degree, the DNS. You’ll likely work with a contractor/freelancer/friend/company on your website at some point, so it’s important to consider what access to give them.
Ideally, only a highly trusted person would have access to the registrar. Nothing really needs to be done here except pay the renewal fee every year.
DNS and hosting access can safely be given to any trusted third party that needs to work on the website. If you find out something nefarious has happened with your DNS or hosting, you can get in touch with the registrar and fix the problem. The registrar has ultimate control over the DNS via what’s called the nameservers, so at the very least they can take down a website if it gets hijacked.
For the services I recommend above, I’ve noted whether they let you delegate access to other accounts. This is preferable over giving your username and password to third parties.
If you’ve got any questions or comments, hit me up on twitter at @masnick.
* These are affiliate links.