Redirects with an indexed hot path, plus a 404 triage inbox that filters out bot noise so you only see the dead ends that matter.
Requirements
WordPress 6.2+, PHP 8.0+. Every screen, email and notice is translatable; translation files in the plugin's languages/ folder load automatically.
Redirect rules
Create rules under Redirects → Add New:
- Exact - matches one normalized path via an indexed hash lookup, so redirect checks add no measurable overhead to normal traffic. The path is compared without its query string and without a trailing slash, so
/page,/page/and/page?utm=xare the same rule; a second exact rule for the same path is refused and you are pointed at the existing one. - Prefix - matches a path and everything under it, on a whole-segment basis:
/newscovers/newsand/news/2026/storybut not/newsletter. The rest of the path is carried over to the target, joined with a single slash (/old→/new/sends/old/pageto/new/page, and/old/page/to/new/page/). Like exact rules, a prefix rule does not carry the request's query string over to the target. Prefixes are compared the same way request paths are, so/cafématches the encoded/caf%C3%A9/...and a prefix typed without a leading slash is saved with one. - Regex - full pattern matching with capture groups (
^/product-(\d+)$→/shop/item-$1). Patterns are validated against catastrophic backtracking before saving. - Status codes: 301, 302, 307, 308, or 410 (Gone) for content that is deliberately removed. A 410 rule needs no target; leave it empty (in the form, a CSV row, or
wp drm add /old-page --code=410). - Rules can be toggled Active/Inactive without deleting, and hits are counted per rule.
- Loop detection refuses rules that would redirect to themselves, directly or through an existing chain. Only same-site targets count:
/pricing→https://shop.example.net/pricingis a valid cross-site redirect.
The 404 Monitor
Redirects → 404 Monitor is a triage inbox, not a firehose: hits are grouped per URL, counted, and scored for bot likelihood - scanner/exploit probes (/wp-content/backup.sql, .env and friends) are hidden by default. For a real 404, Create redirect pre-fills the source so a typo'd inbound link is fixed in seconds. Ignore dismisses a URL you don't care about. A URL you fixed with a redirect that 404s again (for example because the redirect was deleted or disabled) reopens automatically; ignored URLs stay ignored. Rows are purged automatically after your retention period. Fixed rows are kept as a record; past the retention period their referrer, user agent and IP hash are cleared, unless Pro's retention settings (once in effect) keep fixed rows forever or longer. Developers can set a different window per status with the dragonredirectmanager_log_retention_days filter ($days, $status; return 0 to never purge that status; for fixed it sets how long fixed rows keep their visitor details) - Pro uses it for its per-status retention once you save its retention settings with a valid licence; until then your retention setting applies to every status.
Fuzzy typo correction (free since 1.0.3)
When enabled in Settings, a 404 whose URL is a confident close match to exactly one published post or page is 301-redirected there automatically. Uncertain matches are always left to stand - nothing is ever guessed to the homepage. The confidence threshold is adjustable (higher = stricter).
Slug-change auto-redirects
Renaming a published post's slug automatically creates a redirect from the old URL, so inbound links never break. If you later rename it back, the earlier redirect away from the restored URL is switched off (and the reverse redirect added) so the post never redirects to itself.
Import & export
CSV export of your full rule set, CSV import, and one-click importers for Redirection and Simple 301 Redirects. The CSV columns are source,target,type,code,active,note; active (1/0) and note are optional on import, so older four-column files still import with every rule active. A row with no target is skipped, and the import result says how many, unless its code is 410. Redirection imports keep regex rules as regex and disabled rules disabled.
Data & privacy
The 404 monitor records URL, referrer (including links from other sites), user agent and a salted hash of the visitor IP (raw IPs only if you explicitly enable that). Rows auto-purge on your retention schedule (with Pro, on its per-status windows once you save them; Settings says when they are in effect). Rows marked fixed are kept; past your retention period (or Pro's fixed-row window, when in effect) they keep only the URL, hit count and dates. Uninstalling keeps your rules by default; opt into deletion in Settings.
Dragon Redirect Manager Pro
Adds scheduled/expiring redirects, a redirect + 404 analytics dashboard, 404 alerts (email, signed webhook, Slack), filtered CSV export with per-status retention, and a chain/loop scanner with one-click flatten.
Uninstall
Deleting the plugin keeps all its data by default, so a reinstall picks up where you left off. To remove everything on uninstall, tick Delete all data on uninstall in the plugin's settings first (this sets the dragonredirectmanager_delete_data_on_uninstall option).