TMOD LogoTMOD

Broken link checker

Probes up to 40 internal and outbound links to find dead destinations.

What TMOD checks

  • Collects links from the crawled pages and probes up to 40 of them for a live response.
  • Runs the probes at concurrency 10 with an 8-second timeout each, so a single unresponsive host cannot stall the scan.
  • Reports the specific failing URLs and their status codes rather than only a count.
  • Covers both internal and outbound links, since both damage the experience even though they fail for different reasons.
How TMOD samples your links, checked live, not merely parsed. Up to 40 links per scan, requested for real: Sampled. Each given 8s to answer: Timeout. 4xx or 5xx response: Broken. No response before the timeout: Warns. Redirect chain resolving to 200: Passes.

Why it matters

Broken links are the clearest available signal that a site is not maintained. One is an accident; a page full of them tells a visitor, and a reviewer, that nobody has looked at this content in a long time.

Broken internal links are the more serious kind. They waste crawl budget, strand pages that were only reachable through them, and interrupt a visitor mid-task. They usually appear after a restructure, when old URLs were updated in navigation but not inside article content.

Outbound links break through no fault of yours, sites move, companies close, articles get pulled. That is why the check exists as ongoing maintenance rather than a one-time fix. An older site accumulates these steadily, and nobody notices until someone checks.

How to fix it

01Fix internal links at the source

When a URL changes, add a 301 from the old one and update the links in your content. The redirect protects external links you cannot control; updating internal links keeps the crawl clean rather than routing it through redirects.

02Replace dead outbound links properly

Find the resource at its new home, or a good equivalent, and link that. If the source is genuinely gone, an archive.org link preserves the reference. Silently deleting the link often leaves a sentence citing evidence a reader can no longer check.

03Return real 404s

A missing page must return a 404 status, not a 200 with a 'not found' message. Soft 404s make every dead URL look like a real thin page to a crawler, which is worse than the broken link.

04Re-check after any restructure

Changing a permalink format, migrating a CMS or reorganising categories breaks links in bulk. That is the moment to re-run this and the rest of the technical checks, not six months later.

Link rot is a schedule, not a one-off fix

Outbound links decay whatever you do. Companies close, publications reorganise their URLs, documentation moves to a new version and drops the old one, and personal sites disappear when a renewal is missed. An article that was carefully sourced when it was written accumulates dead references at a rate nobody controls, and the older and better the article, the more it has.

That makes this maintenance rather than a task with an end. A pass every few months over the pages that actually earn traffic is enough, and it pairs naturally with the freshness review you would be doing on those pages anyway. The pages nobody visits can wait, since the cost of a dead link is paid by readers and there are none.

Internal links are the ones to fix immediately, because they are entirely yours. They break in bulk at a specific moment, a permalink change or a migration, and they strand any page that was only reachable through them. If the sitemap still lists the old URLs as well, the crawl spends its budget confirming that a set of pages you deleted are still deleted.

What each response code means for a link. The difference between a dead link and a slow one. 200 OK: Fine. 301 -> 200: Fine, one hop of equity lost. 301 -> 301 -> 301 -> ...: Chain, crawlers give up. 404 / 410: Dead, fix or remove. 500 / 503: Server fault, may be temporary. (no response): Timeout, often a blocked crawler.

What to do with a dead reference

First look for the resource at its new home, since most of the time the page moved rather than vanished. Searching the exact title usually finds it in one attempt, and linking the current location is better for the reader than anything clever.

When it is genuinely gone, an archive snapshot preserves the reference and lets a reader check the claim you attached to it. That matters more than it looks: silently deleting the link leaves a sentence asserting something with the evidence removed, which is a worse outcome than the broken link was.

If neither is available, edit the claim rather than the link. A statement whose only support has disappeared should be softened, attributed differently, or cut. And when you fix internal links, update them in the content rather than relying on the redirect to keep working, because a chain of redirects accumulated over three migrations eventually ends somewhere nobody intended, usually at a canonical that no longer matches.

Reading one probe report, seven rows at a time

A typical result on an eight-year-old blog: forty links sampled, seven failed, and the seven are not one problem but four. Two internal 404s, three dead outbound links, one timeout, and one redirect chain that does eventually land on a 200. Each class gets a different treatment, which is why the report shows status codes rather than a count.

The two internal 404s turn out to share a cause: a permalink change in 2021. The navigation was updated at the time, but two links written inside article bodies still point at the old addresses, which is the classic split, menus get maintained and prose does not. The fix is a redirect from each old URL plus editing the two sentences to link the current address, and a status check to confirm the old paths now answer honestly rather than soft-404ing.

The three outbound deaths each get their own answer. A free tool that shut down: the sentence keeps its claim and the link moves to an archive.org snapshot. A documentation page that moved during a rebrand: thirty seconds of searching the exact title finds the new home. A news article now returning 410: the paragraph leaned on it as evidence, so the claim gets softened rather than left standing unsupported. The timeout is the row that needs judgement rather than action: the destination loads fine in a browser and simply refuses automated clients, which is worth knowing and not worth fixing.

The redirect chain, http to https to www to 200, works for visitors and wastes hops for everything else, so the href gets updated to the final URL. Then the schedule: a pass like this quarterly on the pages that earn traffic, always after a restructure, and a glance at the sitemap at the same time, since the restructure that broke the links usually left stale URLs there too. The technical audit bundles all three so the pass stays one job.

The longer game is linking in a way that ages well, because the cheapest broken link is the one never created. Link the stable page rather than the deep one: a project's documentation home outlives any individual doc URL, an organisation's page outlives this quarter's campaign page. Prefer the original source over a blog quoting it, since the mirror dies first. And when a claim depends on something time-bound, a price, a limit, a version, date it in the sentence, so that when the link eventually dies the text still tells the reader what was true and when. None of that prevents rot; all of it lowers the cost of each break when it comes.

Questions

Why only 40 links?

Checking every link on every crawled page means thousands of requests against third-party servers, which is slow and impolite to sites that never asked to be probed. Forty links sampled at concurrency 10 reliably surfaces systemic problems, a dead link in a footer that appears on every page, a retired external resource cited repeatedly, without hammering anyone.

A link is reported broken but works in my browser.

Common causes: the destination blocks automated requests by user agent, it is geo-restricted, it requires a login, or it responds slower than the 8-second timeout. These are worth knowing about even when the link works for you, because a search crawler will hit exactly the same wall.

Do broken outbound links hurt rankings?

Not directly and not much. The measurable damage is to visitors, and the indirect signal is one of neglect. A handful on a large site is normal and not worth worrying about; a page where half the references are dead is a different message entirely.

Do redirects count as broken links?

No. A link whose redirect resolves to a 200 passes, because the visitor gets a page; the report notes the hops rather than failing them. A chain of several redirects is worth tidying, since each hop adds latency and long chains get abandoned by crawlers. The case that does count as broken is a redirect that lands on a 404 or loops, which is a dead link wearing a working one's clothes, and it is the reason the probe follows redirects to their end rather than trusting the first response.

Should I put nofollow on my outbound links?

Not as a default. Nofollow tells search engines you do not vouch for the destination, and the guidelines ask for it on paid links and untrusted user submissions, not on ordinary editorial citations. Linking sources you genuinely used, followed, is normal and slightly useful to everyone involved. None of it changes whether the destination eventually dies, which is what this check is about.

Read more

This check also runs inside the technical SEO audit

Run it here on its own, or run the full audit to see this check scored alongside everything else that decides approval.

Open it