Custom domain guide

How to connect a Cloudflare domain to GitHub Pages

The exact records to add at Cloudflare, written the way its form asks for them, for both www and the bare domain.

Checked 16 October 2026

In short

The records you'll add

Type
CNAME
Name
Target

Replace the capitals with your own value from the host's dashboard.

Type
CNAME
Name
Target

Replace the capitals with your own value from the host's dashboard.

Your user or organization name, without the repository name

Step by step

Set it up

  1. 1

    Add the domain in GitHub Pages first

    In GitHub Pages, go to Repository→Settings→Pages→Custom domain and enter your domain (for example www.example.com). With records for both www and the bare domain, GitHub Pages redirects one to the other. GitHub recommends making www the main address.

    Custom domains are free.

  2. 2

    Open the DNS records at Cloudflare

    Sign in, then go to your domain→DNS→Records

    The domain has to be on Cloudflare's nameservers.

  3. 3

    Clear what's in the way

    Look for existing A, AAAA or CNAME records on the same name: Cloudflare won't let a CNAME sit next to them.

  4. 4

    Add the record for www

    Click Add record and add:

    Type
    CNAME
    Name
    Target

    Replace the capitals with your own value from the host's dashboard.

    Your user or organization name, without the repository name

  5. 5

    Point the bare domain

    Cloudflare flattens a CNAME on the bare domain, so one record pointing at GitHub Pages is enough.

    Type
    CNAME
    Name
    Target

    Replace the capitals with your own value from the host's dashboard.

  6. 6

    Wait, then check

    Changes at Cloudflare take effect within minutes. Once GitHub Pages sees the records, it issues the certificate for https by itself. Use the check below to see what the world sees.

Check your domain

Once the records are in, see whether the world can see them pointing at GitHub Pages.

Changes can take from a few minutes to a day to show up everywhere.

Good to know

Common snags

  • Add the domain in the repository's Pages settings before creating the records, so nobody else can claim it.
  • Never use a wildcard record (*.example.com): it lets others take over your subdomains.
  • Turn on Enforce HTTPS once it becomes available, which can take up to 24 hours.
  • A CNAME at @ is allowed: Cloudflare flattens it automatically, so there's no ALIAS record type.
  • Set Proxy status to DNS only (grey cloud) for another host's records, unless that host's guide says otherwise. Proxying can stop the host from issuing its certificate.

Still not working?

Questions

Before you start

Should I use www or the bare domain with GitHub Pages?

With records for both www and the bare domain, GitHub Pages redirects one to the other. GitHub recommends making www the main address. www always works with a single CNAME; the bare domain depends on what Cloudflare offers, covered in step 5.

Why does my site show a certificate error?

The certificate is issued once GitHub Pages sees your records, which can take a while after DNS changes. If it stays, check for old records on the same name (parking pages, AAAA records) and, at Cloudflare, that the record is set to DNS only.

Will this affect my email?

No. Email uses MX records, which these steps don't touch. Only change the records for @ and www.

Rather skip git and build settings?

99helpers puts a file, a folder or a built site online in seconds, then a single CNAME connects your domain, with passwords, analytics and AI editing built in.

Connect a Cloudflare domain to 99helpers

Or skip the setup

Drop it in. It's online in seconds.

A file, a folder or a whole site: 99helpers puts it online at its own address, with no git, no build settings and no DNS to start with. Add your own domain whenever you're ready.