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.
Paste your own email above and check it, or open the checker and paste it there: five clients, no account.
No signup · Five clients free, Outlook Classic included · All 21 with an account
Which clients need an account
Gmail Android, Gmail iOS, Outlook 365, Outlook iOS, Outlook Android, Outlook for Mac, Apple Mail, Yahoo Mail Android, Yahoo Mail iOS, Samsung Mail, Thunderbird, HEY Mail, Proton Mail, AOL Mail, Fastmail, Superhuman open with a free account.
The checker needs a computer screen.
Your next question
- Are your links tagged for analytics? Build UTM links, free.
- What will a spam filter penalise? Check your content, free.
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.