Smart Redirects Manager
This module tracks broken URLs and analyzes 404 traffic on your Drupal site. It provides intelligent suggestions for creating relevant redirects to improve SEO and user experience.
Every 404 on your site is a lost visitor and leaked SEO value. Smart Redirects Manager shows you which broken URLs matter most, suggests the right page to send them to, and lets you create the 301 redirect in one click.
- See what matters first: broken URLs are ranked Critical / High / Medium / Low by traffic and trend.
- Get a real suggestion: candidates come from aliases, nodes, taxonomy terms, Views pages and your sitemap, not just URL aliases.
- Fix safely: you are warned before creating a redirect chain or pointing to another broken URL.
- Useful from day one: import your existing 404 history from the Drupal log, so the dashboard isn't empty after install.
Built on top of the Redirect module.
Features
Find every broken URL
- Catches 404s as they happen, without depending on the Database Logging (dblog) module.
- Tracks total, daily and weekly hits, last seen date and a 14-day hit sparkline for each URL.
- Shows which pages link to each broken URL (referer breakdown), so you can fix the source too.
- Groups case variants together (
/About-Usand/about-usare one entry).
Prioritize
- Each broken URL gets a Critical / High / Medium / Low priority based on total hits, daily spikes and recency.
- Thresholds are configurable, so the scoring fits a small blog as well as a high-traffic site.
Fix in one click
- A modal lists ranked redirect suggestions for each broken URL, using fuzzy and keyword matching.
- Suggestions come from URL aliases, nodes, taxonomy terms, public routes, Views page displays and, optionally, your
sitemap.xml. Pages without an alias can be suggested too. - One click creates a 301 redirect with the Redirect module and marks the URL as fixed.
- Safety checks: an existing redirect for the same path is never duplicated, and you are warned if the target is itself a broken URL or is already redirected elsewhere (chain).
Keep the list clean
- Exclusion patterns (glob or regex) stop known noise such as
/wp-admin/*from being logged. - Missing assets (images, CSS, JS…) are skipped by default; logging them is optional.
- "Ignore" hides a URL from the dashboard without losing its statistics, and can be undone.
- Bulk actions: mark as fixed, ignore, restore or delete several URLs at once.
Recover your history
- Import past "page not found" entries from the Drupal log (watchdog), from the settings page or with Drush (
drush smart_redirects_404:migrate-old-404). - Hits are placed on the day they actually happened, and the import can be run again without double counting.
Requirements
- Drupal 10.2+ or 11
- PHP 8.1+
- Redirect
Recommended: Gin admin theme, Pathauto.
Installation
composer require 'drupal/smart_redirects_404:^1.0' drush en smart_redirects_404
- Grant the Use Smart Redirects Manager permission to your editors or SEO team, and Administer Smart Redirects Manager configuration to site administrators.
- Adjust the settings at Configuration › Search and metadata › Smart Redirects Manager › Settings (
/admin/config/search/smart-redirects-404/settings), and import your old 404s if you want. - Open the dashboard at
/admin/config/search/smart-redirects-404/dashboard.
Quality and security
- Kernel, functional and unit tests, run on drupal.org GitLab CI.
- PHPStan level 5 with no suppressions, Drupal coding standards.
- Dedicated permissions for the dashboard and for the settings.
- The sitemap fetch only reaches public http(s) addresses, so it can't be used to probe internal services.
Roadmap
The next versions focus on finding the right target for more broken URLs, with less manual work:
- Smarter suggestions: match on page titles as well as paths, handle common URL changes (dates, IDs,
.htmlor.phpextensions, renamed sections), and learn from the redirects you have already created. - Multilingual matching: better results on sites with translated paths and accented characters.
- Find broken links at the source: spot links in your content that point to known broken URLs, so you can fix the link itself and not only redirect it.
- Bulk redirect creation: accept the suggestions for several broken URLs at once.
- Less noise: bot and crawler detection, automatic cleanup of old entries.
- More Drush commands: list broken URLs and create redirects from the command line.
Ideas and votes are welcome in the issue queue.
Similar projects
- Redirect 404 (submodule of Redirect): logs 404s and lets you add a redirect manually from the list. Smart Redirects Manager builds on Redirect and adds target suggestions, prioritization, trends, referer breakdown, safety checks and history import.
- Smart 404: a similar admin tool (404 dashboard, single and bulk redirect creation with suggestions taken from URL aliases, redirect loop prevention, bot detection, 30-day timeline, retention settings). Smart Redirects Manager differs mainly in where suggestions come from (Views pages, routes, taxonomy terms and sitemap.xml in addition to URL aliases, so pages without an alias can be suggested), a per-referer breakdown for each broken URL, configurable priority levels, warnings about redirect chains and broken targets, and re-importable watchdog history.
- Search 404: works on the visitor side by showing search results on the 404 page. It doesn't track 404s or create redirects, so it is complementary rather than an alternative: both modules can be used together, and 404s are still logged when Search 404 redirects visitors to a search page.
Translations
French translation included. Help translate into other languages on localize.drupal.org.
Support and contributing
Bug reports, feature requests and merge requests are welcome in the issue queue.
Depends on
Dependencies of the latest stable release
- redirect Drupal core
Required by
Tracked projects that depend on this one
No tracked projects depend on this one yet.
Activity
Release Timeline
Releases
| Version | Type | Core | Release date | |
|---|---|---|---|---|
| 1.0.0 | Stable | 10–11 | Sep 26, 2026 | |
| 1.0.0-beta2 | Pre-release | 10–11 | Sep 20, 2026 | |
| 1.0.0-beta1 | Pre-release | 10–11 | Sep 20, 2026 | |
| 1.0.0-alpha3 | Pre-release | 10–11 | Sep 19, 2026 | |
| 1.0.0-alpha2 | Pre-release | 10–11 | Aug 27, 2026 | |
| 1.0.0-alpha1 | Pre-release | 10–11 | May 18, 2026 |