Capability

The redirect chain is the evidence

Campaign links rarely land where they start: sending platforms rewrite them, so a click passes through tracking hops before it reaches your page. A final "200" without the path to it is half an answer. SendProofs follows redirects the safe way and records every step.

What is inspected

Every HTTP redirect — a 3xx response with a Location header — met while checking a link or remote image from your delivered test email. The chain starts at the URL in the email, usually the platform's tracking-rewritten link, and ends at the final HTTP destination. The chain itself becomes part of the record: which URL was asked, what it answered, and where it pointed next.

How the checker handles it

Redirects are followed up to 3 hops, and every hop is recorded. Before any hop is followed, the next URL goes through the same screening as the original: protected-action classification and network safety. A hop toward a recognized action — an unsubscribe, a sign-in, a purchase — stops the chain there; the resource is marked Protected and the action is not opened. A hop into a private or internal address stops the chain by policy, and the resource is marked Blocked. Chains are never a way around the rules that applied to the first request.

An HTTPS link that redirects to a plain HTTP hop gets that downgrade recorded as a warning, so the resource is reported Warning even when its final destination answers 2xx. Faulted chains are reported Broken with a named error code: a hop that circles back records redirect_loop, a 3xx response with no Location header records redirect_without_location, and a chain that needs more than 3 hops records too_many_redirects.

What the report shows

Sample data Redirect chain for the launch link — August launch sample run
StepURLAnswer
In the email campaign.example/launch?utm_source=email&utm_campaign=aug-launch 302 — follows to hop 1
Hop 1 campaign.example/go/aug-launch 301 — follows to the final URL
Final example.com/launch?utm_source=email&utm_campaign=aug-launch 200 · Healthy

Sample data. In the report this link's evidence line reads 200 after 2 redirects · 312 ms · 14:02 UTC, with the chain recorded hop by hop and each visible URL redacted. It is one of 15 Healthy resources in the 24-resource sample run.

Safety and limits

The whole chain runs inside one resource budget — 2 s connect, 5 s read, 10 s total — so a slow chain is recorded Broken with its error code rather than waited on, and nothing is retried. Each hop connects to an address resolved and screened first, with TLS verification on for every HTTPS request; the full request path is in the security model. Where the chain ends also matters beyond reachability: tracking review runs on the final URL after redirects, so it judges the UTM values the destination actually receives — duplicate keys, blank values and non-canonical casing are recorded per link, and missing keys are flagged where your workspace defines required keys — campaign tracking review.

Not included

  • Only HTTP 3xx redirects are followed. JavaScript redirects and meta-refresh pages are not executed, so a browser can land somewhere the probe cannot see — the recorded final URL is the final HTTP destination, and it should be read as exactly that.
  • No chains beyond 3 hops — a longer chain is reported Broken with too_many_redirects rather than followed indefinitely, and usually deserves fixing rather than patience.
  • No opening of chains that turn sensitive — a redirect into a recognized action stays unopened and is listed for your manual review instead.

See where every link actually lands

Upload the delivered test — every check records its chain, hop by hop.

Create workspace