Domains and Subdomains

Framer preview links always use https://* You can set a custom or free .framer domain up in Settings → Domain.

Note: If you have previously set up a custom .framer domain (eg. you will need to remove this. Once this is removed you will be able to add your domain to the custom domain field.

Configuring a Custom Domain

To configure a ‘naked’ or ‘apex’ domain (, you’ll need to set up two A records and one CNAME (for the redirect) in your DNS settings with the following values.

Depending on your DNS provider the name is either the full domain, or an “@”. Similarly for the subdomain, it will be either the full domain or just “www”.

Also make sure to delete any other A and AAAA records if they are set for domain, because those will interfere with the A records set for Framer.

Configuring a Custom Subdomain

To configure a subdomain ( or, you can set up a CNAME record your DNS settings. Please note that some DNS providers may require you to add a dot or period at the end. ( The name for the CNAME record will be either the full domain, or just the “subdomain” part, depending on your DNS provider.

Confirming Changes (Propagation)

Depending on your DNS record TTL it may take up to 48 hours for your domain’s new DNS records to propagate and your site to appear world wide. Please note that this process usually takes less than 48 hours (often less than one). Once your domain has been connected, any user will be able to access your website through the connected domain.

The TTL (or time to live) is something you typically can set per record. It tells other servers how long to remember the result (in seconds). Historically this would be something like a day (86400) but these days it’s typically a few minutes (300). Be aware that some server don’t respect low values and can decide to do a minimum and slow updates down. This can be common at larger / worser internet service providers and there is no way to find out what they exactly do. In that case, you’d be well off using a public DNS server like [](<>).

Domain Providers

In order to publish your Framer website to a custom domain purchased through a web hosting service, you’ll need to add it to your project and setup DNS records for it in your domain provider. Purchase a domain through a web hosting service, such as Google Domains or GoDaddy. Once you have a custom domain, go to the Domains page in your Site Settings and select Connect a domain you own.

After inputing your domain, replace your DNS records with the Framer DNS records provided below in the web hosting service you have purchased your domain from. Domain registrars and hosting companies typically have their own custom panel for DNS management, but this can typically be done under Domain Settings > DNS Records. Listed below is a list of support articles for the most commonly used domain registrars:


Please make sure to remove all other A and AAAA records. They can take precedence over the ones you set up and point to the wrong server.

Mind the dot. Some providers require you to add a . behind your domain name in the CNAME record. You can spot it when your domain name ends up looking like some combination in your record:

You can debug your DNS settings with a tool like

Domain Taken

If you get an error that your domain is already taken, you likely have another project that is using it. Remove the domain in that specific project and add it to the one you want. If that’s not working contact support.


These are instructions for technical folks. You can share them with your developer if you have an advanced setup and need to debug.

We use the command line tool dig in combination with the public dns server and example domain

Check A records (apex domain only)

Confirm that the DNS name only has the two Framer A records pointing to:

$ dig @1.1 +short A > >

Check that it does not contain any additional IPv4 addresses in the response.

Check for no AAAA records (apex domain only)

Confirm that the DNS name does not have any AAAA (IPv6) records:

$ dig @1.1 +short AAA > (the response should be empty)

Check CNAME (sub-domain only)

Confirm that the DNS name points to (note the trailing .!)

$ dig @1.1 +short CNAME >