This tutorial will show you how to properly set up the DNS (CNAMEs / IP Addresses) for your WPENGINE-hosted website.
1. Decide where you want the website to “live”
Options are: www, non-www, or some other subdomain. e.g. www.limecuda.com, limecuda.com, blog.limecuda.com
If you decide the site will reside at something like limecuda.com then the www version should 301 redirect to that or you will have SEO problems. The converse is true as well. If your site is at something like www.limecuda.com , anything accessed at limecuda.com should all globally 301 redirect to the proper www-version.
2. Add the domain in the WPENGINE domains section
The one you set as the main domain will determine if it is www or non-www. If you want www to be the domain that resolves then have it set in the “Domain Name *” spot and non-www in the “Redirect From” spot.
3. Locate the IP address and CNAME for the WPENGINE install
In your WPENGINE install’s dashboard you are provided two vital pieces of information: IP address and CNAME
4. Add / Update DNS Records
You will need to be able to make DNS changes wherever the “Total DNS” is hosted. You can tell by where the nameservers point. (Identify Nameservers using a WHOIS lookup)
A) Domain Setup using CloudFlare
This is our absolutely preferred way to host DNS. Many reasons… primarily because it allows “CNAME Flattening“. But it also has some caching and security advantages, keeps the DNS management away from where the domain is held (registrar) and it is free!
What is CNAME Flattening?
CloudFlare will follow a CNAME to where it points and return that IP address instead of the CNAME record.
By default, CloudFlare will only flatten the CNAME at the root of your domain
What this means is that you can add a CNAME for @ that points to your WPENGINE CNAME record and not have to use an IP address! Why is this a big deal? Because it is a massive pain if you ever have a bunch of WPENGINE installs migrated to a new WPENGINE server. You are given new IP addresses and will have to go change them for every site. Big hassle. Yes, they forward traffic from one IP to another for a time so there isn’t usually downtime.
Here is what a proper DNS setup for WPENGINE looks like on CloudFlare…
B) Domain Setup or WWW setup for non-CloudFlare DNS
These are the instructions if you are NOT using CloudFlare.
Note: limecuda.com is considered a “root” or “apex” domain. And www is technically a subdomain.
- An “A record” set to @ (or limecuda.com) that points to the install’s IP address e.g. 18.104.22.168
- A CNAME record for www that points to the install’s CNAME e.g. limecuda.wpengine.com
C) Subdomain Setup
This is the same if you are using CloudFlare, cPanel, or some other registrar-hosted Total DNS.
- Create a CNAME record for the actual subdomain you will be using e.g. blog.limecuda.com – use the install’s CNAME as the CNAME host (e.g. limecuda.wpengine.com)
- WPENGINE: DNS Overview, Best Practice: Configuring DNS, Update Your DNS Via CNAME or A Record
- We do provide high-end WordPress hosting and maintenance plans built on WPENGINE
Nicely done! I’ve been pulling my hair out with this all day. I couldn’t reconcile what I needed to do with WPE and my registrar. I’m and INTJ too, so naturally I was determined to either figure it out myself or find the answer thru research, before I would contact WPE for help.
Thank you for this tutorial! Last night I tried setting up a domain for my WP Engine site and it wasn’t a breeze. 🙂 Even as a seasoned web/software developer I was confused and didn’t know what I was supposed to do and where. Your tutorial helped clear a lot of that confusion and with the knowledge I got from it I also eventually found helpful articles from the WP Engine site too. Now everything works perfectly!
I am trying to add the DNS Records in cloudflare to connect to wpengine but I keep getting an error saying the CNAME host already exists but it is not there…How do I fix this?
Blake Imeson says
This error is when you try to add it on CloudFlare?
is there another www record of some sort already there? Might be a A record or a CNAME