Drupal Broken Link Checker: How to Find and Fix Broken Links in Drupal
Drupal Broken Link Checker: How to Find and Fix Broken Links in Drupal
Quick answer: The fastest way to find broken links in Drupal is to install the Broken Link Checker module (drupal.org/project/blc), which automatically scans your content and flags URLs returning 404 or other errors. For external link safety checks — including phishing and malware detection — combine the module with a free web-based link checker like Link Checker.
Why broken links matter for Drupal sites
Broken links affect Drupal sites the same way they affect any CMS: they degrade user experience, waste crawl budget, and signal poor maintenance to search engines. Large Drupal sites — government portals, university sites, enterprise intranets — are particularly vulnerable because:
- Content is created by many editors with varying link hygiene practices
- External sites change URLs without notifying you
- Legacy content from migrations often contains broken or outdated links
- CMS upgrades can alter URL structures, breaking internal links
Method 1: Drupal Broken Link Checker module
The Broken Link Checker module (drupal.org/project/blc) is the most comprehensive solution for Drupal sites:
How it works
After installation, the module runs a background queue that checks all URLs in your content fields (body text, link fields, file references) against their HTTP response codes. Broken links are flagged in a dedicated admin report at /admin/reports/blc.
Installation
- Download the module:
composer require drupal/blc - Enable it in your modules list or via Drush:
drush en blc - Configure at
/admin/config/content/blc— set check frequency, batch size, and which content types to audit - View results at
/admin/reports/blc
Key features
- Checks links in all text fields, including WYSIWYG body content
- Configurable crawl frequency (daily, weekly, monthly)
- Filters by content type, link type (internal/external), and HTTP status
- Bulk actions: mark as ignored, redirect, or queue for manual review
- Compatible with Drupal 9 and 10
Performance considerations
The module adds background processing load to your Drupal cron. On large sites (10,000+ nodes), configure a small batch size (50-100 links per cron run) and run cron frequently. Alternatively, trigger queue processing via Drush: drush queue-run blc_check_links.
Method 2: Checking external links with an online tool
For checking specific external links — especially to verify safety or threat status — use Link Checker:
- Copy any external URL from your Drupal content
- Paste it into mylinkchecker.com
- Get instant results: HTTP status, redirect chain, domain reputation, and threat flags
This approach is ideal when you want to check whether an external site has been compromised or is now serving phishing content, which the Drupal module does not check.
Method 3: Screaming Frog full-site crawl
For a one-time comprehensive audit of all links (internal and external) on your Drupal site:
- Download Screaming Frog SEO Spider (free up to 500 URLs)
- Enter your Drupal site's homepage URL and start a crawl
- Filter by Response Code → 4xx or 5xx to find broken links
- Export the "External Links" tab for a complete outbound link audit
When to use this method: Pre-launch audits, post-migration link validation, or when you need a snapshot outside of Drupal's admin interface.
Common causes of broken links in Drupal
Internal broken links
- URL alias changes — An editor updates a node's URL alias without creating a redirect
- Content deletion — Referenced content is deleted without cleaning up links in other nodes
- Module changes — Path module updates or Views path changes break previously valid URLs
- Multilingual path issues — Language prefixes change during site configuration updates
Fix: Use Drupal's Redirect module (drupal.org/project/redirect) with Global Redirect to automatically redirect old paths and detect alias conflicts.
External broken links
- Third-party sites restructure their URLs without 301 redirects
- Domains expire and are taken over by parked or spam pages
- HTTPS migrations — Links using
http://that now requirehttps:// - Paywalled content — Free articles that are now behind a subscription wall
Fix: Audit external links quarterly using the BLC module or Link Checker.
Fixing broken links in Drupal
Manual fix via node edit
For individual broken links:
- Navigate to the node containing the broken link
- Click Edit
- Update or remove the broken URL in the body or field
- Save the node
Bulk fix via Drupal admin
The BLC module's report page allows bulk marking of links as "ignored" (for acceptable redirects or intentional pages) and direct links to the edit form of each affected node.
Programmatic fix with Drush or Migrate
For large-scale link replacements — such as updating an entire external domain across hundreds of nodes — use drush php-eval with a custom script or a Drush command to search-and-replace URLs in the database. Always back up before bulk database operations.
Using the Redirect module
For internal URL changes, the Redirect module automatically creates redirects when you change a node's URL alias. Enable Redirect 404 to log 404 errors and create redirects from the admin UI without touching node content.
Drupal broken link checker vs. external tools — when to use each
| Scenario | Use BLC module | Use external tool | |---|---|---| | Ongoing automated monitoring | Yes | No | | Checking link safety/threats | No | Yes (Link Checker) | | Pre-launch full-site audit | Supplement | Yes (Screaming Frog) | | Spot-checking a single URL | No | Yes | | JavaScript-rendered links | No | Partial |
FAQ: Drupal broken link checker
Does the Broken Link Checker module work with Drupal 10?
Yes. The BLC module has versions compatible with Drupal 9 and Drupal 10. Check the module's project page on drupal.org for the latest supported release.
How do I check links in Drupal without a module?
Use a web-based link checker like Link Checker for individual URLs. For a full-site audit, run Screaming Frog against your Drupal site's homepage.
Why does the BLC module slow down my Drupal site?
The module uses Drupal's cron to process links in a queue. On shared hosting with limited resources, reduce the batch size setting and run cron during off-peak hours (e.g., midnight).
Can I check Drupal's file links and embedded media?
Yes, the BLC module checks linked files (PDFs, documents) in addition to HTML links. Embedded media URLs may require additional configuration depending on which media module you use.
Check individual links for safety with the free Link Checker — instant threat detection, no login required.
Stay safe online
Check any suspicious link instantly with our free URL safety scanner.
Check a URL now →