Opens in a new tab or window.

TL;DR

there are three ways to check a WordPress site for broken links. A plugin checks the whole site on a schedule, from inside WordPress. A crawler or Google Search Console checks it from outside, with nothing installed on the site. A browser extension checks the post in front of you, including its preview before it goes live.

We make the browser route: LinkScan – Broken Link Checker, an extension for Chrome. It checks one page at a time. It is not a plugin and does not scan a whole site. Where a plugin or a crawler fits better, this guide says so.

Links break on any site (see finding broken links on any website for why it matters). On WordPress, a few causes come up again and again:

  • A post or page is deleted or trashed. Every link to it now leads nowhere.
  • A slug changes. WordPress 301-redirects an old post slug to the new permalink, and has since version 2.1 (wp_old_slug_redirect, read 2026-10-10). So a renamed post usually leaves a redirect, not a 404. Other redirects, such as http to https or a redirect plugin’s rule, can add hops.
  • An external site moves or closes. Nothing changes on your side, yet the link breaks.
  • The editor does not test links. WordPress’s link tool checks that a link is formatted like a URL. It “does not confirm that the destination page exists or loads successfully” (Link editing, updated 2026-09-06).

That last point is the gap. Nothing in the editor tells you a link is dead before you publish.

Three ways to check

PluginOutside crawler or Search ConsoleLinkScan in your browser
What it checksPosts and pages across the site; some also comments, custom fields, images and videoThe pages a crawler reaches; Search Console lists your own URLs Google could not useThe links on the page you have open, or in text you select
Where it runsOn your server, or on the vendor’s serversOn the tool’s servers or your computerIn your browser
AccountDepends on the plugin (below)Often; Search Console needs a Google account and a verified siteNone
CostFree versions, with limits on someFree and paid versionsFree
DraftsCan include drafts in scheduled scansNo, only what is publicThe preview you have open
Images and videoYes, depending on the pluginDepends on the toolNo, only links
Schedule and alertsYesPaid crawlers often; Search Console reports over timeNo. You start each check

Other browser extensions approach the same job in different ways.

The routes do not exclude each other. A plugin or a crawler finds what broke across the site. A browser check catches a new post’s links before readers do.

This section compares two broken link checker plugins from the WordPress plugin directory. The facts below come from each plugin’s directory page, read on 2026-10-10. Plugins change, so check the page before you install.

Broken Link Checker (WPMU DEV)Broken Link Checker by AIOSEO
Active installs500,000+300,000+
Version2.4.14.11.3.1
Tested up toWordPress 7.1.3WordPress 7.1.3
Where scans runA cloud engine or a local engine that “runs directly on your server”On AIOSEO’s servers
AccountThe cloud engine needs a connection to WPMU DEV, not a paid membershipAn AIOSEO account; the free account “scans up to 250 internal links per month”
What it checksPosts, pages, comments, custom fields and imagesInternal, external, image and video links, including custom fields and menus
DraftsScheduled, draft and private posts, per settingsPost statuses you choose, including draft and pending
Acting on resultsEdit, unlink or ignore links from one list; email alerts; scheduled scansEdit, unlink or remove links from its dashboard; weekly email report; scheduled rechecks

Settings worth a look in either one:

  • How often it scans, and whether it emails you when something breaks.
  • Which post statuses it checks. Include drafts if you want them found before publishing.
  • Exclusions, for links you know are fine.

AIOSEO’s FAQ takes a view on links that need a login: “a link behind a login is not broken at all”. LinkScan reports such links differently, as described below.

A plugin is the better tool when you want every post and page checked on a schedule, email alerts, broken images and video embeds, drafts across the site in the background, or one list in wp-admin to edit and unlink from.

Do plugins slow down your site?

It depends on where the plugin does its work. Each vendor answers for its own plugin:

  • AIOSEO says its scans run on AIOSEO’s servers, so the plugin “does not use your site’s resources” (directory page, read 2026-10-10).
  • WPMU DEV offers two engines. It says the cloud engine gives “20x faster scans with zero server strain”. The local engine “runs directly on your server” (directory page, read 2026-10-10).

