The SOA Record Explained: Every Field of a DNS Start of Authority Record, and What It Means When a Domain Changes Hands

· Last reviewed · 16 min read

An SOA record, short for Start of Authority, is the mandatory DNS record that opens every zone and declares who is authoritative for it. Exactly one SOA record exists per zone, it sits at the zone apex, and during a zone transfer it is the first record sent.

The record packs seven administrative fields into one line: the primary nameserver, the administrator contact, a version number, and four timers that govern how a zone is kept in sync. Read correctly, those fields tell an operator whether a zone is healthy, stale, or misconfigured.

This guide defines every field against the RFCs that specify them, reads a real SOA record line by line, lists the misconfigurations that break a zone, and adds the angle the reference guides skip: what the SOA record reveals about a domain that has just changed hands. When an aged or expired domain moves to a new owner and a new DNS host, its SOA is rebuilt from scratch, and a clean record is one signal of a clean handover. SEO Domains operates the curated marketplace that screens that raw material before it changes hands, which is where a clean handover starts.

What is an SOA record?

An SOA (Start of Authority) record is a mandatory DNS resource record that holds administrative information about a zone: the primary nameserver, the responsible contact, a serial version number, and the timers that govern zone transfers. RFC 1035 defines it. Every zone carries exactly one, placed at the zone apex, and it is the first record transmitted in a zone transfer.

The phrase Start of Authority marks the point where authority for a portion of the domain name space begins. A zone is the slice of DNS that one set of nameservers answers for, and the SOA record stands at the top of that slice as its administrative header.

The plain-English definition of an SOA record

Think of a zone file as a register of every address inside a domain. The SOA record is the cover page of that register. It names the office that maintains the register, names the person responsible for it, stamps the edition number, and sets the schedule on which copies of the register are checked and renewed.

Because the cover page carries the edition number, any server holding a copy can compare its edition against the original and know in one read whether the register has been revised.

Where the SOA record sits and why it is mandatory

The SOA record lives at the zone apex, the root name of the zone, written as the @ symbol in a standard zone file. It is mandatory because the DNS specification treats a zone without an authoritative header as undefined. A nameserver that loads a zone file lacking an SOA record rejects it.

Two records are always required at the apex: the SOA record and at least one NS record listing the zone’s nameservers. The SOA names the single primary source of truth, while the NS records name every server permitted to answer for the zone.

The fields of an SOA record, one by one

An SOA record carries seven data fields wrapped in the standard resource-record envelope of name, TTL, class, and type. The seven are MNAME (primary nameserver), RNAME (administrator email), SERIAL (zone version), REFRESH, RETRY, and EXPIRE (the three zone-transfer timers), and MINIMUM (the negative-caching TTL). RFC 1035 defines the structure; RFC 2308 redefined MINIMUM.

The first two fields identify the zone’s owners. The serial tracks its version. The final four are durations in seconds that control synchronisation and caching. The table sets out each field, its job, and the source that specifies it.

FieldWhat it holdsDefined or governed by
MNAMEThe primary (master) nameserver for the zone, where authoritative edits originateRFC 1035
RNAMEThe responsible administrator’s email, with the first dot read as the @ signRFC 1035
SERIALThe zone version number a secondary reads to detect a changeRFC 1035, conventions in RFC 1912
REFRESHSeconds a secondary waits before checking the primary for a new serialRFC 1035
RETRYSeconds a secondary waits before retrying after a failed refreshRFC 1035
EXPIRESeconds after which a secondary stops answering if it cannot refreshRFC 1035, range in RFC 1912
MINIMUMThe TTL for caching a negative (NXDOMAIN) responseRFC 1035, redefined by RFC 2308
Figure 1. The seven SOA fields, their function, and the RFC that specifies each. The structure traces to RFC 1035 of 1987; RFC 2308 of 1998 repurposed the MINIMUM field from a record-level floor into the negative-caching TTL.

MNAME and RNAME: who runs the zone and who to contact

MNAME holds the hostname of the primary nameserver, the one server where authoritative changes to the zone are meant to originate. Secondary servers pull their copies from the MNAME host, so it names the single source of truth for the zone’s contents.

