PHPackages                             burnthebook/craft-broken-link-checker - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. burnthebook/craft-broken-link-checker

ActiveCraft-plugin[Utility &amp; Helpers](/categories/utility)

burnthebook/craft-broken-link-checker
=====================================

Automatically detect and report broken links, missing images, and invalid embeds in Craft CMS

0117PHP

Since Nov 20Pushed 5mo agoCompare

[ Source](https://github.com/Burnthebook/craft-broken-link-checker)[ Packagist](https://packagist.org/packages/burnthebook/craft-broken-link-checker)[ RSS](/packages/burnthebook-craft-broken-link-checker/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

Broken Link Checker for Craft CMS
=================================

[](#broken-link-checker-for-craft-cms)

Automatically detect and report broken links, missing images, and invalid embeds in your Craft CMS content.

Features
--------

[](#features)

- 🔍 **Automatic Scanning** - Scans entries for broken links, missing assets, and invalid embeds
- 📊 **Dashboard UI** - View all broken links with filtering and sorting
- ⚠️ **Entry Alerts** - Warnings displayed directly in the entry editor
- 🎯 **Field Type Support** - Redactor, CKEditor, Matrix, Table, Assets, Plain Text, Super Table
- 🔄 **Background Processing** - Uses Craft's queue system for non-blocking scans
- 🖥️ **CLI Commands** - Scan from the command line
- 🎛️ **Flexible Settings** - Control what to scan, when, and how
- 🔐 **Permission Controls** - Granular permissions for viewing and triggering scans

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

[](#requirements)

- Craft CMS 5.0+
- PHP 8.2+

Installation
------------

[](#installation)

1. Add the plugin to your project:

```
composer require yourcompany/craft-broken-link-checker
```

2. Install the plugin:

```
php craft plugin/install broken-link-checker
```

Usage
-----

[](#usage)

### Dashboard

[](#dashboard)

Navigate to **Broken Link Checker** in the control panel to:

- View all broken links
- Filter by section, site, or error type
- Export results as CSV
- Trigger manual scans

### Entry Editing

[](#entry-editing)

When editing an entry with broken links, you'll see a warning banner with:

- List of broken links in that entry
- Quick rescan button
- Link to view all issues

### CLI Commands

[](#cli-commands)

**Scan all entries:**

```
php craft broken-link-checker/scan/run
```

**Scan specific entry:**

```
php craft broken-link-checker/scan/run --entryId=123 --siteId=1
```

**Run scan synchronously (wait for completion):**

```
php craft broken-link-checker/scan/run --sync
```

**View statistics:**

```
php craft broken-link-checker/scan/stats
```

**Clear all records:**

```
php craft broken-link-checker/scan/clear
```

### Permissions

[](#permissions)

Grant these permissions to user groups as needed:

- **View broken links dashboard** - View the broken links dashboard
- **Trigger link scans** - Manually trigger scans
- **Manage plugin settings** - Access plugin settings

Configuration
-------------

[](#configuration)

### Settings

[](#settings)

Access settings via **Settings → Broken Link Checker** or by clicking the gear icon in the plugin section.

**Scanning Options:**

- Choose which sections and sites to scan
- Select field types to include
- Set scan frequency (manual, hourly, daily, weekly)
- Enable scan on entry save

**External URL Options:**

- Set timeout duration
- Configure redirect following
- Set max redirect depth
- Limit concurrent requests

**Advanced:**

- Set batch size for queue processing
- Define URL patterns to ignore (wildcards or regex)

### Example: Ignore Patterns

[](#example-ignore-patterns)

```
https://localhost/*
https://example.com/admin/*
/^https:\/\/.*\.local\//

```

Error Types
-----------

[](#error-types)

The plugin detects and categorizes these error types:

- **404** - Page not found
- **500** - Server error
- **Timeout** - Request timed out
- **Missing Asset** - Asset deleted or file missing
- **Invalid Internal Link** - Internal link points to non-existent entry
- **Redirect Loop** - Too many redirects
- **SSL Error** - Certificate issue
- **DNS Error** - Domain not resolved

Performance Considerations
--------------------------

[](#performance-considerations)

- All scans run in the background via Craft's queue system
- External URL checks respect timeouts and rate limits
- Batch size can be adjusted for your server capacity
- Consider running scheduled scans during off-peak hours

Troubleshooting
---------------

[](#troubleshooting)

**Scans not running automatically:**

- Check that Craft's queue is processing (run `php craft queue/run`)
- Verify scan frequency is not set to "Manual Only"

**False positives for external links:**

- Some sites block automated requests - add them to ignore patterns
- Increase timeout if sites are slow to respond
- Check if sites require specific user agents

**High memory usage:**

- Reduce batch size in settings
- Limit concurrent external requests
- Process fewer field types

Support
-------

[](#support)

For issues, feature requests, or questions:

- GitHub Issues: \[your-repo-url\]
- Documentation: \[your-docs-url\]

License
-------

[](#license)

MIT

###  Health Score

21

—

LowBetter than 19% of packages

Maintenance48

Moderate activity, may be stable

Popularity13

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity13

Early-stage or recently created project

 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.

### Community

Maintainers

![](https://www.gravatar.com/avatar/d39c603a5be3e48327795a4557e3008c4c9f5e19496db2949be7b5fe7da5f1e0?d=identicon)[burnthebook](/maintainers/burnthebook)

---

Top Contributors

[![MadMikeyB](https://avatars.githubusercontent.com/u/831828?v=4)](https://github.com/MadMikeyB "MadMikeyB (3 commits)")

### Embed Badge

![Health badge](/badges/burnthebook-craft-broken-link-checker/health.svg)

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

###  Alternatives

[fmcorz/moodle-block_xp

Moodle plugin to gamify students' learning experience.

1611.5k](/packages/fmcorz-moodle-block-xp)[rdehnhardt/lumen-maintenance-mode

Define application maintenance mode.

2526.3k1](/packages/rdehnhardt-lumen-maintenance-mode)[timothyjensen/acf-field-group-values

Retrieve all post meta and option values for the specified ACF field group

486.4k](/packages/timothyjensen-acf-field-group-values)[mohamedsabil83/filament-hijri-picker

A Hijri date time picker component for Filament

224.4k](/packages/mohamedsabil83-filament-hijri-picker)[denpa/laravel-zeromq

ZeroMQ driver for Laravel

171.1k](/packages/denpa-laravel-zeromq)

PHPackages © 2026

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