Skip to main content

Our email CSS engine is open source. Give it a star on GitHub 

Emailens

Email Link Checker

Finds placeholder, insecure, empty and unnamed links in your email's HTML. It reads the markup; it does not open the URLs.

@emailens/engine 0.18.22 · data last changed 10 Nov 2026

Example · engine 0.18.22 on the sample above. Paste yours to replace it.

2 errors: links with no text, mailto: links with no address.

6 links · 2 of 3 web links use HTTPS · 0 of 3 carry UTM tags

  • http://billing.example.com/login

    "Log in to update your billing details"http

    Warning: Link uses HTTP instead of HTTPS

  • #

    "Read the full statement"anchor

    Warning: Link has a placeholder href (# or javascript:void)

  • javascript:void(0)

    "Open the summary"javascript

    Warning: Link has a placeholder href (# or javascript:void)

  • https://store.example.com/new-products

    "See what's new"https

  • https://example.com/help

    No visible texthttps

    Error: Link has no visible text or aria-label

  • mailto:

    "Email support"mailto

    Error: mailto: link has no email address

Not covered here: whether each URL loads. The check reads the links in the markup, not the pages they open.

The checker needs a computer screen.

Your next question

Other free tools: Subject Line & Preheader Tester · Plain-Text Generator · AI Fix-Prompt Generator · Gmail Clipping & Size Checker · HTML Email Minifier · Accessibility Checker

Run this check on every email

The open-source CLI runs this same link check on every template, free: npx @emailens/cli lint email.html (CLI docs).

Questions

Why check email links before sending?

Because an email is the one thing you cannot fix after you ship it. A page you can re-deploy in a minute; a broken link in 50,000 inboxes is permanent. The most common disasters are a placeholder href (#) left in from the template, a link with no visible text, and an HTTP URL that trips a security warning.

What does this tool check?

It parses your HTML and flags placeholder hrefs (# or javascript:void), javascript: protocols (which every major email client strips), insecure HTTP links, protocol-relative URLs (//example.com, which breaks in several clients), empty or missing hrefs, empty mailto: and tel: links, links with no visible text or aria-label, generic link text like 'click here', and unusually long URLs.

Does it verify that each URL actually resolves?

No, and that is a deliberate limit worth being clear about. This checks the structure of your links, not their destinations. It will not tell you that a well-formed URL returns a 404. It catches the mistakes that come from the markup itself, which is where the overwhelming majority of pre-send link failures actually originate.

Why do javascript: links not work in email?

Every major email client strips JavaScript entirely as a security measure: Gmail, Outlook, Apple Mail, Yahoo, all of them. A javascript: href will simply do nothing when a subscriber clicks it. If you inherited one from a web template, it needs to become a real URL.