You might be surprised to learn how cheaply (and quickly) you can build a website (opens in new tab) nowadays, with the best website builders (opens in new tab) offering a variety of cost-effective solutions. While a fully custom-built website with complex functionality can cost thousands of dollars, most individuals, freelancers, and small- and medium-sized businesses can get away with something much cheaper and simpler.
There are a few main factors to prepare for when considering the cost to build a website. The back-end (everything behind the scenes that your audience doesn’t see) includes costs like the best web hosting (opens in new tab) and your content management system (CMS), while the front-end (your website as it appears on the internet) can cost as little as $0.
The back-end is the infrastructure that supports your website. It includes three main costs: web hosting, domain name registration, and your website builder or CMS. There are also a few secondary costs, like an SSL (Secure Sockets Layer) certificate, but most web hosts and website builders include these in their plans.
Web hosting is available on a subscription basis, so you’ll pay each month or year. Typically, the longer the contract length, the less it will cost you per month. Hosting typically costs anywhere between $30 to $500 a month, depending upon your needs.
Larger businesses will need more expensive plans that include lots of bandwidth and storage. If you’re just starting out, though, you can aim for a basic plan—just try to choose a hosting company that enables you to easily switch plans or scale as you grow.
If you’re looking for the cheaper end of the spectrum, you’ll need to make a decision about shared hosting. Shared hosting costs less because the resources, like bandwidth and computer power, are shared between customers—but it can also affect your website’s speed and responsiveness.
Having a custom domain name costs money, but for most businesses, it’s well worth it. It adds a level of seriousness and sophistication that you just can’t get by piggybacking on your website builder’s address. A domain name will cost you around $15 to $20 a year, although many hosts and website builders offer special deals for your first year.
The cost will depend on the domain name extension (.com, .org), with the more popular and conventional ones typically costing more. Many of the most interesting domain names have already been purchased and are sold at a premium - so you may need to get creative when coming up with yours.
If you’re comfortable making a go of it on your own, there are many content management systems (CMSs) available, some of which are free and open-source. You’ve probably heard of the most popular one, WordPress.org (opens in new tab) - while WordPress.com (opens in new tab) is a website builder. There are also a vast number of templates and page builders for WordPress that make it possible to create a WordPress website with little or no coding knowledge.
That said, there are also numerous website builders that offer a simple, drag-and-drop (opens in new tab) approach to creating a website. These builders have hundreds of templates to help you design your site, along with plenty of built-in functionality. You can easily add a blog, online store (see below), custom forms, live chat, and more.
Website builders usually include web hosting and domain name registration in the cost of paid plans. There are free plans available, but they tend to be more limited, with less storage and bandwidth, for example, and no custom domain name. The overall cost of opting for a paid plan with a website builder may be greater than an open-source CMS with budget-friendly hosting, so you’ll need to weigh the pros and cons.
Finally, most website builders and CMSs, including WordPress, also have a marketplace for add-ons that can greatly increase the functionality of your website, but most come at a cost.
WordPress and the various website builders offer a range of free and paid themes. Many of the free themes are perfectly adequate, but even paid themes usually don’t cost more than $50. The most expensive ones rarely go above $100. Of course, if you have the budget for it and want something custom-built, there’s no shortage of talented designers out there.
If you’re planning on selling products or services online, you’ll need a platform that enables you to display your products and take secure online payments. If you’ve gone for a website builder, ecommerce functions will probably be available as an add-on or as part of a professional or business plan. You can expect it to cost you an additional $10 or so per month.
If you’re building your own website, you have a few different options. The best ecommerce website builders (opens in new tab) like Shopify (opens in new tab), for example, enable you to build an online store from scratch or add one to an existing website. There are also a variety of popular add-ons available for CMSs, like the open-source WooCommerce (opens in new tab) plugin for WordPress.
The final cost of building your website will depend a lot on your needs and goals. Typically, the more complex a website you’d like to build and the less you can do yourself, the more expensive it will be. That said, you really don’t need a lot - or any - prior knowledge to get started.
The cheapest option will often be to use open-source solutions, like WordPress.org and WooCommerce, paired with budget-friendly web hosting - but you may find it worth the money to use a website builder that can streamline the creation process, and which offers ready-made solutions to monetizing your website.
Further reading on website builders and web hosting
Find out more about site builders for smaller businesses in our guide to the best small business website builders (opens in new tab). When it comes to hosting, we've got a wide range of buying guides for different hosting types, including the best cloud hosting (opens in new tab), the best VPS hosting (opens in new tab), the best Linux (opens in new tab) and Windows (opens in new tab) hosting, and the best WordPress hosting (opens in new tab).