We have not measured either. A browser check adds no plugin to the site at all: the requests go from your browser to each linked URL.

Check a post in your browser

No plugin and no account. With LinkScan:

  1. Install it from the Chrome Web Store and open the post on your site.
  2. Select the post body, so the check leaves out the theme’s menus and footer.
  3. Click the LinkScan icon in the toolbar. Chrome’s side panel opens. Click Check Selected Links, or Scan All Links with nothing selected.
  4. Read the groups: results group into Broken, Redirect & Accessibility, Unknown and OK.

Links to your own posts and to other sites are checked alike. A URL used three times is one row with its count (repeated link). A link wrapped around an image is checked, but the image file is not (link in image). After a Scan All Links scan (not a selection), the toolbar icon shows the issue count: red if anything is broken, otherwise amber.

For the full panel tour, see check one page, or one section, in your browser. Try it on a test page with known broken links: the Lab rows linked here show LinkScan’s expected results.

Add to Chrome — free. No plugin on your site. LinkScan runs in your browser after a free install and checks the post you have open, or its preview.

Check before you publish

Check the preview tab, not the editor.

From WordPress 7.1, the block editor always shows the post inside a frame (Block API versions, updated 2026-07-24; Make WordPress Core, 2026-08-03). LinkScan reads links only from the top page in a tab, not from frames (iframe). A scan in the editor checks the admin screen’s own links, not your post. Selecting text in the editor does not switch the button to Check Selected Links either. The editor’s Desktop, Tablet and Mobile views resize the same frame, so they do not help.

Preview in new tab does work. It opens “the current post or page in a new browser tab” (Preview, updated 2026-08-19). That is an ordinary page, shown to you because you are logged in.

  1. Save the draft.
  2. In the editor, open the View menu and choose Preview in new tab.
  3. Select the post body and click Check Selected Links. Logged-in users usually see the WordPress Toolbar on the front end (Toolbar, updated 2023-01-16), and the theme adds its menus and footer. Selecting the body leaves all of them out.
  4. Fix the links in the editor, save, reload the preview and Re-scan. A link you changed is a new URL and is checked. An unchanged link checked inside the Staleness threshold (48 hours by default) shows its stored result. For a fresh check, click the refresh button (Re-check) on its row, or Rescan on the cached-results notice.

Each link is checked as a logged-out visitor. You see the preview because you are logged in, but LinkScan sends no cookies with its checks. That changes a few results:

  • External links and published posts are checked as readers will meet them.
  • A link to another draft or a private post comes back Broken. Logged-out visitors cannot see private content, even with the URL (Content visibility, a Classic Editor article updated 2023-01-11; the rule is core WordPress). Readers would hit the same wall, so publish or schedule the target, or remove the link.
  • A recognised login-gated URL shows as Unknown, “Needs login” (login gate). A public page linking to wp-admin or a preview URL gets a preview advisory unless a stronger finding takes precedence. Checks from the preview host itself are exempt from that advisory.
  • A members-only page that answers 401 or redirects to a recognised login shows as Unknown, “Needs login”. A plain 403 without a login or challenge signal stays Broken, “Access denied” (403). Use Mark as known for links you accept.
  • On a password-protected staging site, links to the same site may come back as Access denied, because the checks send no stored login.

The general steps for any site are in check a page before you publish. They are not repeated here.

Both plugins above can include drafts in scheduled scans. A plugin checks drafts in the background across the site. LinkScan checks the one preview you have open, at the moment you are about to publish.

