Domain Expiration Monitoring: The Outage Nobody Plans For.
Registrar renewal email is not monitoring. We read the registry expiry for three domains and list the five ways the warning never arrives.
Short answer: domain expiration monitoring means reading the registry expiry date for every domain you look after, on a schedule, and holding that list somewhere that is not the registrar. Auto-renew and renewal email are not monitoring. Both fail silently, and the failure takes the website and the mail down together.
Reading the authoritative date

whois on 7 September 2026. Healthy, which is the point ofchecking rather than assuming.*
whois example.com | grep -iE "Registry Expiry Date|Expiration Date" | head -1
Always use the registry date. Not the registrar dashboard, which can lag behind a completed renewal, and not the renewal email, which may be about a different domain in the same account. When they disagree, the registry is correct.
Extending the check to the rest of the portfolio, and to the locks
The original table covers three domains. I re-ran the same whois command against six while expanding this post, adding the three not previously checked, and read one more field on all of them that the original check did not capture.
whois example.com | grep -iE "Registry Expiry Date|Registrar:|clientDeleteProhibited|clientTransferProhibited"
| Domain | Registry expiry | Registrar | Transfer/delete locked |
|---|---|---|---|
| sitea.example | 2029-06-25 | GoDaddy | yes |
| siteb.example | 2028-07-24 | GoDaddy | yes |
| sitec.example | 2028-07-20 | GoDaddy | yes |
| sited.example | 2028-05-18 | GoDaddy | yes |
| sitee.example | 2028-05-19 | GoDaddy | yes |
| sitef.example | 2028-05-31 | GoDaddy | yes |
All six healthy, all with at least a year and a half of runway, and every one carries both clientTransferProhibited and clientDeleteProhibited at the registry. Those two EPP status codes are worth checking alongside expiry, not only during a renewal audit but as a standing part of the same pass, because they answer a related but different question: not “will this domain lapse” but “can this domain be moved or removed without our knowledge even while it remains valid.” A domain a quarter from expiring but missing a transfer lock is exposed to a different attack entirely, a social-engineered or credential-based unauthorized transfer away from the account that controls it, which no renewal reminder would ever catch because the domain never actually lapses in that scenario.
Six domains, one registrar, consistent locks across every one, is itself worth having confirmed rather than assumed. A portfolio this size concentrated on a single registrar means one compromised registrar account is a single point of failure for every domain in it, the same trade-off this blog’s own post on nameserver provider concentration already names for DNS specifically, applying here one layer up the stack.
Why the renewal email does not save anybody

an address on that domain, so once it stops resolving, the only notification you would get can no longer be delivered.*
| Failure | Why the email doesn’t save anybody |
|---|---|
| registrant address is a former employee | the mailbox was closed when they left |
| registrant address is on the domain itself | once it lapses, the mail stops, including the warning |
| card on file expired | auto-renew fails silently, everything looks configured |
| notices land in spam | registrar mail is bulk mail, filtered like bulk mail |
| client owns the domain, you own the site | the warning goes to somebody who does not know what it means |
The auto-renew case is worth dwelling on because it feels safe. Auto-renew is enabled, so the box is ticked, so nobody looks again. The card on file expired eleven months ago. The renewal attempt fails, the notice goes to a mailbox nobody reads, and the domain lapses with every setting looking correct.
This is the same failure shape as a backup that has never been restored: a mechanism everyone believes in that has never once been exercised.
What a lapse actually costs
Not just downtime. It takes the mail with it, because the MX records live in the same zone. So the client cannot receive the notification that their domain expired, cannot receive password resets to fix it, and in many cases cannot prove ownership from an address on that domain.
Then the recovery clock starts. Most gTLDs go through a grace period, then a redemption period with a substantial fee, then release. The recovery gets more expensive and less certain at each step, and the whole time the site is off the internet.