RNAME holds the administrator’s email address in a DNS-specific format. The @ sign is replaced by a dot, so an address of [email protected] is written as hostmaster.example.com inside the record. A literal dot in the local part is escaped, so [email protected] becomes john\.doe.example.com.

The serial and the four timers

SERIAL is an integer that increases every time the zone is edited. A secondary server compares the serial it holds against the serial on the primary, and a higher number on the primary signals that the zone changed and a transfer is due.

REFRESH, RETRY, and EXPIRE are durations in seconds that schedule those checks, and MINIMUM is the duration in seconds for which a negative answer is cached. Each carries enough behaviour to warrant its own section, covered below.

A real SOA record, read line by line

A working SOA record from a published zone makes every field concrete. The example below uses ICANN’s own zone, formatted in standard zone-file syntax. The procedure to retrieve any domain’s SOA record is a single command, dig SOA or nslookup -type=soa, and the steps that follow read each value of the output.

The standard zone-file representation places the apex symbol, class, type, the two name fields, then the five numeric values inside parentheses, each annotated with a comment. This sample is drawn from the verbatim record published in the Wikipedia reference for the SOA record.

$TTL 86400 @ IN SOA ns.icann.org. noc.dns.icann.org. ( 2020080302 ; Serial 7200 ; Refresh 3600 ; Retry 1209600 ; Expire 3600 ; Negative-response caching TTL (minimum) )

How to retrieve and read any SOA record, step by step

The record above can be pulled for any zone from a terminal. The sequence below issues the lookup and interprets the result field by field, so a stale or misconfigured zone is visible at a glance.

  1. Run the lookup

    From any terminal, the command is dig SOA example.com on Linux or macOS, or nslookup -type=soa example.com on Windows. Both return the zone’s live SOA record from an authoritative nameserver. The dig form prints the seven fields on one answer line.

    The mistake: querying a caching resolver and reading a stale copy. Append @ followed by the zone’s authoritative nameserver, for example dig SOA example.com @ns.example.com, to read the source directly.

  2. Identify MNAME and RNAME

    The first two tokens after SOA are the primary nameserver and the administrator email. In the sample, ns.icann.org is the primary and noc.dns.icann.org decodes to [email protected]. Confirm the primary names the host intended to be authoritative.

    The mistake: reading the RNAME as a hostname. The first dot is the @ sign, so noc.dns.icann.org is a mailbox, not a server.

  3. Read the serial

    The serial 2020080302 is date-based: 2 August 2020, revision 02. A serial that has not advanced after a recent edit, or that runs backward, means secondaries are not picking up changes.

    The mistake: editing a zone without incrementing the serial. Secondaries then keep serving the old data because nothing told them to transfer.

  4. Check the four timers

    Refresh 7200, retry 3600, expire 1209600, and the trailing 3600 negative-caching TTL are all in seconds. Confirm expire (here 14 days) is larger than refresh plus retry, and that it sits inside the RFC 1912 range, covered below.

    The mistake: an expire shorter than the refresh-plus-retry cycle. A secondary can then stop answering before it has finished trying to refresh.

Figure 2. Reading an SOA record from the command line, with the specific misread to avoid at each step. The dig and nslookup commands shown are the standard cross-platform way to retrieve the record.

The serial number: three conventions for versioning a zone

The serial number is the zone’s version counter, and it must rise on every edit. Three conventions are in common use: a plain sequential counter, a date-based YYYYMMDDnn format recommended in RFC 1912, and a Unix-epoch timestamp used by djbdns. All three share one rule, the number only goes up, because a secondary treats a higher serial as the signal to transfer.

Sequential, date-based, and epoch serials

The sequential convention starts at 1 and adds 1 with each change. It is simple but carries no information about when the edit happened.

The date-based convention, recommended by RFC 1912, writes the serial as YYYYMMDDnn: the four-digit year, two-digit month, two-digit day, and a two-digit revision counter for that day. A serial of 2017031404 reads as the fifth edit on 14 March 2017, since the counter starts at 00. This format dominates production zones because the date is legible at a glance.

The epoch convention, the default in djbdns, stores the number of seconds since 1 January 1970. It rises automatically with every passing second and, as the Wikipedia reference notes, is not exposed to the year 2038 rollover that affects 32-bit time storage.

Sequential

