Guide
How to QA every link in an email
Broken, placeholder and untracked links are the most common email mistakes — and the easiest to prevent. Here's what to check and how to fix it.
1. Remove leftovers from development
Most broken links are placeholders that were never replaced. Search your HTML for these before every send:
href="#"and emptyhref=""— they go nowhere, and some clients open a blank page.- Staging, preview and
localhostlinks — they work on your machine and nowhere else. example.com, “yourdomain.com” and other template domains.- Values like
href="link",href="TODO"or a barehttps://.
2. Use absolute URLs with https://
An email has no base URL, so relative links like /pricing have nothing to resolve against and break in every client. Links that start with www. but no scheme are treated as relative by many clients too. Always write the full URL, including https:// and the domain.
Use HTTPS for every link and image. Plain http:// links can trigger “Not secure” warnings when they open, and some spam filters treat them as a negative signal.
3. Format email and phone links properly
An email address on its own in href is treated as a relative web link and opens a broken page. Phone numbers need the tel: scheme to be tappable on mobile. Encode spaces and special characters in mailto subjects.
<a href="mailto:help@acme.com?subject=Order%20question">help@acme.com</a>
<a href="tel:+15550102233">+1 (555) 010-2233</a>Write phone numbers in international format with digits only in the tel: value. The visible text can keep spaces and brackets.
4. Get UTM tracking right
UTM parameters tell your analytics tool where a visit came from. Without them, email traffic usually shows up as “direct” and you can't tell which campaign drove sales. For each campaign, tag every link with the same three core values:
utm_source— where the traffic comes from, e.g.newsletter.utm_medium— the channel; for email, useemail.utm_campaign— this specific send, e.g.october-edit.utm_content(optional) — tells links apart within one email, e.g.hero-buttonvsfooter-link.
<a href="https://acme.com/new?utm_source=newsletter&utm_medium=email&utm_campaign=october-edit&utm_content=new-arrivals">
Five new arrivals
</a>The mistakes that quietly ruin campaign reports:
- Inconsistent values —
newsletteron one link andNewsletterornews-letteron another splits the traffic into separate rows. Pick lowercase values and stick to them. - Empty or placeholder values —
utm_campaign=orutm_campaign=testleft over from a template. - Duplicate parameters — the same key twice, often because your email platform also adds UTMs automatically. Check your platform's link-tracking settings and tag in one place only.
- Malformed query strings — a second
?,&&, or UTMs placed after a#fragment, where analytics tools can't see them.
5. Make unsubscribing easy
Every marketing email needs a visible unsubscribe link in the body — laws such as CAN-SPAM (US), GDPR (EU) and CASL (Canada) expect an easy way to opt out. Since 2024, Gmail and Yahoo also require bulk senders to support one-click unsubscribe (through List-Unsubscribe headers) and to honour requests within two days.
Those headers are added by your email platform, not your HTML, so check your platform's settings. In the HTML, make sure the unsubscribe or preferences link is present and works — and don't add UTMs to it.
6. Avoid links that look suspicious
- URL shorteners like bit.ly hide the destination; spam filters and wary readers distrust them. Link to the full URL — your platform's click tracking will wrap it anyway.
- Link text that shows a different URL — if the visible text is a web address, it should match where the link goes. A mismatch is a classic phishing signal.
- Too many different domains — linking to lots of unrelated sites in one email can look spammy. Stick to your own domain where you can.
7. Click everything in a real test send
This checker reads your links without visiting them, so it can't tell you if a page returns a 404. Before the campaign goes out, send a test to yourself and click every link — including the ones in the footer — on desktop and on your phone. Your email platform rewrites links for click tracking, so this is also the only way to confirm the final redirect lands on the right page.
Paste your email into the checker above to catch everything else — it flags placeholders, staging and example links, relative and insecure URLs, mailto and tel mistakes and every UTM problem in this guide.