# Email Typos: Did You Mean Suggestions at Sign-Up

URL: https://email-validation.org/guides/email-typos/
Updated: 2026-11-08

> Documentation index: https://email-validation.org/llms.txt

A mistyped email address at sign-up costs you the customer and can cost you reputation: the person never gets your
mail, and a misspelled provider domain such as `gmial.com` may be a spam trap. The fix is a "did you mean"
suggestion: compare the typed domain with a short list of common mail domains and, when it is one small edit away,
offer the corrected address. Offer it, never apply it silently, because the person knows their address better than
any algorithm. A confirmation email then proves the final address works.

## What sign-up typos look like

The typos a form can catch are in the domain, where a misspelled name of a big mail provider stands out. The usual
shapes:

| Typed | Intended | Kind of mistake |
|---|---|---|
| `name@gmial.com` | `name@gmail.com` | two letters swapped |
| `name@gmai.com` | `name@gmail.com` | a letter missing |
| `name@gmaill.com` | `name@gmail.com` | a letter doubled |
| `name@gmail.con` | `name@gmail.com` | a wrong letter, here in the top-level domain |
| `name@hotmial.com` | `name@hotmail.com` | two letters swapped |
| `name@yahooo.com` | `name@yahoo.com` | an extra letter |

Typos in the local part, the text before the `@`, are much harder to catch: `jhon@` is a perfectly
plausible address for someone. Those usually show up later, as a [550 5.1.1](https://email-validation.org/bounce-codes/550-5-1-1/) bounce for a
mailbox that does not exist, or worse, as mail delivered to a stranger who really is `jhon@`.

Mobile keyboards add their own mistakes. Baymard Institute's form research lists email addresses among the inputs
that mobile auto-correct can "correct" into something wrong
([Baymard: Where to Disable Mobile Keyboard Auto-Correct](https://baymard.com/guidelines/948-where-to-disable-mobile-keyboard-auto-correct)).
Turn auto-correct off for the email field.

## Why typos are more than a lost sign-up

Some misspelled provider domains are run as typo traps. M3AAWG, the industry's anti-abuse working group, describes
a typo trap as an address with a deliberate, common typing error, most often in the domain, with `user@gmial.com` as
its example ([M3AAWG: Help! I Hit a Spam Trap!](https://www.m3aawg.org/help-i-hit-a-spam-trap)). A hit often shows
that the sender did not confirm the address it collected. M3AAWG adds that while such a trap may technically be a
pristine trap, many operators classify it differently, because senders can get it through otherwise legitimate
collection. Our
[spam traps guide](https://email-validation.org/guides/spam-traps/#typo) covers the other kinds.

So one mistyped address can do three kinds of harm: the customer never gets their receipt or sign-in code, your bounce
rate goes up, and if the domain is a trap, your sending reputation takes the hit.

## How a "did you mean" suggestion works

### Edit distance

A suggestion engine measures how many small edits separate the typed domain from each domain on a list of common
ones. A measure that fits typing well is the Damerau–Levenshtein distance: the smallest number of single-character
insertions, deletions, substitutions and swaps of two adjacent characters that turns one string into the other
([Wikipedia: Damerau–Levenshtein distance](https://en.wikipedia.org/wiki/Damerau%E2%80%93Levenshtein_distance)).
The swap is what makes the difference. Plain Levenshtein distance counts `gmial` to `gmail` as two substitutions; with
the swap it is a single edit. The same article reports that in Damerau's 1964 study of spelling errors, more than 80%
were a single error of one of these four kinds: a good reason to look only one or two edits away.

```text
typed:    gmial.com
intended: gmail.com
edits:    swap "i" and "a"  ->  distance 1
```

### Rules that keep suggestions honest

- **Compare only against a short, known list.** The goal is to catch slips on domains many people use, not to guess
  at every company domain. A typo in a small company's domain looks like any other valid domain.
- **Never suggest when the typed domain is itself on the list.** A person who typed a known domain correctly must not
  be told they made a mistake, even when it is one letter away from a bigger one.
- **Keep the local part as typed.** Only the domain is compared; a suggestion that also rewrites the name before the
  `@` is a guess too far.
- **Show one suggestion,** the closest match, and stay quiet when no domain is close enough.

These are spelling rules only. A suggestion says that the typed domain looks wrong; it does not say the suggested
address exists. That is what a check of the mailbox is for.

## Form design that catches typos

### Suggest, never correct silently

Show the suggestion next to the field, as a link or button the person can click: "Did you mean
name@gmail.com?" Let them accept it with one click or ignore it and edit the field themselves. Changing the address
without asking breaks the cases the list gets wrong, and the person may never notice that you are now writing to a
different address than the one they typed.

Baymard's research on validation and warnings makes the same distinction: block input only where a rule can never
reject good input, and warn about input that is probably wrong but might be right. For email fields, it advises a
forgiving validator (its examples include forms that refused a `+` in the address) and a warning that asks the person
to double-check an address that looks flawed
([Baymard: Form Usability: Validations vs Warnings](https://baymard.com/blog/validations-vs-warnings)).

### Timing and placement

- **Wait until the person leaves the field.** Both Nielsen Norman Group and Baymard advise against showing errors
  before the person has finished typing, and suggest validating a field once the user moves on
  ([NN/g: 10 Design Guidelines for Reporting Errors in Forms](https://www.nngroup.com/articles/errors-forms-design-guidelines/);
  [Baymard: Usability Testing of Inline Form Validation](https://baymard.com/blog/inline-form-validation)).
- **Put the message next to the field,** not only in a summary at the top of the form.
- **Remove the message as soon as the address is fixed.** In Baymard's testing, an email error that stayed visible
  after the participant had corrected the address was highly misleading.
- **Use the right field type.** An `email` input checks only that the text is formatted like an address, not that
  the address exists; MDN warns that this check must be repeated on the server
  ([MDN: input type="email"](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/input/email)).
  On phones, the email input mode brings up a keyboard with the `@` key at hand
  ([MDN: inputmode](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Global_attributes/inputmode)).

The browser's format check and a local suggestion can run on blur. A full check of the address should run from your
server, once, when the form is submitted, as our [sign-up form validation guide](https://email-validation.org/docs/guides/signup-form-validation/)
explains. For the format rules themselves, see the [email address syntax guide](https://email-validation.org/guides/email-address-syntax/).

### Confirm field or double opt-in

A second "confirm your email" field catches some typos, at the price of one more field to fill in. It cannot catch a
typo the person copies from the first field into the second, and it says nothing about whether the mailbox exists.
[Double opt-in](https://email-validation.org/guides/double-opt-in/) does more: only a person who receives the confirmation email and clicks its
link joins your list, so typo addresses and typo traps never do. The two fit together with a suggestion in front: fix
the slip on the form, then let the confirmation email prove the result.

## Our likely typo reason

When the domain looks like a misspelling of a common mail provider, the result is `invalid` with the reason
[`likely_typo`](https://email-validation.org/docs/statuses/invalid/#likely_typo): check the suggested correction. The action is `remove`, and the
`did_you_mean` field carries the suggested address where one is known; for every other result it is `null`
([validate API](https://email-validation.org/docs/api/validate/)).

On a form, ask the person to fix the address and offer the `did_you_mean` suggestion rather than changing it
silently, as the [invalid status page](https://email-validation.org/docs/statuses/invalid/) recommends. On a list you already have, fix a typo
only where you can confirm the correction, for example with the person; otherwise remove the address. You can try
the handling for free with the [test addresses](https://email-validation.org/docs/test-addresses/).

The reason covers common provider domains only. A typo in a company domain, or in the part before the `@`, gets
whatever result the address really has, for example `invalid` with the reason `no_mailbox` or `no_dns`.

## Questions

### Should I auto-correct gmial.com to gmail.com?

No. Offer it as a suggestion the person accepts with one click. A silent change can turn a correct but unusual
address into a wrong one, and the person never sees it happen.

### Does a suggestion mean the corrected address exists?

No. It only means the typed domain is a likely misspelling of a common one. Check the corrected address like any
other, and confirm it with a confirmation email.

### Is a confirm email field enough?

It catches some slips, but not one copied from the first field, and it cannot prove the mailbox works. Pair a
suggestion on the form with [double opt-in](https://email-validation.org/guides/double-opt-in/).

## Try it

Check an address in the free [email checker](https://email-validation.org/email-checker/) to see its status, reason and any suggestion, or clean
an existing list with [bulk email verification](https://email-validation.org/bulk-email-verification/).

## Related

- [The invalid status: likely typo](https://email-validation.org/docs/statuses/invalid/#likely_typo)
- [Validate sign-up forms](https://email-validation.org/docs/guides/signup-form-validation/)
- [Glossary: typo domain](https://email-validation.org/glossary/#typo-domain)
- [Glossary: spam trap](https://email-validation.org/glossary/#spam-trap)

## Related guides

- [Spam traps explained](https://email-validation.org/guides/spam-traps/)
- [Double opt-in (confirmed opt-in)](https://email-validation.org/guides/double-opt-in/)
- [Email address syntax explained](https://email-validation.org/guides/email-address-syntax/)
- [Disposable email addresses explained](https://email-validation.org/guides/disposable-email-addresses/)
- [Reduce your email bounce rate](https://email-validation.org/guides/reduce-email-bounce-rate/)
- [All guides](https://email-validation.org/guides/)

## Sources

- [M3AAWG: Help! I Hit a Spam Trap!](https://www.m3aawg.org/help-i-hit-a-spam-trap) (February 2023): typo traps, the
  `gmial.com` example, why they are classed separately.
- [Wikipedia: Damerau–Levenshtein distance](https://en.wikipedia.org/wiki/Damerau%E2%80%93Levenshtein_distance): the
  four edit operations and Damerau's 1964 finding on single errors.
- [Baymard: Form Usability: Validations vs Warnings](https://baymard.com/blog/validations-vs-warnings) (2014): forgiving
  email validators, warnings instead of blocks.
- [Baymard: Usability Testing of Inline Form Validation](https://baymard.com/blog/inline-form-validation) (January
  2024): validate on leaving the field, clear errors once fixed.
- [Baymard: Where to Disable Mobile Keyboard Auto-Correct](https://baymard.com/guidelines/948-where-to-disable-mobile-keyboard-auto-correct):
  auto-correct changing email addresses.
- [NN/g: 10 Design Guidelines for Reporting Errors in Forms](https://www.nngroup.com/articles/errors-forms-design-guidelines/):
  timing and placement of inline errors.
- [MDN: input type="email"](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/input/email) and
  [MDN: inputmode](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Global_attributes/inputmode): what the
  browser checks, server-side validation, the email keyboard.

## Get up to 500 free credits. No card needed.

New accounts get 500 free credits (100 when you sign up with a free email provider such as Gmail, Outlook or Yahoo, or another personal mailbox such as a paid one like Fastmail or one from your internet provider). Try it on your own list before you buy. [Create your account](https://email-validation.org/signin/?new=1) or [open the free email checker](https://email-validation.org/email-checker/).
