You need a domain name, hosting, and a way to build pages — then you connect them together
Creating a website means three separate things: buying a domain name (the address people type), renting server space to store your files (hosting), and building the actual pages. You can do all three through one company, or split them across different ones. The simplest path for someone starting out is to use a website builder like Wix, Squarespace, or WordPress.com, which bundles all three together. If you want more control, you can buy a domain and hosting separately, then use a code editor or a tool like WordPress (self-hosted) to build the pages themselves.
This guide covers the actual steps: what each piece does, what it costs, and how to connect them. It assumes you have a browser and a text editor already — both free on any computer.
Key Takeaways
- A domain name costs $10 to $15 per year; hosting costs $5 to $20 per month depending on traffic and storage needs.
- Website builders like Wix or Squarespace handle domain, hosting, and page building in one place, making them fastest for beginners.
- Self-hosted WordPress or hand-coded HTML gives you more control but requires you to buy domain and hosting separately and manage updates yourself.
- Your domain registrar (the company you buy the domain from) and your hosting provider must be able to talk to each other through DNS settings.
- A basic website with five pages and a contact form takes one to three weeks to build, depending on how much writing and design you do yourself.
The three pieces you need and what they cost
A domain name is the address: yourname.com or yourcompany.org. You rent it from a registrar like GoDaddy, Namecheap, or Google Domains. Most cost $10 to $15 per year, though some are cheaper the first year and more expensive after renewal. You own the name only as long as you keep paying.
Hosting is the server that stores your website files and makes them available when someone visits. Shared hosting (where your files sit on a server with hundreds of other websites) costs $5 to $15 per month. Dedicated hosting (your own server) costs $50 to $500+ per month and is overkill for most small sites. Most beginners use shared hosting.
The builder or code is how you actually make the pages. A website builder like Wix or Squarespace provides a visual editor — you drag boxes around and type text, no coding required. WordPress.com (the hosted version) gives you templates and a dashboard. Self-hosted WordPress (where you install it on your own hosting) requires more setup but costs less per month. Hand-coding in HTML and CSS gives you complete control but requires you to learn to code.
If you use a website builder, you pay one monthly fee ($12 to $40) and they handle domain, hosting, and building. If you buy domain and hosting separately, you pay two bills and choose your own builder.
The fastest route: using a website builder
Website builders are designed so you do not have to think about domain, hosting, or code. You sign up, pick a template, add your content, and publish. Wix, Squarespace, Weebly, and WordPress.com all work this way.
The steps are: (1) Go to the builder's website and click "Create a Site" or "Start Free". (2) Choose a template that matches what you want — a portfolio, a store, a blog, a business card site. (3) Pick a domain name; the builder checks if it is available and reserves it for you. (4) Add your pages: click "Add Page", name it (Home, About, Contact, Services), and fill in text and images. (5) Add a contact form if you want people to reach you — most builders have a form tool built in. (6) Preview the site in a browser to see how it looks. (7) Click "Publish" when you are ready to go live.
The trade-off is that you are locked into that builder's tools. If you want to move to a different builder later, you have to rebuild the site — you cannot take the pages with you. Most builders let you start free with their branding on your site, then pay to remove it and use your own domain.
The manual route: domain, hosting, and code separate
If you want more control or plan to grow into something complex, buy domain and hosting separately, then build the site yourself.
Step 1: Buy a domain. Go to a registrar like Namecheap, GoDaddy, or Google Domains. Search for the name you want. If it is available, add it to your cart and check out. You will need to provide contact information and a payment method. The registrar will ask where you want to point the domain — this is where DNS comes in (explained below). For now, just buy it.
Step 2: Buy hosting. Go to a hosting provider like Bluehost, SiteGround, or HostGator. Choose a shared hosting plan. During signup, they will ask if you have a domain already — say yes and enter the domain name you just bought. They will give you login credentials and an IP address or nameservers. Write these down.
Step 3: Point your domain to your hosting. Log into your domain registrar's dashboard. Find the DNS or nameserver settings. Enter the nameservers your hosting provider gave you. This tells the internet: when someone types yourname.com, send them to the server at [hosting provider]. This can take 24 to 48 hours to take effect.
Step 4: Build your site. Log into your hosting account's control panel (usually cPanel). Install WordPress, or upload HTML files you wrote yourself. If you use WordPress, you get a dashboard where you can add pages, posts, and plugins without touching code. If you hand-code, you write HTML files in a text editor, save them, and upload them via FTP or a file manager in cPanel.
Building pages without code: WordPress and templates
WordPress is free software that runs on your hosting. It gives you a dashboard where you click "Add New Page", type a title and content, and publish. You do not write HTML yourself — WordPress generates it.
To use WordPress, you need hosting that supports it (most do). Log into your hosting control panel, find "WordPress" or "One-Click Install", and click it. The hosting provider installs WordPress for you. You then log in with a username and password, and you are in the dashboard.
From there: click "Pages" on the left, then "Add New". Give the page a title (Home, About, Contact). In the editor, type or paste your content. You can add images by clicking the image icon. When you are done, click "Publish". The page is now live at yourname.com/pagename.
WordPress also has themes (templates) that change how your site looks. Go to "Appearance" > "Themes" and click "Add New". Browse free themes or search for one that matches your style. Click "set up" and the theme applies to your whole site. You can customize colors and fonts without touching code.
Building pages by hand: HTML and a text editor
If you want to learn how websites actually work, or if you need something very specific, you can write HTML yourself. You need a text editor (Notepad, VS Code, or Sublime Text) and an FTP client (FileZilla is free) to upload files to your hosting.
Create a file called index.html. In your text editor, type:
<!DOCTYPE html> <html> <head> <title>My Website</title> </head> <body> <h1>Welcome</h1> <p>This is my website.</p> </body> </html>
Save the file as index.html. Open FileZilla, enter your hosting login credentials (your hosting provider gives you these), and connect. Drag index.html from your computer into the public_html folder on the server. Wait a few seconds, then visit yourname.com in a browser. You should see your page.
To add more pages, create more HTML files (about.html, contact.html) and upload them the same way. They will be at yourname.com/about.html and yourname.com/contact.html. You can link between pages by typing <a href="about.html">About</a> in your HTML.
What usually goes wrong and how to fix it
Your domain points to the wrong server. You bought a domain from one registrar and hosting from another, but you did not update the DNS settings in the registrar's dashboard. Fix: log into your registrar, find DNS or nameserver settings, and enter the nameservers your hosting provider gave you. Wait 24 to 48 hours.
Your pages do not look right. If you hand-coded HTML, you may have a typo in a tag. Open the page in your browser, right-click, and click "Inspect" or "View Page Source". Look for unclosed tags (every <p> needs a </p>). If you used a website builder or WordPress, clear your browser cache: press Ctrl+Shift+Delete (Windows) or Cmd+Shift+Delete (Mac), select "All Time", and click "Clear Data".
You cannot log into your hosting or WordPress. Check that you are using the right username and password. If you forgot it, most hosting providers and WordPress have a "Forgot Password" link that sends a reset link to your email. If you still cannot log in, contact your hosting provider's support — they can reset it for you.
Your site is slow. If you hand-coded it, you may have large image files. Compress images before uploading (use a tool like TinyPNG). If you use WordPress, install a caching plugin like WP Super Cache — it makes pages load faster by storing copies. If your hosting is genuinely too slow, upgrade to a faster plan or switch providers.
Frequently Asked Questions
Do I have to use a website builder, or can I really hand-code everything?
You can hand-code everything in HTML and CSS. It takes longer and requires learning to code, but you have complete control and no monthly fees beyond hosting ($5 to $15 per month). Most people starting out use a builder or WordPress because it is faster. Hand-coding makes sense if you already know HTML or if you need something very custom.
Can I change my domain name after I publish?
You can buy a new domain and point it to the same hosting, but you cannot change the old domain name itself — you have to buy a new one. If you want to keep your old domain, set up a redirect so visitors typing the old address get sent to the new one. Most hosting providers have a redirect tool in cPanel.
What if I want to sell things on my website?
Website builders like Wix and Squarespace have built-in store features. WordPress has plugins like WooCommerce that turn your site into a store. You will also need a payment processor like Stripe or PayPal to handle credit cards. Most builders integrate these for you; with self-hosted WordPress, you install a plugin that connects to Stripe or PayPal.
How much does it really cost to run a website for a year?
A website builder costs $150 to $480 per year ($12 to $40 per month). Domain and hosting separate cost $120 to $300 per year ($10 to $15 for domain, $5 to $20 per month for hosting). Self-hosted WordPress costs the same as separate domain and hosting. Hand-coded HTML costs the same. The difference is time and control, not money.
Can I build a website on my phone?
Website builders like Wix and Squarespace have mobile apps that let you edit your site on a phone. WordPress has a mobile app too. Hand-coding is much harder on a phone because you need a real text editor and FTP client. For quick edits, a mobile app works. For building from scratch, a computer is easier.