A domain that expires does not vanish. It moves through stages, each one more expensive than the last, and the amount of time you have depends on the extension. Knowing the shape of it is the difference between a renewal and a purchase.
The Domains page shows the state of each domain, and the Renewal column reads expired once the date has passed. That label is the point at which this article starts.
Stage one, the grace period
For a short period after expiry, the domain can be renewed at the ordinary price. It stops working immediately when it expires, so the website and any mail on it go down at that moment, but the renewal itself is still routine.
The length is set by the registry rather than by us, and it varies more than people expect. On .com it runs for around forty days. .io gives around forty-four. Some extensions give none at all, and a domain there moves straight to the next stage the moment it expires.
Renewing during this window is the same action as renewing early, and it is worth doing the day you notice rather than the day you get round to it.
Stage two, the redemption period
Once the grace period closes, the domain enters redemption. It is still yours and nobody else can register it, but restoring it now costs a restore fee on top of the renewal, and that fee is set by the registry.
This is where the cost stops being trivial. The restore fee is often several times the price of the domain itself, and it is not something we can waive or negotiate, because it is charged to us by the registry on your behalf.
Not every extension has both stages, and the pattern is worth knowing. Generic extensions like .com and .dev typically run a grace period first and then move to redemption. Many country-code extensions, .co.za among them, skip the cheap stage and go straight to a restore fee. So a lapsed .co.za is more expensive to recover on day one than a lapsed .com is, which is the opposite of what most people assume.
Stage three, and then it is gone
After redemption ends, the domain is deleted and returns to the open market. There is no restore at this point and no claim you can make on it. If it mattered, somebody else may register it within minutes.
At that stage the only thing left is to register it again if it is still available, which means paying the registration price rather than a renewal and, if the domain has any value, competing with anyone else watching the same name.
What to do, in order
If the domain still appears in your list with an expired badge, renew it from the toolbox today. That is stage one and it is the cheap one.
If the renewal is refused or priced as a restore, the domain has moved to stage two. The recovery is not something you can complete from the Domains list, so open a support ticket with the domain name and we will run the restore with the registry. Expect the restore fee on top of the renewal, and expect it to vary by extension.
If it is gone entirely, it is gone. Registering it again is a new registration, not a recovery, and there is no grace left to appeal to.
Why this keeps happening to the same people
Because the date is not the thing people watch. A domain registered years ago comes due in a week nobody is thinking about domains, and the reminder email goes to an address that may not be the one being read.
Turning on auto-renew is the fix, and it takes a moment per domain. It raises the renewal invoice before the expiry date so the decision arrives while it is still cheap. What it does not do is pay the invoice, so a card that has expired turns the protection into a reminder.
If a domain carries your mail or your website, the cost of a lapse is not the restore fee. It is that both stop at the same moment and look exactly like a server fault to everybody who notices before you do.
One thing worth doing now
Sort your list by the Renewal column and look for anything inside thirty days. A domain due soon costs a renewal. The same domain in six weeks costs a renewal plus a restore fee, or costs nothing because it is already someone else's. That is the whole of the argument for looking today rather than when it lapses.
EnterraHost