Begins at 1, increments by 1 per change. Minimal, but reveals nothing about edit timing. Easy to break by forgetting to advance it.

Date-based YYYYMMDDnn (RFC 1912)

Encodes year, month, day, and a daily revision counter. The dominant convention because the edit date is readable in the number itself.

Unix epoch (djbdns)

Seconds since 1 January 1970, rising on its own. Avoids the year 2038 issue, but the value is not human-readable without conversion.

The rule all three obey

The serial only ever increases. A serial that goes backward, or wraps past its maximum, stalls zone transfers because secondaries no longer see a higher number to act on.

Figure 3. The three serial-number conventions and the one rule they share. RFC 1912 recommends the date-based form. The serial is unsigned and 32-bit, so it wraps at 4,294,967,295, which is the practical ceiling the epoch and date forms stay clear of for decades.

Refresh, retry, and expire: the zone-transfer timers

Refresh, retry, and expire are three durations in seconds that schedule how a secondary nameserver keeps its copy of a zone current. Refresh sets the check interval, retry sets the wait after a failed check, and expire sets the deadline after which a secondary stops answering. RFC 1912 recommends an expire of 2 to 4 weeks, and a sound configuration keeps expire larger than refresh plus retry.

What each timer controls

Refresh is the interval a secondary waits before asking the primary whether the serial has changed. A shorter refresh propagates edits faster but adds query load. Retry is the shorter interval a secondary waits before trying again after a refresh attempt fails to reach the primary.

Expire is the safety limit. If a secondary cannot reach the primary for the full expire duration, it concludes its data is too stale to trust and stops answering authoritatively for the zone. This prevents an isolated secondary from serving outdated records indefinitely.

TimerWhat it setsA common value (seconds)Reference point
RefreshHow often a secondary checks the primary’s serial3,600 to 86,400 (1 to 24 hours)nslookup.io suggests 3,600; RFC 1035 sample uses 86,400
RetryWait before retrying a failed refresh3,600 to 7,200 (1 to 2 hours)Shorter than refresh, per common practice
ExpireDeadline before a secondary stops answering1,209,600 to 2,419,200 (2 to 4 weeks)RFC 1912 recommended range
Negative TTL (minimum)How long a negative answer is cached60 to 3,600 (1 minute to 1 hour)RFC 2308 governs the meaning
Figure 4. Common SOA timer values and their reference points. The expire range of 1,209,600 to 2,419,200 seconds is the RFC 1912 recommendation that DNS health checkers such as MXToolbox flag against. Exact values depend on how often a zone changes; the invariant is expire greater than refresh plus retry.

The timers and classic zone transfer

Refresh, retry, and expire govern the classic primary-and-secondary model, where a secondary pulls the zone over a transfer protocol. As the nslookup.io reference notes, modern cloud DNS providers replicate zones through proprietary database mechanisms, so on those platforms the three timers have little practical effect while the serial and the negative TTL still do. An operator running a self-hosted secondary, by contrast, depends on all three.

Minimum TTL and negative caching

The MINIMUM field originally set a floor on record TTLs, but RFC 2308 redefined it in 1998 as the negative-caching TTL: the duration for which a resolver caches a negative answer, such as a non-existent record. The effective negative-cache time is the smaller of the SOA record’s own TTL and this minimum value.

What negative caching does

When a resolver queries a name that does not exist, the authoritative server returns an NXDOMAIN, meaning no such record. Negative caching lets the resolver remember that absence so it does not re-query the authoritative server for every repeat lookup of the missing name. The MINIMUM field sets how long that memory lasts.

Under RFC 2308, the negative answer is cached for the lesser of the SOA TTL and the MINIMUM value. A minimum of 3,600 caches a not-found result for up to an hour, which cuts load but also delays the visibility of a newly added record by the same amount.

Why the redefinition matters

Before RFC 2308, the MINIMUM field was read as a lower bound on every record’s TTL, which produced inconsistent behaviour across resolvers. The 1998 redefinition narrowed it to negative caching alone, and that is the meaning every current resolver applies. Reading an old SOA record with the pre-2308 assumption is one way operators misjudge how a zone caches.

Common SOA misconfigurations and how to fix them

