How do I check every link in my newsletter before sending?
The problem
A newsletter with a broken link is embarrassing. A newsletter with a link to a parked domain or a compromised site is worse. Once you hit send, there's no undo. Your subscribers click, get a dead page or a security warning, and your credibility takes a hit.
Manually clicking every link before each send doesn't scale, and it doesn't catch the subtle problems: a domain that expired yesterday, an SSL certificate that lapsed, a redirect chain that now points somewhere unexpected.
How Unphurl solves it
Extract all URLs from your newsletter draft and batch check them through Unphurl. Every link gets analysed for reachability, SSL status, redirect behaviour, and domain health. You get a pass/fail report before you hit send.
After the batch check, filter your results by score to get a clean list. CLI users pipe through jq. Claude Cowork and OpenClaw users just ask for the flagged links in plain language.
Signals that matter for this use case
- – Chain incomplete means the link is dead. Your readers will see an error page.
- – Parked domain means the link destination is a placeholder. Content is gone.
- – SSL invalid means readers will see a browser security warning.
- – HTTP only means the site has no encryption. Looks unprofessional in a link.
- – Bad domain status (pendingDelete, serverHold) means the link is about to die.
Suggested scoring profile
{
"name": "newsletter-qa",
"weights": {
"chain_incomplete": 35,
"parked": 30,
"ssl_invalid": 20,
"http_only": 15,
"domain_status_bad": 20,
"expiring_soon": 15,
"redirects_5": 10,
"brand_impersonation": 5
}
} What a result looks like
Your newsletter draft contains 25 links. You check them all:
You fix or remove the 2 broken links and decide whether the HTTP-only link is acceptable. Send with confidence.
Cost
Newsletters typically link to well-known sites (your own domain, major publications, social media). Most URLs resolve free. A weekly newsletter with 20-30 links might use 0-5 pipeline checks per issue. The Starter package ($9 for 100 pipeline checks) lasts for months of newsletters.
Get started
For developers: Extract URLs from your HTML and batch check them.
# Check all links from a file
unphurl --batch newsletter-links.txt --profile newsletter-qa For non-coders (Claude Cowork, OpenClaw, or any AI agent): Paste your newsletter draft into your AI and ask: "Check all the links in this newsletter before I send it." Your AI extracts the URLs, checks them through Unphurl, and reports which ones are dead, parked, or suspicious.
{
"mcpServers": {
"unphurl": {
"command": "npx",
"args": ["-y", "@unphurl/mcp-server"],
"env": { "UNPHURL_API_KEY": "uph_your_key_here" }
}
}
}