My root domain isn’t working, what’s wrong?

Resolution

Root domains on Heroku require the use of "CNAME-like" records, often referred to as ALIAS or ANAME records.

Unfortunately, a number of popular DNS hosts such as GoDaddy, Namecheap, Bluehost, and others do not support these types of records. Instead they tend to offer the following:

  • A records
  • URL redirects / forwarding

There are caveats with both of these options, as discussed below:

A records: A records will not suffice for pointing your root domains to Heroku because they require a static IP. These records have serious availability implications when used in environments such as on-premise data-centers, cloud infrastructure services, and platforms like Heroku. Since Heroku uses dynamic IP addresses, its necessary to use a CNAME-like record (often referred to as ALIAS or ANAME records) so that you can point your root domain to another domain.

The easiest alternative to an A record on these types of DNS hosts is the next option:

URL redirects / forwarding: Since A records wont work with Heroku, many users choose to redirect traffic from their root domain to a subdomain, such as example.com > www.example.com.

The URL redirect / forwarding option only works for non-SSL requests. This means that:

  • Requests to http://example.com will successfully be redirected
  • Requests to https://example.com will fail with an SSL error.

If you need to support SSL on your root domain you will need to switch to a DNS host that supports CNAME-like records (often referred to as ALIAS or ANAME records). We have a list of ones you could use here: https://devcenter.heroku.com/articles/custom-domains#add-a-custom-root-domain