Check links for rot
Paste up to 25 URLs, one per line. We request each one and report its status — dead, redirected, or fine.
| URL | Status | OK | Redirects to |
|---|
What causes link rot
Links die for mundane reasons: sites shut down when hosting bills stop being paid, companies get acquired and fold their blogs, CMS migrations rename every URL without redirects, articles get paywalled or quietly unpublished, and whole domains lapse and get bought by squatters. The scale is bigger than intuition suggests — studies of link rot repeatedly find that roughly a quarter or more of links from a decade ago no longer lead anywhere. Any bookmark collection older than a few years contains dead links; the only question is how many.
How to read the results
- 200-range — alive. A ✓ means the server answered successfully.
- Redirects — the page moved; the "redirects to" column shows where it landed. Usually harmless (http→https, www changes), but a redirect to a homepage often means the article itself is gone.
- 404 / 410 — reliably dead. The server is alive and says the page is not.
- 403, 429, 999 — ambiguous. Many sites reject automated checkers while serving humans fine. Verify these in your browser before deleting anything.
- Unreachable — no HTTP response at all: dead domain, downed server, or a timeout. Almost always genuinely gone.
Honest limits
This tool checks up to 25 URLs per run — paste more and the extras are skipped and counted, not silently ignored. It reports what the server said at this moment, which is not always the truth about content: a page can return 200 while its text has been replaced by a domain-parking ad ("soft 404s" are undetectable from status codes alone). For auditing a whole bookmarks export, pull the URLs out first with the bookmark file viewer and feed them through in batches.
The deeper fix for rotting bookmarks
A link checker tells you a page died; it can't tell you what the page said. That's the argument for saving more than the URL: Marqly attaches an AI summary to every save, so a dead link in your library still carries its content's gist — and semantic search still finds it by meaning. Your data stays yours either way; see can I export my data.
Frequently asked questions
Why is it limited to 25 URLs per run?
Each URL means a real request from our server, and unbounded batches invite abuse that would slow the tool down for everyone. 25 keeps results fast — a batch usually finishes in a few seconds. For a bigger list, run it in chunks; extra URLs beyond 25 are skipped and reported, never silently dropped.
What does “unreachable” mean?
The request never got an HTTP response: the domain no longer resolves, the server is down or timing out, or it refused the connection. That is the deepest form of dead — a 404 at least proves a server is alive. Occasionally a site blocks our checker outright, which also reads as unreachable, so spot-check surprises in your own browser.
Does a 403 or 999 status mean the link is dead?
Not necessarily. Some sites answer automated checkers with 403 (or LinkedIn’s famous 999) while serving the page fine to a human in a browser — bot protection, not link rot. Treat 404 and 410 as reliably dead, unreachable as almost certainly dead, and 403-style rejections as “verify by hand.”
Why does the check run on your server instead of in my browser?
Browsers enforce CORS: JavaScript on this page is not allowed to read response statuses from other domains, so a purely client-side checker would report mostly false failures. Our server makes the requests and returns each URL’s real status. Only the URLs you submit are sent — nothing else.