Custom domains
When deploying your Pages project, you may wish to point custom domains (or subdomains) to your site.
Add a custom domain
To add a custom domain:
- Log in to the Cloudflare dashboard.
- Select your account in Account Home > Workers & Pages.
- Select your Pages project > Custom domains.
- Select Set up a domain.
- Provide the domain that you would like to serve your Cloudflare Pages site on and select Continue.
Add a custom apex domain
If you are deploying to an apex domain (for example, example.com
), then you will need to add your site as a Cloudflare zone and configure your nameservers.
Configure nameservers
To use a custom apex domain (for example, example.com
) with your Pages project, configure your nameservers to point to Cloudflare’s nameservers. If your nameservers are successfully pointed to Cloudflare, Cloudflare will proceed by creating a CNAME record for you.
Add a custom subdomain
If you are deploying to a subdomain, it is not necessary for your site to be a Cloudflare zone. You will need to add a custom CNAME record to point the domain to your Cloudflare Pages site. To deploy your Pages project to a custom apex domain, that custom domain must be a zone on the Cloudflare account you have created your Pages project on.
Add a custom CNAME record
If you do not want to point your nameservers to Cloudflare, you must create a custom CNAME record to use a subdomain with Cloudflare Pages. After logging in to your DNS provider, add a CNAME record for your desired subdomain, for example, shop.example.com
. This record should point to your custom Pages subdomain, for example, <YOUR_SITE>.pages.dev
.
Type | Name | Content |
---|---|---|
CNAME | shop.example.com | <YOUR_SITE>.pages.dev |
If your site is already managed as a Cloudflare zone, the CNAME record will be added automatically after you confirm your DNS record.
Delete a custom domain
To detach a custom domain from your Pages project, you must modify your zone’s DNS records.
First, log in to the Cloudflare dashboard > select your account in Account Home > select your website > DNS.
Then, in DNS > Records:
- Locate your Pages project’s CNAME record.
- Select Edit.
- Select Delete.
Next, in Account Home, go to Workers & Pages:
- In Overview, select your Pages project.
- Go to Custom domains.
- Select the three dot icon next to your custom domain > Remove domain.
After completing these steps, your Pages project will only be accessible through the *.pages.dev
subdomain you chose when creating your project.
Disable access to *.pages.dev
subdomain
To disable access to your project’s provided *.pages.dev
subdomain:
Use Cloudflare Access over your previews (
*.{project}.pages.dev
). Refer to Customize preview deployments access.Redirect the
*.pages.dev
URL associated with your production Pages project to a custom domain. You can use the account-level Bulk Redirect feature to redirect your*.pages.dev
URL to a custom domain.
Known issues
CAA records
Certification Authority Authorization (CAA) records allow you to restrict certificate issuance to specific Certificate Authorities (CAs).
This can cause issues when adding a custom domain to your Pages project if you have CAA records that do not allow Cloudflare to issue a certificate for your custom domain.
To resolve this, add the necessary CAA records to allow Cloudflare to issue a certificate for your custom domain.
example.com. 300 IN CAA 0 issue "comodoca.com"example.com. 300 IN CAA 0 issue "digicert.com; cansignhttpexchanges=yes"example.com. 300 IN CAA 0 issue "letsencrypt.org"example.com. 300 IN CAA 0 issue "pki.goog; cansignhttpexchanges=yes"example.com. 300 IN CAA 0 issuewild "comodoca.com"example.com. 300 IN CAA 0 issuewild "digicert.com; cansignhttpexchanges=yes"example.com. 300 IN CAA 0 issuewild "letsencrypt.org"example.com. 300 IN CAA 0 issuewild "pki.goog; cansignhttpexchanges=yes"
Refer to the Certification Authority Authorization (CAA) FAQ for more information.