DNS records explained, from A to CAA
DNS records tell the internet where your website lives, which server takes your email, who may send mail as you and which authorities may issue your SSL certificate. This page covers each record you're likely to touch, with values you can copy.
Before you start
- Know where your DNS is managed. If the domain uses our nameservers, that's cPanelZone Editor; otherwise it's your registrar or a DNS provider such as Cloudflare. Our WHOIS lookup shows the nameservers.
- Have your server IP to hand: it's under General Information on the cPanel home screen.
- For third-party services, copy values exactly from their setup page. One wrong character in a TXT record breaks it silently.
Every record at a glance
Each record has a name (which host it's for), a type, a value and a TTL (how long others may cache it). In the name column, @ means the domain itself, yourdomain.in; anything else is a subdomain, so www means www.yourdomain.in.
| Type | What it does | Example name | Example value |
|---|---|---|---|
| A | Points a name at an IPv4 address | @ | 203.0.113.24 |
| AAAA | Points a name at an IPv6 address | @ | 2001:db8::24 |
| CNAME | Makes one name an alias of another | www | yourdomain.in |
| MX | Says which server receives email | @ | 0 mail.yourdomain.in |
| TXT | Free text: SPF, DKIM, DMARC, verification | @ | v=spf1 +a +mx ~all |
| CAA | Lists who may issue SSL certificates | @ | 0 issue "letsencrypt.org" |
| NS | Names the servers that hold your DNS | @ | ns1.your-assigned-ns |
| SRV | Points a service (calls, autodiscover) at a host and port | _autodiscover._tcp | 0 0 443 mail.yourdomain.in |
Written out in zone-file form, the same fields appear on one line each. This is also how our DNS lookup tool and the dig command show them:
; name TTL class type value
@ 3600 IN A 203.0.113.24
www 3600 IN CNAME yourdomain.in.
@ 3600 IN MX 0 mail.yourdomain.in.
@ 3600 IN TXT "v=spf1 +a +mx ~all"
Website: A and AAAA: where your site lives
An A record maps a name to an IPv4 address; an AAAA record does the same for IPv6. Browsers look these up first, so they decide which server answers when someone types your domain.
@ 3600 IN A 203.0.113.24
@ 3600 IN AAAA 2001:db8::24
shop 3600 IN A 198.51.100.7 ; a subdomain on another server
- One address per name is what you want almost every time. Two A records on the same name split visitors between both servers at random.
- Add an AAAA record only if your server has an IPv6 address listed in your welcome email or control panel. If you're moving hosts, delete the old AAAA record: visitors on IPv6 will otherwise keep reaching the old server.
- To move a whole site to us, follow Point your domain to VirtualCloud.
CNAME: one name pointing at another
A CNAME says "this name is an alias; look up that other name instead". It's the usual way to point www at your main domain, or a subdomain at a hosted service that gives you a hostname rather than an IP address.
www 3600 IN CNAME yourdomain.in.
shop 3600 IN CNAME yourstore.provider.example.
status 3600 IN CNAME yourbrand.statuspage.example.
Never put a CNAME on the root (@). A name with a CNAME can't have any other record, and your root domain always needs NS and SOA records, plus MX for email. A root CNAME breaks email and confuses resolvers. Use an A record at @ and keep CNAMEs for subdomains.
Some DNS providers offer "ALIAS", "ANAME" or "CNAME flattening" to work around this. The cPanel Zone Editor offers A, AAAA, CAA, CNAME, MX, SRV and TXT records, so on our nameservers use an A record at the root. A CNAME value is always a hostname: never an IP address, and never a URL with https:// or a path.
Email: MX: who receives your email
MX records name the servers that accept mail for your domain. Each has a priority: senders try the lowest number first and fall back to higher numbers only if it's unreachable. An MX value must be a hostname with its own A record, not an IP address or a CNAME.
| Where your email is hosted | Name | Priority | Value |
|---|---|---|---|
| VirtualCloud hosting (cPanel) | @ | 0 | mail.yourdomain.in |
| Google Workspace | @ | 1 | smtp.google.com |
| Microsoft 365 | @ | 0 | yourdomain-in. |
Use only one provider's MX records at a time; mixing them sends some mail to a server that has no mailbox for it. With mail on our hosting, create an email account in cPanel for each address before you point MX at it. Take the exact Microsoft 365 value from its admin centre, because it's built from your domain name.
Email hosted elsewhere, website with us? Besides the MX records, open cPanelEmailEmail Routing and choose Remote Mail Exchanger. Otherwise our server still treats the domain as local and keeps mail sent from your own website, such as contact-form messages, instead of passing it on. Want mailboxes stored in India without running them yourself? See Business email.
Email: TXT records: SPF, DKIM, DMARC and verification
TXT records hold text that other systems read. Three of them decide whether your mail is trusted: Gmail and Yahoo require all three from bulk senders, and mail without them is far more likely to land in spam for everyone else too. cPanelEmailEmail Deliverability shows whether SPF and DKIM are valid for each domain and can repair them in one click when your DNS is with us.
SPF: which servers may send as you
One TXT record on @ that starts with v=spf1. List every service that sends mail for the domain, then end with ~all (soft fail) or -all (hard fail).
; mail sent from your VirtualCloud hosting only
@ 3600 IN TXT "v=spf1 +a +mx +ip4:203.0.113.24 ~all"
; hosting plus Google Workspace, merged into ONE record
@ 3600 IN TXT "v=spf1 +a +mx +ip4:203.0.113.24 include:_spf.google.com ~all"
A domain must have exactly one SPF record. Two separate v=spf1 records make both invalid, so merge the include: parts into one line. SPF also allows at most 10 DNS lookups, so remove services you no longer use.
DKIM: a signature on every message
DKIM publishes a public key under a selector, and the sending server signs each message with the matching private key. cPanel creates the key for you; Google Workspace and Microsoft 365 give you their own records in their admin consoles.
default._domainkey 3600 IN TXT "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA…"
Copy the whole value in one go. Some DNS panels split long keys into several quoted strings; that's fine as long as no characters are lost.
DMARC: what to do when checks fail
DMARC tells receivers what to do with mail that fails SPF and DKIM, and where to send reports. Start by only monitoring, then tighten once the reports show your real mail passing.
; week 1: monitor only
_dmarc 3600 IN TXT "v=DMARC1; p=none; rua=mailto:dmarc@yourdomain.in"
; later: quarantine, then reject
_dmarc 3600 IN TXT "v=DMARC1; p=quarantine; rua=mailto:dmarc@yourdomain.in"
Verification records
Google Search Console, Microsoft 365, payment gateways and other services ask you to add a TXT record such as google-site-verification=abc123 to prove you own the domain. You can have as many of these on @ as you need, next to your SPF record. Keep them: some services check again later.
SSL: CAA: who may issue your SSL certificates
A CAA record lists the certificate authorities allowed to issue certificates for your domain. With no CAA records at all, any authority may, which is the default and works fine. Add them only if your security policy asks for it, and then include every authority you use.
@ 3600 IN CAA 0 issue "letsencrypt.org"
@ 3600 IN CAA 0 issue "sectigo.com"
@ 3600 IN CAA 0 issuewild "sectigo.com"
@ 3600 IN CAA 0 iodef "mailto:security@yourdomain.in"
Free AutoSSL in cPanel uses Let's Encrypt or Sectigo depending on the server, so allow both. If you buy a certificate from our SSL certificates range, add the authority named on your order before you request it.
A wrong CAA record stops renewals. Public certificates are limited to 200 days from 15 March 2026, and 100 days from March 2027, so certificates renew more often than they used to. A CAA record that leaves out your authority shows up as a failed AutoSSL run within weeks. Turn on free SSL explains how to check.
TTL and propagation
The TTL (time to live) is how many seconds other resolvers may keep a cached copy of a record. "Propagation" is simply those caches expiring around the world, so a change can be visible to you and invisible to a customer for up to one TTL.
| TTL | Means | Use it for |
|---|---|---|
| 300 | 5 minutes | The day before a move, on the records you're about to change |
| 3600 | 1 hour | A good everyday value for most records |
| 14400 | 4 hours | The default for new records in the cPanel Zone Editor |
| 86400 | 1 day | Records that almost never change, such as NS |
Lowering a TTL only helps once the old, longer TTL has run out, so do it a day ahead. Nameserver changes, such as when you set up private nameservers, take longest: the registries behind extensions such as .com publish their NS records with TTLs of up to two days, which is why we say to allow up to 48 hours. Check progress with our DNS lookup tool, which asks two public resolvers at once.
How to: Edit records in the cPanel Zone Editor
This works when your domain uses VirtualCloud nameservers. If it doesn't, the same fields exist at your registrar or DNS provider under a name such as DNS records or Manage DNS.
-
Open the zone for your domain
Log in to cPanel and go to DomainsZone Editor. Click Manage next to the domain. The table lists every record, with a filter for each type.
-
Add the record
Click the arrow beside + Add Record and choose the type. Fill in Name, TTL and Record (the value). cPanel adds your domain to the name for you, so for www.yourdomain.in you can type just
www.Manage zoneFilter: AllNameTTLTypeRecordyourdomain.in.14400A203.0.113.24www.yourdomain.in.14400CNAMEyourdomain.inyourdomain.in.14400MX0 mail.yourdomain.in_dmarc.yourdomain.in.3600TXTv=DMARC1; p=none; rua=…Save RecordCancelExample zone. The highlighted row is a new DMARC record being added. -
Save, then check it from outside
Click Save Record. Our nameservers serve the change straight away; other resolvers pick it up as their cached copies expire. Confirm it with the lookup tool or from a terminal:
dig +short TXT _dmarc.yourdomain.in @1.1.1.1 dig +short MX yourdomain.in @8.8.8.8
Common DNS record mistakes
I added a record but nothing changed
You may have edited DNS in the wrong place. Only the provider named in your domain's nameservers is used; records anywhere else are ignored. Check the nameservers with our WHOIS lookup, then make the change there. If they're ours, wait one TTL and look again with the DNS lookup tool.
The record shows up as www.yourdomain.in.yourdomain.in
Your DNS panel adds the domain to the name automatically and you typed it in full as well. Delete the record and add it again with only the host part, for example www or _dmarc. In zone-file form, a full name must end with a dot.
Mail checks report "multiple SPF records" or "permerror"
There are two TXT records starting with v=spf1, or the record needs more than 10 lookups. Merge everything into one record, as in the SPF example, and drop include: entries for services you no longer use.
The panel refuses a CNAME because "other data" exists
Something else already uses that name, often an A record or a TXT record. A CNAME has to be the only record on its name, so remove the other record first, or use an A record instead. On the root domain, always use an A record.
AutoSSL fails with a CAA error
A CAA record on the domain doesn't list the authority AutoSSL uses. Add 0 issue "letsencrypt.org" and 0 issue "sectigo.com", or delete the CAA records altogether, then run AutoSSL again from cPanelSSL/TLS Status.
Was this guide helpful?Your answer stays in this browser; nothing is sent unless you write to us below.
Related guides
All 16 guidesNot sure a record is right? Ask an engineer.
Tickets and email are answered 24/7 in English and Hindi. Tell us the domain and paste the record you're trying to add, and we'll check it against the live zone.