spatie/laravel-link-checker
Unmaintained: Artisan command to crawl your Laravel app and check internal/external links. Logs URLs that don’t return 2xx/3xx responses and can email broken-link reports. Configurable base URL, link-check profiles, reporters, and concurrency settings.
LinkChecked, LinkFailed) for custom logic (e.g., Slack alerts, database logging).mailto:).composer why-not spatie/laravel-link-checker to check for conflicts.curl or Guzzle) suffice?composer.json constraints).composer require spatie/laravel-link-checker --dev
config/app.php:
Spatie\LinkChecker\LinkCheckerServiceProvider::class,
php artisan vendor:publish --provider="Spatie\LinkChecker\LinkCheckerServiceProvider"
config/link-checker.php.LinkChecker::check() with notify).* * * * * php artisan link-checker:check
storage/logs/laravel.log) for false positives/negatives.php -v).guzzlehttp/guzzle (v6.x) for HTTP requests./posts/{id}).mailto:, tel:, or JavaScript links may not be handled.LinkChecker::check()->queue();
parallel option (if supported in future Laravel versions).top, New Relic).| Failure Scenario | Impact | Mitigation |
|---|---|---|
| Package breaks in Laravel v10+ | Link checks fail silently | Test in staging; fork if critical |
| Server resource exhaustion | Timeouts, failed checks | Queue checks; limit concurrent requests |
| False positives/negatives | Missed issues or noise in alerts | Customize status codes; test thoroughly |
| Email delivery failures | Unnoticed broken links | Fallback to logging or Slack alerts |
| Dependency conflicts | Installation/compatibility issues | Isolate in composer.json |
How can I help you explore Laravel packages today?