SEOWordPress plugin · Free

Indigothorn Link Checker

Find broken links without slowing your site. Fix them in one click.

No cloud, no account, no link limit. Runs on your server in tiny, polite batches.

Try it here Coming soon to WordPress.org

Specification

Price
Free, GPL
Version
0.1.0
Requires
WordPress 6.5+, PHP 8.1+
Tested up to
WordPress 7.1
Instead of
Broken Link Checker
AI
Not used
Key number
50,000 links scanned in under 2 min
Recorded in our lab on WordPress 7.1, with voice-overv0.1.0
01Try it

See the idea work, right here.

A small working preview of what the plugin does, on sample data, in your browser. Nothing is sent anywhere.

Scan a post for broken linksSample data · runs in your browser

Post: “Our plans for next year”

Read the full guide, summer sale, pricing, annual report, router page, our first summer and API docs.

0/7 checked · 0 broken · one request at a time per website, small background batches.

Report

https://example.org/guide“the full guide”
Queued
https://old-shop.example/summer-sale“summer sale”
Queued
http://example.com/pricing“pricing”
Queued
https://slow.example/report.pdf“annual report”
Queued
http://192.168.0.10/admin“router page”
Queued
/blog/our-first-summer“our first summer”
Queued
https://docs.example.net/api“API docs”
Queued
02Compare

Indigothorn Link Checker vs the alternatives.

Measured in our lab with the same data where there is a number; features from each plugin’s own page otherwise.

FeatureIndigothorn Link CheckerIndigothorn · freeBroken Link CheckerWPMU DEV, 500kBroken Link Checkerby AIOSEO, 300k
Checks from your own serverYesPartlyNo
Account neededNoYes, for the cloud engineYes
Hard limits on server loadYes——
Blocks requests to private or local addressesYes——
One-click fix: unlink, new URL, redirectYesPartly—
Archived copy for dead pagesYes——

Feature comparison from the plugins’ WordPress.org pages and our lab, October 2026. Broken Link Checker by WPMU DEV keeps a local “legacy” engine; its default engine runs in their cloud. “—” means not applicable or not checked.

Pro · Next

The free plugin is complete. Pro adds the heavy lifting.

Proposed price, not on sale yet: from $29 / year. $29 / year up to 5,000 links · $59 up to 50,000 · $149 up to 250,000.

  • Scans from our cloud: zero load on your server
  • Scheduled scans and email alerts
  • Replacement suggestions for dead links
03Overview

What you get.

01Small background batches, under 1.2 s per run
02One-click fixes: unlink, new URL, redirect target
03Never contacts private or local addresses
04Wayback Machine copies for dead pages

What it does

Broken links frustrate readers and waste search engine crawl time. Indigothorn Link Checker finds them in small, polite background batches and lets you fix them right from the report.

  • Light on your server: links are checked in small batches every 15 minutes, with a time limit per run. In our test with 1,000 links every run took under 1.2 seconds and added about 2 MB of memory.
  • Polite to other websites: at most a few requests per website per minute (you choose how many), and it backs off when a site answers "Too many requests".
  • Smart re-checks: working links are re-checked every two weeks, broken ones daily, temporary errors (timeouts, server errors) a few times before a link counts as broken.
  • Internal links are checked without web requests whenever they point to a post or page.
  • You decide when other websites are contacted: after activation only links to your own site are checked. Links to other websites are checked once an administrator clicks "Check links to other websites" (or turns on "External links" in the settings).
  • Safe: links written in your content never make your server contact private or local network addresses.
  • One-click fixes: unlink (keep the text), change the URL, use the page the link now redirects to, or the most similar page on your site for broken internal links. Every change saves a revision.
  • Images and custom fields (optional): also check image addresses and the links in custom fields you choose (ACF fields and repeaters, page-builder data, plain URL fields). Off until you turn it on.
  • Bulk fixes and filters: filter the report by website or by post, then change the URL, unlink, use the suggestion or mark "Not broken" for up to 50 selected links at once (one revision per post).
  • Per-website view: links per website, when they were last checked and whether a website asked to slow down; "Check again now" for one website, and administrators can pause checks for a website.
  • Redirect instead of editing (optional): with Indigothorn 404 Redirects active, administrators can add a 301 redirect for a broken address on your site with one click, instead of changing the posts that link to it.
  • "Not broken" hides false alarms; links blocked by login or bot protection are reported separately, never as broken.
  • Archived copies: for a dead external page, look up the latest copy in the Internet Archive's Wayback Machine.
  • Weekly email (optional): a list of broken links once a week, only in weeks with broken links. Off until you turn it on.
  • Pause switch and WP-CLI: wp indigothorn-link-checker scan, wp indigothorn-link-checker run, wp indigothorn-link-checker status.

No account, no cloud

Popular link checkers now scan from their own cloud and need an account, often with a free limit on the number of links. Indigothorn Link Checker runs on your own server and has no link limit. The only requests it makes are the link checks themselves, once you turn on external links (your server asks each linked website whether the page still exists) and, when you click "Find an archived copy", one lookup of that URL at the Internet Archive. See "External services" below.

Tested on a large site

