How to Configure an A Record: A Practical Walkthrough
The dashboard fields differ by provider. The underlying decisions — apex vs subdomain, TTL, verification — are exactly the same everywhere.
Same Four Fields, Every Provider
Every DNS provider's interface looks slightly different, but underneath the styling, adding an A record always comes down to the same four inputs: which name it applies to, the record type, the target IPv4 address, and the TTL. Once you understand those four decisions independently of any specific dashboard, moving between providers — or reading someone else's screenshot in a support ticket — stops being confusing.
This walkthrough covers the decisions themselves, then how they map onto a handful of common environments: standard hosting dashboards, cloud DNS platforms with their own quirks, and CDN-fronted setups where the "right" configuration isn't always the obvious one.
Step 1: Decide Between Apex and Subdomain
The very first decision is which name you're actually configuring. The apex (or root) domain — example.com with nothing in front of it — behaves differently from a subdomain like www.example.com or app.example.com in one important way: the apex generally cannot use a CNAME record, because a zone's apex must also hold other required record types (like NS and SOA records), and CNAME can't coexist with anything else at the same name. This is exactly why apex domains are so often configured with an A record even when the target infrastructure would otherwise prefer a CNAME-style pointer.
| Name Type | Can Use CNAME? | Typical Approach |
|---|---|---|
| Apex (example.com) | No | A record, or provider-specific ALIAS/ANAME |
| Subdomain (www, app, blog) | Yes | Either A record or CNAME, depending on whether the target IP is stable |
Step 2: Determine the Correct Target IP
Where this IP comes from depends entirely on what's serving the site. For traditional hosting, it's the server's public IP, usually visible in the hosting provider's own dashboard. For a CDN-fronted deployment, it's whatever anycast or edge IP the CDN documentation specifies — not the origin server's IP, since pointing directly at origin would bypass the CDN entirely. For a cloud load balancer, it's the load balancer's assigned static or elastic IP, not any individual backend instance.
Step 3: Set an Appropriate TTL
Pick a TTL based on how likely you are to need to change this record again soon. If this is a first-time setup with a stable long-term IP, 3600 seconds (one hour) is a common, sensible default. If you're mid-migration or expect to make further changes, drop to 300 seconds until things stabilize, then raise it back up afterward.
Step 4: Provider-Specific Configuration Patterns
The concepts above apply everywhere; the interface details vary. A general mapping of common environments:
| Environment | Where the A Record Lives | Notable Quirk |
|---|---|---|
| Standard registrar DNS (most hosting/domain dashboards) | "DNS Management" or "Zone Editor" panel | Host field often uses "@" to represent the apex |
| Cloud DNS (Route 53, Cloud DNS, Azure DNS) | A dedicated hosted zone resource | Provider-specific alias records often preferred at apex over plain A |
| CDN-managed DNS (e.g. when DNS is delegated to the CDN) | The CDN's own DNS panel, separate from the registrar | CDN may auto-manage the A record and discourage manual edits |
| Self-hosted DNS (BIND, PowerDNS) | Zone file, edited directly | Requires manually incrementing the SOA serial number for changes to be recognized |
Home Networking: A Records Without Public DNS
Not every A-record-equivalent configuration touches the public internet. A home router's local DNS resolver, or a manually edited hosts file on an individual machine, can hold name-to-IP mappings that behave identically in principle but are resolved entirely on the local network, never reaching the public DNS hierarchy at all. This is common for accessing devices like a home NAS or a self-hosted service by a friendly name instead of memorizing a local IP, and it's worth knowing that changes here have zero effect on how the outside world resolves anything — they're invisible beyond your own network.
Enterprise DNS: Change Control Around A Records
In larger organizations, configuring an A record often isn't just a dashboard edit — it goes through a change management process: a ticket, a peer review of the proposed record, a scheduled maintenance window, and a documented rollback plan. This isn't bureaucracy for its own sake. A single mistyped A record on a production apex domain can take an entire public-facing service offline, and the blast radius scales with how much traffic depends on that one name. Treating A record changes on critical domains with the same rigor as a production deployment, rather than a quick DNS tweak, reflects that real risk.
Verifying the Change Actually Worked
Saving a record in a dashboard is not the same as confirming it works. A proper verification step queries the record externally, not just trusts the dashboard's confirmation message:
- Query the record directly with
dig A yourdomain.com +short @8.8.8.8, or use A Record Lookup for the same check without a terminal. - Confirm the returned IP matches exactly what you intended — a single wrong digit is easy to miss visually.
- If it doesn't match yet, check whether the previous TTL simply hasn't expired at the resolver you're querying, rather than assuming the change failed.
- Test from more than one external vantage point if the result seems inconsistent, since local caching can vary by network.
| Verification Check | Confirms |
|---|---|
| External dig/lookup matches intended IP | Record is correctly saved and resolving |
| Old IP still shown briefly after saving | Expected — previous TTL hasn't expired at that resolver yet |
| No A record returned at all | Record wasn't saved correctly, or was saved under the wrong host/name field |
Configuration Reference: A Best-Practice Checklist
| Step | Recommendation |
|---|---|
| Choosing apex vs subdomain | Confirm whether a CNAME is even allowed for this specific name before deciding |
| Sourcing the target IP | Use the value your hosting/CDN/load balancer documentation specifies, not a guess |
| Setting TTL | Lower ahead of planned changes, raise back up once stable |
| Self-hosted DNS | Remember to increment the SOA serial number, or secondary servers won't pick up the change |
| After saving | Always verify externally — never trust the dashboard's save confirmation alone |
Related Tools
Verify any A record change instantly with A Record Lookup. Check how far a change has propagated with DNS Propagation Checker. For the complete record set beyond just A, use DNS Lookup, For decoding what happens when it goes wrong, see A Record Errors, and for the underlying mechanics, A Record Explained.
FAQ
ToolsNovaHub tools are built and independently maintained with a focus on accurate, no-signup network and security utilities. Spotted an error? Let us know.
📋 Related Tools & Guides Comparison
| Resource | Type | Link |
|---|---|---|
| A Record Lookup | Tool | Open Tool → |
| DNS Propagation Checker | Tool | Open Tool → |
| DNS Lookup | Tool | Open Tool → |
| A Record Explained | Guide | Read Guide → |