You write. The checker watches. Three seconds after you stop typing, the **Content checks** number in the toolbar updates — 0 to 100.

That number is content hygiene only. It is not sender health, and it is not the dashboard campaign delivery score. Think of it as a pre-flight: did this email forget its unsubscribe link, shout in ALL CAPS, or lean on "click here"?

<DocsPhoto
  src="/docs/content-deliverability/hero.png"
  alt="A cream envelope sliding into a dark steel inbox tray"
  caption="The job is simple: land in the inbox, not the junk folder."
/>

Click the score. You get the eleven checks, each with points and a one-line reason.

<DeliverabilityScorePreview />

## How it works

It runs on its own. No button to mash. After a 3-second pause it scores eleven things that push an email toward inbox or spam.

<DeliverabilityCheckGrid />

## The eleven checks

### 1. Unsubscribe link — 25 points

Required by law (CAN-SPAM, GDPR) and expected by every inbox.

- Use the `{{unsubscribeUrl}}` variable
- Type `/` and pick **Unsubscribe Link**
- Put it in the footer

No link, no points. This one is the heaviest check on purpose.

### 2. Physical address — 10 points

CAN-SPAM wants a real mailing address. Three ways to pass:

1. `@org-adresse` (the easy one)
2. Your address written in the footer
3. Any address that matches a normal US, EU, or PO Box pattern

Examples it understands:

- US: `123 Main St, City, CA 90210`
- EU / French: `123 rue de la Paix, 75001 Paris`
- PO Box: `P.O. Box 123` or `Boîte Postale 123`

### 3. Reason for sending — 10 points

Gmail and Yahoo want a sentence that says **why this person is on the list**. Language does not matter. The checker looks for “you receive this because…” / “tu reçois ce mail car…” and the same shape in ES, IT, DE, PT, plus a signed-up / subscribed line.

Examples that pass:

- `You're receiving this email because you signed up at melvynx.com`
- `Tu reçois ce mail car tu t'es inscrit sur melvynx.com`
- `Estás recibiendo este correo porque te has suscrito`

The default “Don't want to receive these emails?” unsubscribe line does **not** count.

### 4. Subject line length — 10 points

Sweet spot: **20–70 characters**. First 30 matter most on mobile. Put the point up front. Skip ALL CAPS.

| Length      | Score | Why                                 |
| ----------- | ----- | ----------------------------------- |
| 20–70 chars | 10/10 | Fits. Readable.                     |
| 1–19 chars  | 5/10  | Looks thin, sometimes spammy        |
| 71+ chars   | 5/10  | Gets cut on phones                  |
| Empty       | 0/10  | You forgot the subject              |

### 5. Image-to-text ratio — 10 points

All-image emails get blocked. Rule of thumb: **one image per 200 words**. Add alt text. Let the words do some work.

### 6. Spam trigger words — 10 points

The checker knows **270+** phrases in English, French, Spanish, and Italian. Each hit costs 3 points, floor at 0.

| Category  | The usual suspects                                             |
| --------- | -------------------------------------------------------------- |
| Urgency   | "act now", "limited time", "expires today", "urgent"           |
| Financial | "free money", "earn cash", "double your money", "get rich"     |
| Phishing  | "click here", "verify your account", "confirm your identity"   |
| Scams     | "congratulations", "you're a winner", "you have been selected" |
| Health    | "weight loss", "no prescription", "miracle cure"               |

Pro move: run **Unspam** and let the AI swap the risky phrases.

### 7. Link count — 5 points

| Links | Score | Note               |
| ----- | ----- | ------------------ |
| 0–5   | 5/5   | Fine               |
| 6+    | 2/5   | Cut a few          |

One to three real CTAs beat a pile of "also click this".

### 8. No shortened URLs — 5 points

`bit.ly`, `tinyurl`, `t.co`, `goo.gl`, `ow.ly`, `is.gd`, `buff.ly`, `adf.ly`, `tiny.cc`, `cutt.ly`, `rb.gy` and friends look like hidden links. Spam filters treat them that way.

Use your own domain. Lumail already tracks clicks.

### 9. No ALL CAPS abuse — 5 points

Max two words with 4+ uppercase letters.

Allowed: API, URL, HTML, CEO, ROI, AWS, LLC, INC, USA, FAQ, and brand names like CLAUDE.

Flagged: FREE, SALE, URGENT, AMAZING, or a line like "GET YOUR FREE BONUS NOW".

### 10. Text length — 5 points

Very short emails look empty.

| Word count  | Score | Status    |
| ----------- | ----- | --------- |
| 50+ words   | 5/5   | Good      |
| 20–49 words | 2/5   | Thin      |
| under 20    | 0/5   | Too short |

### 11. Branding — 5 points

Make your brand clearly identifiable, ideally in the header. The checker recognizes your organization name (including `@org-name`), a domain displayed on its own in the first text block, or a logo block with an image. Content inside snippets is checked too. A hidden link destination or an image filename alone does not count.

Visible branding earns **5/5**; otherwise, **0/5**.

## Unspam

The AI button in the toolbar has **Unspam → Improve deliverability**. It rewrites the trigger words and keeps your meaning, language, formatting, variables, and tone.

<DocsPhoto
  src="/docs/content-deliverability/unspam.png"
  alt="A printed newsletter with ACT NOW circled in red pencil"
  caption="Unspam is the red pencil. Same email, fewer spam flags."
/>

<DeliverabilityUnspam />

## How to read the score

<DeliverabilityScoreBands />

Green in the toolbar means the content is clean. It still does not promise inbox placement — DNS, sender health, and the list matter too.

## Quick checklist

<DeliverabilityDoDont />

## Related

<DocCardWrapper>

<DocCardGrid>
  <DocCard
    href="/docs/tutorials/migration-to-high-deliverability-emails"
    icon="Mail"
    title="Migration to high deliverability"
    description="Branding, why-you-receive, DOI, and workflows — including OTP."
  />
  <DocCard
    href="/docs/features/sender-health"
    icon="Settings"
    title="Sender Health"
    description="Org sending health, DNS, and SES posture."
  />
  <DocCard
    href="/docs/features/deliverability-score"
    icon="Mail"
    title="Campaign Delivery Score"
    description="The dashboard score after a send."
  />
  <DocCard
    href="/docs/features/engagement-score"
    icon="Sparkles"
    title="Engagement Score"
    description="Opens and clicks, without the guesswork."
  />
  <DocCard
    href="/docs/features/language"
    icon="Globe"
    title="Language"
    description="Translate the Unsubscribe label. Recipient pages follow Settings → Language."
  />
  <DocCard
    href="/docs/features/variables"
    icon="FileText"
    title="Variables"
    description="{{unsubscribeUrl}} and @org-adresse."
  />
  <DocCard
    href="/docs/api-reference/api-emails-send"
    icon="Code2"
    title="Send Email API"
    description="Same hygiene rules for API emails."
  />
  <DocCard
    href="/docs/domains/email-domains"
    icon="Plug"
    title="Email Domains"
    description="SPF, DKIM, and DMARC."
  />
</DocCardGrid>

</DocCardWrapper>
