# How I normalize email addresses without breaking login rules

A beginner-friendly guide to email normalization, lowercase domains, Gmail dots, plus tags, and why normalization must match your product rules.

- Date: 2026-09-27
- URL: https://ilham.dev/posts/how-to-normalize-email-addresses-without-breaking-login/
- Markdown: https://ilham.dev/posts/how-to-normalize-email-addresses-without-breaking-login/index.md
- Tags: email, data, identity, tools
- Reading time: 2 min


Email normalization reduces duplicate-looking addresses, but different providers and products have different rules.

The [Email Normalizer](/tools/email-normalizer/) tool helps me inspect the input and output without writing a one-off script first.

## The simple idea

Email normalization reduces duplicate-looking addresses, but different providers and products have different rules.

I use it to answer one focused question at a time, then I review the result before using it anywhere important.

## Step 1: Paste the email address

Paste the email address.

## Step 2: Lowercase the domain

Lowercase the domain.

## Step 3: Decide whether the local part should be lowercased

Decide whether the local part should be lowercased.

## Step 4: Handle plus tags only if your product policy allows it

Handle plus tags only if your product policy allows it.

## Step 5: Be careful with Gmail dot rules

Be careful with Gmail dot rules.

## Step 6: Use normalization for matching, but keep the original address for display when useful

Use normalization for matching, but keep the original address for display when useful.

## Step 7: Do not change login behaviour without considering existing users

Do not change login behaviour without considering existing users.

## My checklist

Before I trust the result, I check:

- Paste the email address.
- Lowercase the domain.
- Decide whether the local part should be lowercased.
- Handle plus tags only if your product policy allows it.
- Be careful with Gmail dot rules.
- Use normalization for matching, but keep the original address for display when useful.
- Do not change login behaviour without considering existing users.

The tool makes the mechanical part faster. The decision still belongs to me: is this result correct, safe, and appropriate for the real task?
