AceLabs Bulk Link Checker for Craft CMS
A fast, multi-site link-scanning utility for Craft CMS.
Scan internal links, external links, redirects, and asset references – all in one pass.
Why This Plugin Exists
Content changes. URLs change. External sites disappear. Redirect chains pile up.
Manually checking hundreds of links is impossible.
Bulk Link Checker does it for you.
It crawls entries, fields, and rich text content across one or many sites and reports everything that’s broken, redirected, or suspicious.
Features
- Full multi-site scanning
- Redirect chain detection (with hop history)
- Internal and external link checking
- Optional asset checks (images/files)
- Advanced ignore patterns and filtering
- Optional disabled or draft scanning
- Craft queue-powered background scanning
- Utility UI with grouped results
- CLI command for CI/CD pipelines
- JSON output for automation
Redirect Handling
The scanner:
- Captures each redirect hop
- Shows the full redirect chain
- Distinguishes direct 200s from 200s via redirects
- Surfaces slow or chained redirects
Example chain:
301 /old-url → /new-url
301 /new-url → /newer-url
200 /newer-url
Installation
Composer
composer require acelabs/bulk-link-checker
Then enable the plugin at:
Settings → Plugins
Control Panel Usage
In the CP Utility, you can:
- Select which sites to scan
- Scan internal, external, or both link types
- Include or exclude drafts or disabled content
- Apply ignore rules
- Flag broken assets
- View results grouped by entry
- Inspect redirect chains
- Fix issues and rescan instantly
Command-Line Usage
Basic scan:
php craft bulk-link-checker/scan/run
Ideal for CI, deployments, and local automation.
CLI Options
Sites
--sites=1,2
--sites=default,en
Accepts IDs or handles.
Entry Scope
--entryScope=all
--entryScope=section
--entryScope=entryType
Section or entryType usage:
--sections=3,7
--entryTypes=12,13
Link Types
--linkMode=both
--linkMode=internal
--linkMode=external
Additional Options
--includeDisabled=1
--checkContentLinks=0
--checkAssets=1
Ignore Patterns
Supports multiline strings:
--ignorePatterns="google.com
facebook.com"
Output Format
--format=text
--format=json
JSON is recommended for CI.
Example CI Run
php craft bulk-link-checker/scan/run --sites=default --linkMode=external --format=json
Exit Codes:
- 0 = No issues
- 1 = Broken links found
Performance
You can adjust concurrency for faster scans:
config/bulk-link-checker.php
<?php
return [
'concurrency' => 10, // URLs to check in parallel
];
Recommendations:
- Increase only if your server has enough CPU threads.
- Avoid hammering external domains with high parallel requests.
- Use ignore patterns to exclude risky or rate-limited URLs.
Requirements
- Craft CMS 5.x+
- PHP 8.0+
Reporting Issues
Please open an issue on the project repository.
License
Craft License © AceLabs 2025
Standard
Plus $49/year after one year.
To install this plugin, copy the command above to your terminal.
This plugin doesn't have any reviews.

