Issue day, minus the link rot
You curated dozens of links over the week; the web kept moving underneath them. Upload the delivered test of the issue and every checkable destination — stories, archives, the sponsor's landing page — gets one bounded check with recorded evidence, before a reader finds the dead one for you.
The moment this matters
Issue day. The links were gathered across the week — a longform piece saved on Monday, an opinion column added Wednesday night, the sponsor's URL pasted from an email thread — and the issue is assembled hours before send. Between curation and send, the web moves: stories get re-slugged, archives reorganize, a site redesign quietly breaks old paths.
The traditional defense is a late-night tab session: open all thirty-odd links, eyeball each one, hope the coffee holds. It is unrecorded, it is exhausting, and it is the first ritual skipped on the week it matters most. Checking the draft also misses what the newsletter platform does to every URL on the way out.
Who owns the decision
Usually one person. The editor is also the operator, the ad-sales department and the support inbox. There is no second reviewer to catch a moved story, and a correction email costs more credibility than the original mistake — with a sponsor in the issue, it can cost revenue too. The call — send now or fix first — belongs to whoever wrote the intro at six in the morning, so the evidence has to be fast to read and blunt about what needs fixing.
The issue-day workflow
-
Trigger the issue test
Send the finished issue, sponsor placement included, from your newsletter platform to your own inbox.
-
Save the delivered message
Download it as a .eml file — works with an email saved from Gmail. Step-by-step Gmail guide. What you save is the delivered artifact, its links already rewritten through the platform's click-tracking domain.
-
Upload and let the batch run
Every unique link and image is classified first — anything recognized as an action link, the unsubscribe included, is marked Protected and never requested. The rest are checked once against their public destinations — HEAD-first, redirects followed up to 3 hops with each hop recorded, no retries. Thirty tabs become one upload. How link checking works.
-
Triage by state
Broken means the story moved or died since you saved it: swap the item or relink it. Inconclusive means the destination refused an automated request — paywalled and bot-protected news sites routinely answer 403 — so open it in your own browser and judge it yourself.
-
Confirm the sponsor link last, then send
Check that it resolves and that the UTM values on the final URL, after every redirect, are the ones the sponsor was promised. Reviewing UTM tracking.
The evidence handoff
For a masthead of one, the handoff is to two audiences: future you, and the sponsor. Every check is recorded with its status, redirect chain, final URL and timestamp — evidence that the placement resolved and the UTM tracking survived the platform's rewrite, captured before the issue went out. When a sponsor asks how their link was handled, you answer from the report, not from memory.
The same report is next week's routine: upload, triage the handful of items that need a decision, send. The QA habit stops depending on how much sleep the editor got.
Sample scenario: 38 links, hours before send
| Resource | State | Evidence |
|---|---|---|
| example.com/longform/harbor-lights | Broken | 404 at final destination — story re-slugged since curation; relink, then recheck |
| partner.example/fall-reading?utm_source=newsletter&utm_medium=email&utm_campaign=issue-142 | Healthy | 200 after 1 redirect · utm_source, utm_medium, utm_campaign intact on final URL |
| example.com/opinion/the-quiet-part | Inconclusive | 403 — destination limited automated access, review manually |
| campaign.example/unsubscribe/%5BREDACTED%5D | Protected | Not opened — review manually |
Sample data. Full sample run: 38 unique links — 34 Healthy, 1 Broken, 2 Inconclusive, 1 Protected; 37 checks consumed (the unsubscribe link was classified Protected at upload and never attempted). The two Inconclusive items were paywalled dailies answering 403 to the SendProofs/0.1 user agent; the editor opened both in a browser, confirmed the stories loaded, and noted it. After the moved longform was relinked, the recheck reported the replacement reachable and the run Incomplete — the honest state while paywalled links still require a human eye. Sent.
Limitations and non-goals
- Honest requests, no workarounds: checks identify themselves as SendProofs/0.1 and never retry, never run a browser, never carry cookies. A destination that refuses automated access is reported Inconclusive and handed to you — not forced, not guessed at.
- Reachability is not editorial review: a destination that answers 200 can still be the wrong story, or a piece that changed since you read it. Reading remains your job.
- Evidence is timestamped, not permanent: a check does not guarantee the destination is still up when a reader clicks two days later.
- File-based by design: save the delivered test and upload it — works with an email saved from Gmail. SendProofs does not connect to your newsletter platform and never sends an issue for you.
- No open rates, no folder prediction, no access to your subscriber list: destinations, redirects and tracking parameters are the whole scope.
Check the next issue before it goes out
A free workspace covers 100 resource checks a month — no card at signup.