A handful of SOA mistakes account for the bulk of zone-sync and caching problems: a serial that does not advance, an expire outside the RFC 1912 range, an expire shorter than refresh plus retry, a wrong primary in MNAME, a malformed RNAME, and a negative TTL set so high that new records lag. Each has a direct, documented fix. The table consolidates them.

The left column is the misconfiguration, the centre column is why it breaks the zone, and the right column is the corrective move. Read down the fix column, the pattern is a serial that always increments, timers that respect the RFC ranges and the expire invariant, and contact and primary fields that are accurate.

The misconfigurationWhy it breaks the zoneThe fix
Serial not incremented after an editSecondaries see no higher number and never transfer the change, so they serve stale recordsAdvance the serial on every edit; date-based YYYYMMDDnn makes the omission obvious
Serial decreased or wrapped backwardA lower serial reads as no change, stalling all transfers until correctedSet a serial higher than the current one; if wrapped, use a documented serial-reset procedure
Expire outside 2 to 4 weeksHealth checkers flag it; too short risks early expiry, too long lets stale data persistSet expire within the RFC 1912 range of 1,209,600 to 2,419,200 seconds
Expire smaller than refresh plus retryA secondary can stop answering before its retry cycle finishesKeep expire larger than refresh plus retry by a clear margin
MNAME points to a non-authoritative hostSecondaries pull from, or NOTIFY goes to, a server that is not the real primarySet MNAME to the actual primary nameserver listed in the zone’s NS records
RNAME malformed or unescaped dotThe contact address is unreachable, and a literal dot in the local part is misreadWrite the @ as the first dot, and escape any literal dot as backslash-dot
Negative TTL (minimum) set very highNewly added records stay invisible to resolvers caching the prior NXDOMAINKeep the negative TTL modest, commonly 300 to 3,600 seconds, per RFC 2308 practice
Figure 5. The SOA misconfiguration checklist: the mistake, why it breaks the zone, and the documented fix. Most zone-sync incidents trace to the first two rows, a serial that did not advance or moved backward.

Every fix in the table is an edit the new operator makes after a domain is on its nameservers. None of it can repair a domain that arrived with registration or reputation problems baked in, which is the case for screening the name before purchase. The aged and expired domains listed on the SEO Domains marketplace are checked across their history before pricing, so the zone an operator rebuilds starts from a name without inherited baggage.

Reading the SOA record on an aged domain you just acquired

When an aged or expired domain transfers to a new owner and a new DNS host, its SOA record is rebuilt at the new host. The primary nameserver, the administrator contact, and the serial all reset to the new operator’s values. Reading the SOA right after a handover confirms the zone now answers from the intended host, and a stale or mismatched SOA is an early sign the transfer did not fully land.

What changes in the SOA when a domain moves

A domain acquisition changes who controls the zone, and the SOA record is where that control is recorded. The MNAME shifts to the new primary nameserver, the RNAME shifts to the new administrator’s contact, and the serial begins a fresh sequence under the new host’s convention. None of this carries over from the prior owner, because the new DNS host generates a clean record.

This is why the SOA is the first record worth reading after pointing an acquired domain at new nameservers. If the MNAME still names the seller’s nameserver, or the serial has not moved off a placeholder, the nameserver change has not propagated. The mechanics of that change are covered in the DNS and nameservers hub.

Sourcing the domain that starts on a clean record

A clean SOA record after a move is downstream of one decision: which domain was acquired in the first place. A domain with a sound registration history and a real prior use transfers cleanly and starts its new zone without inherited baggage. A junk drop bought on a raw metric can carry registration and reputation problems that surface long before any DNS detail matters.

This is where sourcing from a screened catalogue separates a clean handover from a troubled one. SEO Domains operates the curated marketplace where aged and expired domains are checked across their history and profile before they are listed, so the domain that lands on a new owner’s nameservers is vetted raw material. Browse the catalogue at the SEO Domains marketplace when sourcing a domain to rebuild on fresh DNS.

Does the SOA record matter for SEO?

The SOA record is not a direct ranking factor, and no search engine reads its serial or timers as a quality signal. Its SEO relevance is indirect: a broken SOA can take a zone offline, and a domain that resolves intermittently or not at all loses crawlability, availability, and ultimately ranking. Availability is the link between DNS health and SEO, not the SOA record’s contents.