In the block editor, select the linked text. The link preview lets you open, edit, remove or copy the link. Ctrl+K (⌘+K on a Mac) adds a link (Link editing, updated 2026-09-06). Then decide link by link:

  • Broken. Link to the page’s new address or a replacement, or remove the link.
  • Redirect chain. LinkScan shows the hop count and the final URL, with the fix “Update href to final destination URL” (chain of 2). Paste the final URL into the link. A loop shows as Broken after 10 hops.
  • Your own post moved. WordPress already redirects a changed slug. For other moves, the Redirection plugin manages 301 redirects, logs 404s and can add a redirect when a permalink changes (2+ million active installs, version 5.10.1, updated September 17, 2026). For when a redirect is the right fix, see fix a 404.
  • Unknown. A timeout (10 seconds), a 429 or a 503 means “not now”, not “gone”. Check again later.
  • Unclear link text. Rewrite “click here” so the text says where the link goes (click here), and give an empty link some text (empty link). This flags unclear link text. It is not an accessibility audit.

Export copies the findings: Copy as table pastes into a spreadsheet, Copy to Clipboard gives plain text. History keeps scanned pages and their earlier scans; Domains groups pages by host; Links lists checked URLs with filters and sorting. Export is per page. Pages and links expire after 30 days under the retention rules. Clear all data in Settings removes it, after you confirm.

LinkScan does not edit, unlink or redirect anything in WordPress. You make each fix in the editor.

If an AI agent (Claude Code, Cursor, ChatGPT and so on) has access to your WordPress site or its theme, paste your Copy as table export into this prompt.

Prompt for your AI agent
WordPress site: [YOUR SITE URL]. Access: [WP-CLI ON STAGING / THEME REPO / NONE]. Below is LinkScan's "Copy as table" export.

[PASTE THE EXPORT HERE]

Goal: fix each link where it lives.

- Broken (404, 410): the new address or a replacement, or remove the link.
- Redirect chain: the final URL from the Fix column.
- Draft or private target (Broken, since LinkScan checks logged out): ask me whether to publish, schedule or unlink.
- Access denied (401, 403) or Unknown (timeout, 429, 503): leave it.
- Our own post moved: WordPress already redirects a changed slug; otherwise a 301 with the site's redirect tool, never to the home page.

Inspect first, propose, and wait for my approval before editing, publishing or installing anything. Without access, give me block-editor steps. Report what changed. Remind me to re-check on Preview in new tab.

Whole site without a plugin

A crawler follows links from page to page and lists each broken link with the page that contains it. It needs nothing on the site. See scan a whole site for broken links.

Search Console’s Page indexing report lists your own URLs that returned “Not found (404)” or “Soft 404” (read 2026-10-10). It does not check links to other sites. See your own pages that return 404.

FAQ

It depends where it scans. AIOSEO says its plugin runs scans on AIOSEO’s servers. WPMU DEV says its cloud engine works with “zero server strain”; its local engine runs on your server (AIOSEO, WPMU DEV, read 2026-10-10). A browser check adds nothing to the site.

Do I need an account?

For AIOSEO’s plugin, yes; the free account checks up to 250 internal links a month. WPMU DEV’s cloud engine needs a connection to WPMU DEV, not a paid membership (both read 2026-10-10). LinkScan needs no account, only a free install.

Can I check a post before I publish it?

Yes, on Preview in new tab. Not inside the block editor: WordPress shows the post there in a frame, and LinkScan does not read frames. See check before you publish.

LinkScan checks each link as a logged-out visitor, and readers would hit the same wall. Publish or schedule the target, or use Mark as known. AIOSEO takes the other view: “a link behind a login is not broken at all”.

Yes. Select the post body, then click Check Selected Links.

Select the linked text in the editor, then edit or remove the link (Link editing). If your own page moved, add a 301 redirect, for example with the Redirection plugin.

Add to Chrome — free. No plugin on your site. LinkScan runs in your browser after a free install and checks the post you have open, or its preview.

About the author

Mike Koval runs the web platform for Confederation College in Thunder Bay, a site of several thousand pages, and builds websites at koval.dev.

He made this extension after site-wide link checkers kept re-checking menus and footers that never changed, when he only needed to check the section he had just edited.

Support LinkScan