does not vary: it gets more expensive and less certain at every stage, and the site is off the internet for all of it.*
| Day | Stage | Site and mail | Recovery |
|---|---|---|---|
| 0 | expiry passes | may still resolve briefly | renew normally |
| 1 to 30 | grace period | usually parked or offline | renew at normal price |
| ~30 to 60 | redemption period | offline | fee, often 10x the renewal |
| ~60 to 65 | pending delete | offline | nothing you can do |
| ~65+ | released to the public | gone | anybody may register it |
Caveat: windows vary by registry and TLD. The stages and their ordering are general; the exact day counts are the ones to confirm for whichever TLDs you actually hold before quoting them to a client.
The worst version is a domain that lapses on a Friday for a client who does not check their personal email at weekends.
Setting up domain expiration monitoring properly
Four things, none of which take long.
Hold the list outside the registrar. A spreadsheet with domain, registry expiry, registrar, and who pays. The registrar is the system that is failing in every scenario above, so it cannot be the only place the information lives.
Check the registry, on a schedule. The loop is one line per domain and reads the authoritative date rather than a cached one.
Watch at 90, 60, 30 and 7 days. Ninety days is when a card can be replaced calmly. Seven days is when somebody needs to be phoned.
Fix the registrant address. If it is on the domain itself, or belongs to somebody who left, that is the highest-value change on this page and it takes ten minutes per domain.
While you are in the zone, the same pass is a good moment to confirm the nameservers still point where you expect and that nothing is pointing at a service that no longer exists.
Why WHOIS itself cannot answer the registrant-address question anymore
The failure table above names a stale or on-domain registrant address as one of the ways a renewal warning never arrives. I checked whether that specific detail is even visible from outside, the same way expiry and the transfer locks are.
whois sitea.example | grep -iE "Registrant Email|Registrant Name|Admin Email"
Nothing came back. Every one of the six domains checked for this post returns no registrant contact information at all through public WHOIS, standard practice since GDPR-driven privacy redaction became the registrar default rather than an opt-in. That is good for the domain owner’s personal privacy and it closes off the one external check that would otherwise confirm or rule out the exact failure mode this post spends the most time on: whether the address receiving renewal notices is still a working mailbox somebody reads.
That gap is not a flaw in this post’s method, it is confirmation of something this post already argues from a different angle: the registrant-address question cannot be answered from outside at all, by design, on any domain registered in the last several years. It has to be answered from inside the registrar account, by someone who can actually see the contact record, which is precisely why the “who owns it” documentation this post recommends below is not a nice-to-have alongside the external expiry check. It is the only way this particular failure mode gets checked at all, because WHOIS privacy has made it permanently invisible to anyone looking from outside.
Who actually owns it
One organisational note, because it causes more lapses than any technical failure.
For every client domain, somebody should be able to answer three questions immediately: which registrar, whose card, and whose email address receives the notices. If the answer to any of them is “I think the client handles it”, then nobody is monitoring that domain and everybody believes somebody is.
Write it down per client, and keep it current as people join and leave. That single document is worth more than any alerting system you could configure without it.
Protuno’s free audit reads the domain expiry date from the registry as part of the DNS checks, so a whole portfolio’s dates land in one place without logging into anything. Wren is live now.
Pull the registry date for every domain you look after this week and put them in one document sorted by date. It takes an hour, and it is the cheapest insurance in this entire job.
What a single-registrar portfolio actually needs, once expiry is handled
Having confirmed all six of our own domains sit on one registrar, correctly locked, with healthy expiry dates, the remaining risk worth naming is the one that has nothing to do with any individual domain’s own status: access to the registrar account itself. Every protection covered so far, the transfer lock, the delete lock, the correct expiry date, is only as strong as whoever can log into that one GoDaddy account and change them.
That reframes the practical checklist for a small portfolio like this one. Two-factor authentication on the registrar account, a short, current list of exactly who has access to it, and a plan for what happens if that access needs to be revoked quickly, matter more here than they would for a portfolio spread across a dozen registrars, because there is exactly one door and it opens onto everything. A compromised password on the account holding six years of combined domain runway is a worse single afternoon than any individual domain lapsing, because it can touch every domain in the portfolio simultaneously rather than one at a time.
This is not a criticism of concentrating a small number of owned domains on a single registrar, which is a completely ordinary and often sensible choice for a portfolio this size. It is the other half of the trade-off this post’s earlier section names when it points at nameserver concentration: fewer moving parts to check, and a single point of failure worth protecting properly rather than assuming is safe because it has never failed yet. The registrar account’s own security posture, not the individual domain records inside it, is the actual thing worth auditing next, and it is a check this post’s own external whois loop cannot perform, because it lives entirely inside an account nobody outside the organisation can see.
Comments