On a test site with 10,000 posts and 50,000 links, scanning took under 2 minutes of processing time (about 11 ms per post); in the background it runs in 20-second slices about once a minute, so the first scan of such a site finishes within roughly 10 minutes, the admin menu badge costs a cached lookup (under 0.1 ms) and the broken-links report opens in about 4 ms.

04Screenshots

Inside WordPress.

Broken links with one-click fixes: suggested replacement, archived copy, change URL, unlink.
01Broken links with one-click fixes: suggested replacement, archived copy, change URL, unlink.
Redirected links: update them to the new address in one click.
02Redirected links: update them to the new address in one click.
On a phone.
03On a phone.
Settings: a pause switch, the switch for links to other websites, requests per website, batch size, timeout, re-check intervals, image checks and custom fields to scan.
04Settings: a pause switch, the switch for links to other websites, requests per website, batch size, timeout, re-check intervals, image checks and custom fields to scan.
05Tests

How we checked it.

Automated on every release in an offline lab. The numbers are copied from the latest runs.

87

automated tests: 62 unit and integration, 25 in a real browser

Pass

full regression on WordPress 7.1, 6.5 and multisite (2026-10-15)

0 / 0

Plugin Check errors and warnings, including experimental checks

11

issues found by independent code reviews and fixed, each with a regression test

AA

automated WCAG 2.1 A/AA check of every screen, no serious issues

8.1–8.3

PHP versions in static analysis and coding standards, both clean

Performance10,003 published posts

  • scan 10004 posts (50014 links, 28739 unique URLs): 110.5 s (11.0 ms/post), peak memory 101 MB
  • status counts (menu badge), not cached: 28.9 ms; cached: 0.05 ms
  • broken-links report (200 rows): 3.8 ms
  • tables size: 16.1 MB
06AI & privacy

No AI. External checks are optional.

How it works

Checks links from your own server in small background batches.

AI

Not used.

What leaves your site

Only links to your own site are checked until an administrator turns on checks of links to other websites. Then each linked website receives a request from your server (the URL and your server’s IP address, nothing about your visitors). Clicking “Find an archived copy” sends that one URL to the Internet Archive (archive.org).

07FAQ

Common questions.

Does it contact other websites?

Only after you allow it. After activation only links to your own site are checked. When you click "Check links to other websites" (or turn on "External links" in the settings), your server asks each linked website whether the page still exists; that website receives the URL and your server's IP address. See "External services".

Will it slow my site down?

Checks run in the background in small batches with a time limit, and only links that are due are checked. You can pause checking at any time.

Why is a link listed as "Could not check"?

The website refused the check (often a login page or bot protection). Such links are never reported as broken.

Who can see and fix links?

Editors and administrators. The report and the fixes need the right to edit other people's posts, and every fix also checks that the user may edit that particular post.

Does it work with page builders?

It reads links from the saved post content, so it finds links in the block editor and in classic content. Page builders and field plugins (ACF, for example) keep links in custom fields: enter those field names under "Custom fields to scan" in the settings (for example _elementor_data, or resources_* for every row of an ACF repeater). Links, images and plain web addresses inside them are found, also in lists and JSON data, and the fixes change them in place.

Can I fix many links at once?

Yes. Filter the report by website (for example a site that closed) or open "Only this post", tick the links and pick a bulk action: change the URL, unlink, use the first suggestion or "Not broken". Up to 50 links per action; each post is saved once, with one revision. Every selected link is checked again on its own: links in posts you may not edit are skipped.

A website is down for maintenance or blocks checks. Can I stop checking it?

Yes. Open "Websites" at the top of the report. Administrators can pause checks for one website: its links keep their last result and the website is not contacted until you resume it. "Check again now" puts every link to a website first in the queue, for example after the website came back; the per-website limit and any wait the website asked for ("Too many requests") still apply.

Can I redirect a broken internal address instead of changing my posts?

Yes, if the free Indigothorn 404 Redirects plugin is active. Administrators then see "Redirect this address instead" next to broken links to your own site, with the best matching page filled in. Nothing is created until you click it, an address that already has a redirect is never replaced, and the post is not changed. The link is checked again and then appears under "Redirected", where you can still update the post to point straight at the new page. Without that plugin the option does not appear.

Can it email me about broken links?

Yes. Turn on "Weekly email" in the settings and optionally enter an address (empty: the site administration email). Your site sends it with its normal email settings, at most once a week and only when there are broken links. It is off by default.

Can it check images?

Yes, turn on "Images" in the settings. Image addresses in the content (and in the selected custom fields) are then checked like links; a broken image can be pointed to a new address from the report. Images in your own uploads folder are usually found on disk, without a web request.

Are custom field changes saved as revisions?

Changes to the post content are saved with a revision. WordPress keeps no revisions of custom fields, so a fix in a custom field cannot be undone from the revisions screen; the report says which field a link is in before you change it.

What happens to my data when I delete the plugin?

The link tables, settings and scheduled checks are removed unless you choose to keep them. Your posts stay as they are.

Installation

1. Install and activate the plugin.

2. Go to Tools → Link Checker. The first scan starts in the background; links to your own site are checked every 15 minutes in small batches.

3. To check links to other websites too, click "Check links to other websites" on that page (or turn on "External links" in the settings). Until then no other website is contacted.

4. Fix broken links straight from the report, or mark false alarms as "Not broken".