The honest answer on SOA and rankings

Search engines rank pages on relevance, links, and content quality, not on DNS administrative fields. An optimised serial number or a perfectly tuned expire value earns no ranking benefit. Treating the SOA as an SEO lever is a category error.

The connection runs through uptime. If an expire value lets a zone go stale, or a wrong MNAME stops secondaries from syncing, the domain can stop resolving. A crawler that cannot resolve a domain cannot fetch its pages, and repeated unavailability degrades how a site is crawled and indexed. The SOA matters to SEO only in the sense that a healthy zone keeps the site reachable.

SOA record frequently asked questions

The five questions operators and domain buyers raise when reading an SOA record, answered against the RFCs that define the record and the zone-health practice built on them.

Q1Can a zone have more than one SOA record?

Exactly one. The SOA record is mandatory and unique per zone, placed at the zone apex. A zone file without an SOA record is rejected by the nameserver, and a second SOA record at the apex is a configuration error.

Q2Why does the RNAME email have no @ sign?

DNS syntax does not permit a raw @ in that field, so the first dot stands in for it. The address hostmaster.example.com decodes to [email protected]. A literal dot in the local part of the address is escaped with a backslash, so [email protected] is written as john\.doe.example.com.

Q3What is a good expire value for an SOA record?

RFC 1912 recommends an expire between 1,209,600 and 2,419,200 seconds, which is 2 to 4 weeks. The value must also stay larger than refresh plus retry so a secondary does not stop answering before its retry cycle completes. DNS health checkers flag expire values outside this range.

Q4Does the SOA serial number have to be a date?

No. Three conventions are valid: a plain sequential counter, the date-based YYYYMMDDnn format recommended by RFC 1912, and a Unix-epoch timestamp. The only hard rule is that the serial increases on every edit, because a secondary treats a higher serial as the signal to transfer the zone.

Q5What does the SOA record show after a domain is transferred?

After an aged or expired domain moves to a new owner and a new DNS host, the SOA names the new primary nameserver in MNAME, the new administrator in RNAME, and a serial under the new host’s convention. An SOA still naming the seller’s nameserver means the handover has not fully propagated. A dig SOA on the domain confirms the change landed.

Start an aged domain on a clean SOA: source a vetted domain

A healthy SOA record is the visible result of a clean domain handover, and a clean handover starts with the domain that was acquired. A vetted aged or expired domain with a sound registration history transfers without inherited problems, and its zone rebuilds on fresh DNS under the new owner. SEO Domains operates the curated marketplace that screens that raw material before it is listed.

Why the domain decides the handover

Every DNS detail in this guide sits downstream of one choice: which domain entered the picture. A domain with real prior use and a clean registration record moves to new nameservers cleanly, and its SOA reads correctly from the first lookup. A junk drop bought on an inflated metric can carry registration disputes, reputation flags, or a tangled history that no DNS edit resolves.

The asset is the clean domain, not a service

The product behind a sound SOA record is the domain itself, screened before purchase. It is not DNS hosting, not a managed service, and not a monitoring tool. A clean, vetted aged or expired domain is the raw material on which a healthy zone is built, and a junk domain is where the trouble starts.

How to source a domain that transfers clean

A domain that lands on a clean SOA survives a history and profile check before money changes hands. The signals that matter are documented across the authority and lifecycle hubs:

  • A registration history with real prior use and no spam or abuse flags.
  • A backlink profile that is editorially earned, read in the Domain Authority & Metrics hub.
  • Clean transfer status with no registrar lock or dispute that stalls the nameserver change.
  • A lifecycle position confirmed through the Expired Domain Fundamentals hub before purchase.

A domain that passes these is an asset on whatever it is built. A domain that fails them is a liability the first time its DNS is touched.

Anton Dimov, Head of SEO Product at SEO Domains

Anton Dimov

Head of SEO Product @ SEO Domains

Anton has worked in SEO since 2010 and has built products and services for SEO professionals since 2011. Part of SEO Domains since 2020, he leads the team expanding the company’s product portfolio.

He leads SEO at the SEO Domains marketplace, which operates a 220,000+ curated catalogue from $100 entry-level domains through premium acquisitions, screened across the catalogue, with Managed Account expert support for premium-tier clients.

· Last reviewed