PHPackages                             johnhenry/craft-link-audit - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. johnhenry/craft-link-audit

ActiveCraft-plugin

johnhenry/craft-link-audit
==========================

Finds broken links across your content, checks each unique URL once, and tells you exactly which entries to fix

1.0.0-beta.5(today)111↑2627.3%MITPHPPHP ^8.2 || ^8.3 || ^8.4

Since Aug 24Pushed today1 watchersCompare

[ Source](https://github.com/john-henry/craft-link-audit)[ Packagist](https://packagist.org/packages/johnhenry/craft-link-audit)[ Docs](https://johnhenry.ie/plugins/link-audit/)[ Fund](https://www.buymeacoffee.com/john.henry)[ GitHub Sponsors](https://github.com/john-henry)[ RSS](/packages/johnhenry-craft-link-audit/feed)WikiDiscussions craft-5 Synced today

READMEChangelog (5)Dependencies (6)Versions (7)Used By (0)

[![Stable Version](https://camo.githubusercontent.com/5192534c47f5f7265c4dd0414ca7ae0356a689f3aa1abc6a5b3b32662d35af18/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6a6f686e68656e72792f63726166742d6c696e6b2d61756469743f6c6162656c3d737461626c65267374796c653d666f722d7468652d6261646765)](https://packagist.org/packages/johnhenry/craft-link-audit)[![Static Badge](https://camo.githubusercontent.com/5926ddeb7550aec593756a4e006beec5372f54ef5d90d7f8067fb3e0add9e331/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f667265652d706c7567696e3f7374796c653d666f722d7468652d6261646765266c6f676f3d6372616674636d73266c6f676f436f6c6f723d7768697465266c6f676f53697a653d6175746f266c6162656c3d4372616674253230506c7567696e25323053746f7265266c6162656c436f6c6f723d253233453534323242)](https://plugins.craftcms.com/link-audit?craft5)

Link Audit for Craft CMS
========================

[](#link-audit-for-craft-cms)

A broken link checker for Craft CMS 5.

It goes through your stored content, gathers up every link, checks each unique address once, and shows you the entries carrying the ones that are broken.

The thinking behind it
----------------------

[](#the-thinking-behind-it)

Most link checkers go page by page: load a page, check its links, move on to the next. That falls over on a site of any size. If your footer links to a supplier, that supplier is on every page you have, and a page-by-page checker will ask them about it thousands of times in one run. Sooner or later they block you for it, everything they host turns up as broken, and the report stops being believed.

Link Audit keeps one record per unique address instead. The footer link is checked once, however many pages carry it, and the plugin remembers every entry, field and site it appears in, so when it does break you can see where to go and fix it.

Verdicts are kept for a while rather than thrown away. A working link is trusted for 30 days before it is asked again. A broken one is rechecked the next day, so a fix shows up quickly. The first scan does the heavy lifting; the ones after it only look at what has gone stale.

It also knows the difference between a broken link and a host that will not talk to robots. LinkedIn, Cloudflare and their kind refuse automated requests no matter how healthy the link is, so those answers go on their own screen, marked Unverifiable, and are never counted as broken. A link that gives no answer at all is only called broken after it has failed a few times in a row, because one bad afternoon on somebody else's server is not news.

What it reads
-------------

[](#what-it-reads)

Stored field values, not rendered pages:

- Rich text (CKEditor and Redactor), including links inside nested entries
- Native Link fields and URL fields
- Hyper fields
- Matrix and content blocks, as deep as they go
- Navigation nodes, if you have verbb/navigation installed
- Image and iframe sources in rich text, if you turn them on

Because it reads stored values, it sees links on entries that have no public URL, and it can tell you which field a link came from. Internal links are resolved against your own elements and routes rather than fetched over HTTP, and whatever those cannot answer for is asked for over HTTP, so a redirect rule in Retour or in your server config counts as the redirect it is rather than as a broken link.

There is a rendered crawl mode as well, for links hard-coded into templates. It is off by default, because fetching every page is the expensive way to do it.

Documentation
-------------

[](#documentation)

Full documentation lives at

Support
-------

[](#support)

Need a hand? Open an issue on our [GitHub Issues page](https://github.com/john-henry/craft-link-audit/issues)

License
-------

[](#license)

This package is licensed for free under the MIT License.

The control panel tour is built on [Driver.js](https://driverjs.com) 1.8.0, which is vendored with the plugin and is itself MIT licensed. The details are in `src/assets/tour/dist/LICENSE.md`.

Requirements
------------

[](#requirements)

Craft CMS 5.0.0 or later, and PHP 8.2 or later. The queue worker makes the outbound requests, so that is the machine that needs to reach the internet.

---

[ ![John Henry - Craft CMS Plugins](https://camo.githubusercontent.com/7fe2cde5004b1727e3c7af871108a0f568a276b1c075ddd07c816ffb1cbbcc42/68747470733a2f2f6a6f686e68656e72792e69652f696d616765732f706c7567696e732f6c6f676f2e737667)](https://johnhenry.ie/plugins/)

###  Health Score

41

—

FairBetter than 87% of packages

Maintenance100

Actively maintained with recent releases

Popularity9

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity41

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

5

Last Release

0d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/393817?v=4)[John Henry](/maintainers/johnhenry)[@johnhenry](https://github.com/johnhenry)

---

Top Contributors

[![john-henry](https://avatars.githubusercontent.com/u/44709?v=4)](https://github.com/john-henry "john-henry (15 commits)")

---

Tags

craft-plugincraft5craftcmscmsCraftcraftcmscraft-pluginseolink-checkerbroken-linkslinks

### Embed Badge

![Health badge](/badges/johnhenry-craft-link-audit/health.svg)

```
[![Health](https://phpackages.com/badges/johnhenry-craft-link-audit/health.svg)](https://phpackages.com/packages/johnhenry-craft-link-audit)
```

###  Alternatives

[nystudio107/craft-seomatic

SEOmatic facilitates modern SEO best practices &amp; implementation for Craft CMS 5. It is a turnkey SEO system that is comprehensive, powerful, and flexible.

1741.5M73](/packages/nystudio107-craft-seomatic)[verbb/formie

The most user-friendly forms plugin for Craft.

101400.6k79](/packages/verbb-formie)[verbb/hyper

A user-friendly links field for Craft.

24153.5k15](/packages/verbb-hyper)[verbb/vizy

A flexible visual editor field for Craft.

4251.5k1](/packages/verbb-vizy)[vaersaagod/seomate

SEO, mate! It's important.

4443.4k3](/packages/vaersaagod-seomate)[verbb/events

A full-featured plugin for event management and ticketing.

2312.1k](/packages/verbb-events)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
