2026-10-21

Free Website Hosting in 2026: A Complete GitHub Pages Walkthrough (with Custom Domain + Free HTTPS)

Free Website Hosting in 2026: A Complete GitHub Pages Walkthrough (with Custom Domain + Free HTTPS)

No budget for web hosting? GitHub Pages has hosted static sites for public repos for free since 2008 — no shutdowns, no surprise paywalls. Custom domains and automatic HTTPS are free too. A few clicks in your browser, and you're live in 1–10 minutes.

What You Need

Everything happens in the browser. No software to install, no server to rent.

Step by Step

Step 1: Create a free GitHub account

Go to github.com and click Sign up. Email + username + password, verify your email, and log in. The free account is all you need for this.

Step 2: Create a repo and upload your index.html

Click + in the top right → New repository. The repo name matters:

Choose Public (free hosting for public repos is a certainty; Pages on private repos may require a paid plan depending on account type — don't trip on this). Then click Upload files in the web UI, drop in your index.html, and hit Commit.

GitHub Pages official Quickstart docs

Step 3: Flip the Pages switch, wait 1–10 minutes

Open the repo's Settings → Pages:

  1. Under Source, pick Deploy from a branch
  2. Set Branch to main and the folder to /(root)
  3. Click Save

That's it — GitHub builds and deploys. In 1–10 minutes your site is live at https://yourusername.github.io. Clear your cache if you don't see it on first load.

Step 4 (optional): Connect your own domain + free HTTPS

Still in Settings → Pages:

  1. Enter your domain under Custom domain (e.g. shop.yourdomain.com or the apex yourdomain.com) and click Save — GitHub automatically provisions a Let's Encrypt certificate
  2. Add DNS records at your domain registrar:
    - Apex domain (e.g. yourdomain.com): 4 A records pointing to 185.199.108.153, 185.199.109.153, 185.199.110.153, 185.199.111.153
    - Subdomain (e.g. shop.): one CNAME record pointing to yourusername.github.io
  3. Back in Pages settings, check Enforce HTTPS

DNS can take a few minutes to a few hours to propagate. Give it time — it's usually done by the next morning.

Official custom domain documentation

Costs, Limits & Gotchas

October 2026 free hosting comparison

Sources