{"id":368215,"date":"2026-09-28T11:59:40","date_gmt":"2026-09-28T11:59:40","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/redirect-health\/"},"modified":"2026-09-29T11:48:43","modified_gmt":"2026-09-29T11:48:43","slug":"redirect-doctor","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/redirect-doctor\/","author":8295894,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"3.3.3","stable_tag":"3.3.3","tested":"7.1.2","requires":"5.8","requires_php":"7.2","requires_plugins":null,"header_name":"Redirect Doctor","header_author":"Fr\u00e9d\u00e9ric LE GUEN","header_description":"Finds redirect chains, loops, outdated redirects and grouped 404s \u2014 and lets you fix them, one checkbox at a time.","assets_banners_color":"2d3446","last_updated":"2026-09-29 11:48:43","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/orion-sigma.com\/redirect-doctor.html","header_author_uri":"https:\/\/orion-sigma.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":60,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"3.3.3":{"tag":"3.3.3","author":"Fred_Konga","date":"2026-09-29 11:48:43","revision":3718944}},"upgrade_notice":{"2.23.0":"<p>Free and Pro are now two separate downloads. If you own the Pro version, install the Pro ZIP \u2014\ninstalling the free one removes the fixing features.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3717031,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3717031,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3717031,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3717031,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["3.3.3"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3717031,"resolution":"1","location":"assets","locale":"","width":1640,"height":1717},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3717031,"resolution":"2","location":"assets","locale":"","width":1632,"height":1102},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3717031,"resolution":"3","location":"assets","locale":"","width":1636,"height":855},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3717031,"resolution":"4","location":"assets","locale":"","width":1633,"height":2293},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3717031,"resolution":"5","location":"assets","locale":"","width":1634,"height":2018},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3717031,"resolution":"6","location":"assets","locale":"","width":1626,"height":1442},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3717031,"resolution":"7","location":"assets","locale":"","width":1635,"height":1503},"screenshot-8.png":{"filename":"screenshot-8.png","revision":3717031,"resolution":"8","location":"assets","locale":"","width":1638,"height":1356},"screenshot-9.png":{"filename":"screenshot-9.png","revision":3717031,"resolution":"9","location":"assets","locale":"","width":1628,"height":1395}},"screenshots":{"1":"The nine tiles, each with the real count of what was found, and the redirect chains below: every cascade on one row, from the first address to the page that actually opens.","2":"Loops. Address A points to B, B points back to A, and the page never opens. This is the only fault on the whole plugin that truly breaks something for a visitor.","3":"Conflicting addresses: the same address with several rules leading to different places. Only one ever fires, and the Last use column says which.","4":"Duplicates: the same rule written several times over the years.","5":"Missing pages, grouped by address and counted instead of stacked one line per hit, with the Kind column separating real visitors from robots and missing files. The free version lists the first five.","6":"Redirects sent to the home page. Not a redirect, a soft 404 \u2014 and the screen says what to do about it. The free version lists the first five.","7":"Doubtful destinations: redirects whose start and destination share no word at all. Ranked, filterable, and a pair can be marked as intended.","8":"Redirects safe to delete, split between never used and unused for over three years.","9":"Links to fix inside your own content: posts and pages still pointing at an address that now redirects. Fixing the link removes the hop at the source."}},"plugin_section":[],"plugin_tags":[905,14279,925,726,186],"plugin_category":[55],"plugin_contributors":[283175],"plugin_business_model":[],"class_list":["post-368215","plugin","type-plugin","status-publish","hentry","plugin_tags-905","plugin_tags-broken-links","plugin_tags-redirection","plugin_tags-redirects","plugin_tags-seo","plugin_category-seo-and-marketing","plugin_contributors-fred_konga","plugin_committers-fred_konga"],"banners":{"banner":"https:\/\/ps.w.org\/redirect-doctor\/assets\/banner-772x250.png?rev=3717031","banner_2x":"https:\/\/ps.w.org\/redirect-doctor\/assets\/banner-1544x500.png?rev=3717031","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/redirect-doctor\/assets\/icon-128x128.png?rev=3717031","icon_2x":"https:\/\/ps.w.org\/redirect-doctor\/assets\/icon-256x256.png?rev=3717031","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/redirect-doctor\/assets\/screenshot-1.png?rev=3717031","caption":"The nine tiles, each with the real count of what was found, and the redirect chains below: every cascade on one row, from the first address to the page that actually opens."},{"src":"https:\/\/ps.w.org\/redirect-doctor\/assets\/screenshot-2.png?rev=3717031","caption":"Loops. Address A points to B, B points back to A, and the page never opens. This is the only fault on the whole plugin that truly breaks something for a visitor."},{"src":"https:\/\/ps.w.org\/redirect-doctor\/assets\/screenshot-3.png?rev=3717031","caption":"Conflicting addresses: the same address with several rules leading to different places. Only one ever fires, and the Last use column says which."},{"src":"https:\/\/ps.w.org\/redirect-doctor\/assets\/screenshot-4.png?rev=3717031","caption":"Duplicates: the same rule written several times over the years."},{"src":"https:\/\/ps.w.org\/redirect-doctor\/assets\/screenshot-5.png?rev=3717031","caption":"Missing pages, grouped by address and counted instead of stacked one line per hit, with the Kind column separating real visitors from robots and missing files. The free version lists the first five."},{"src":"https:\/\/ps.w.org\/redirect-doctor\/assets\/screenshot-6.png?rev=3717031","caption":"Redirects sent to the home page. Not a redirect, a soft 404 \u2014 and the screen says what to do about it. The free version lists the first five."},{"src":"https:\/\/ps.w.org\/redirect-doctor\/assets\/screenshot-7.png?rev=3717031","caption":"Doubtful destinations: redirects whose start and destination share no word at all. Ranked, filterable, and a pair can be marked as intended."},{"src":"https:\/\/ps.w.org\/redirect-doctor\/assets\/screenshot-8.png?rev=3717031","caption":"Redirects safe to delete, split between never used and unused for over three years."},{"src":"https:\/\/ps.w.org\/redirect-doctor\/assets\/screenshot-9.png?rev=3717031","caption":"Links to fix inside your own content: posts and pages still pointing at an address that now redirects. Fixing the link removes the hop at the source."}],"raw_content":"<!--section=description-->\n<p>You have been redirecting URLs for years. Every rename, every restructure, every fixed typo\nadded one more rule. Nobody ever went back to check whether they still make sense together.<\/p>\n\n<p><strong>Redirect Doctor reads the redirects you already have and tells you what is wrong with them.<\/strong><\/p>\n\n<p>https:\/\/www.youtube.com\/watch?v=xC1u5p-e0Eg<\/p>\n\n<p>It does not create redirects behind your back and it does not replace your redirection plugin.\nIt audits what is there, on nine screens:<\/p>\n\n<ul>\n<li><strong>Chained redirects<\/strong> \u2014 <code>\/a\/<\/code> sends to <code>\/b\/<\/code>, which sends to <code>\/c\/<\/code>. Every visitor and every\nsearch engine pays for the extra hops. Cascades of eight steps are common on old sites.<\/li>\n<li><strong>Loops<\/strong> \u2014 <code>\/a\/<\/code> sends to <code>\/b\/<\/code>, and <code>\/b\/<\/code> sends back to <code>\/a\/<\/code>. The browser gives up and the\npage never opens. This is the only fault that truly breaks something for a visitor.<\/li>\n<li><strong>Conflicts<\/strong> \u2014 the same address with two different destinations. Only one can win, and it is\nnot always the one you meant.<\/li>\n<li><strong>Duplicates<\/strong> \u2014 the same rule written several times over the years.<\/li>\n<li><strong>404 errors, grouped<\/strong> \u2014 not a raw log, but pages people actually keep asking for, sorted by\nhow often they are hit, with a suggested destination for each.<\/li>\n<li><strong>Redirects safe to delete<\/strong> \u2014 rules that have not sent a single visitor in years.<\/li>\n<li><strong>Redirects sent to the home page<\/strong> \u2014 rules that do not send the visitor to a replacement\npage, but to your home page. This is not a redirect, it is a soft 404: you are telling\nGoogle that a dead address now holds your home page, and your home page slowly takes on the\nreputation of every dead address pointed at it.<\/li>\n<li><strong>Doubtful destinations<\/strong> \u2014 redirects whose starting address and destination share no word\nat all. Often a batch of rules pointed at something that has nothing to do with them. The\nscreen ranks them; you decide, and you can mark a pair as intended so it stops being\nreported.<\/li>\n<li><strong>Links to fix in your content<\/strong> \u2014 posts and pages that still link to an address which now\nredirects. Fixing the link removes the hop at the source.<\/li>\n<\/ul>\n\n<p>Everything is measured against your own site. No external service is contacted, no data leaves\nyour server, and nothing is written unless you tick a box and click a button.<\/p>\n\n<h4>Requires the Redirection plugin<\/h4>\n\n<p>Redirect Doctor reads the tables of the <strong>Redirection<\/strong> plugin by John Godley. It is built on\ntop of it, the way an extension is built on top of WooCommerce. Without Redirection installed\nand active, Redirect Doctor has nothing to read and WordPress will not let you activate it.<\/p>\n\n<h4>What the free version does<\/h4>\n\n<p><strong>The free version is a complete diagnosis.<\/strong> All nine screens, the real totals, the filters,\nthe search, the CSV export, the copy-to-clipboard button \u2014 and the printable health check.<\/p>\n\n<p>That health check sums up everything found on your site in numbers, with the risk each one\nrepresents, and <strong>names no address<\/strong>. You can hand it to a client or a manager as it is.<\/p>\n\n<p>Each table shows its <strong>first five rows<\/strong>, and tells you how many more there are. The counters on\nthe tiles are never rounded, never capped and never faked: if your site has 1,609 unresolved\n404s, it says 1,609.<\/p>\n\n<p>Two things belong to the Pro version:<\/p>\n\n<ol>\n<li><strong>Fixing.<\/strong> Every action button is visible but switched off. Nothing is deleted, created or\nrewritten by the free version \u2014 ever.<\/li>\n<li><strong>The addresses that form your loops.<\/strong> The free version tells you how many loops you have\nand how many redirects they involve. Finding a loop buried in fifteen years of accumulated\nrules is the hard part; undoing it takes three clicks.<\/li>\n<\/ol>\n\n<h4>What the Pro version adds<\/h4>\n\n<ul>\n<li>Every row of every table, not the first five.<\/li>\n<li>The loop map: which addresses point at each other.<\/li>\n<li><strong>One-click fixing, with an undo.<\/strong> Shorten a chain so each step goes straight to the final\ndestination. Delete dead rules. Create redirects for your most-hit 404s. Break a loop by\nremoving a link.<\/li>\n<li><strong>Rewriting the links inside your content<\/strong> that still point at an old address, as relative\naddresses so they survive a domain change.<\/li>\n<li>An action log of everything that was changed, with its own export.<\/li>\n<li>A health check that also shows where you started and where you are now.<\/li>\n<\/ul>\n\n<p>Nothing is ever changed without a ticked box, and every batch stays recoverable afterwards.<\/p>\n\n<p>Pro is available from <a href=\"https:\/\/orion-sigma.com\/redirect-doctor.html\">orion-sigma.com<\/a>.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate <strong>Redirection<\/strong> first \u2014 Redirect Doctor reads its data.<\/li>\n<li>Upload the <code>redirect-doctor<\/code> folder to <code>\/wp-content\/plugins\/<\/code>, or install the ZIP from\n<em>Plugins \u2192 Add New \u2192 Upload Plugin<\/em>.<\/li>\n<li>Activate the plugin.<\/li>\n<li>Open <strong>Tools \u2192 Redirect Doctor<\/strong>. The first analysis runs on its own.<\/li>\n<\/ol>\n\n<p>The analysis re-runs by itself once a week, and immediately after any change you make.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20it%20change%20anything%20on%20my%20site%20by%20itself%3F\"><h3>Does it change anything on my site by itself?<\/h3><\/dt>\n<dd><p>No. The free version writes nothing at all \u2014 the code that writes is not even included in the\nfree download. In the Pro version, nothing happens without a ticked box and a click, and every\nbatch you delete stays recoverable.<\/p><\/dd>\n<dt id=\"will%20it%20slow%20my%20site%20down%3F\"><h3>Will it slow my site down?<\/h3><\/dt>\n<dd><p>No. Everything happens in the WordPress admin, on demand. Nothing is added to the pages your\nvisitors see.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20yoast%2C%20rank%20math%20or%20my%20host%27s%20redirect%20manager%3F\"><h3>Does it work with Yoast, Rank Math or my host's redirect manager?<\/h3><\/dt>\n<dd><p>No. Redirect Doctor is built specifically on the <strong>Redirection<\/strong> plugin and reads its tables.\nThat is a deliberate design choice, not an oversight.<\/p><\/dd>\n<dt id=\"what%20is%20a%20redirect%20chain%2C%20and%20why%20should%20i%20care%3F\"><h3>What is a redirect chain, and why should I care?<\/h3><\/dt>\n<dd><p>\/old-page\/ sends to <code>\/newer-page\/<\/code>, which sends to <code>\/current-page\/<\/code>. The visitor's browser\nmakes three requests instead of one, and search engines dilute the signal at every hop. Pointing\neach rule straight at the final destination fixes it without breaking any of the old addresses.<\/p><\/dd>\n<dt id=\"why%20does%20the%20free%20version%20hide%20which%20addresses%20form%20my%20loops%3F\"><h3>Why does the free version hide which addresses form my loops?<\/h3><\/dt>\n<dd><p>Because on that one screen, knowing <em>is<\/em> the work. Once you know that <code>\/a\/<\/code> and <code>\/b\/<\/code> point at\neach other, removing one of them takes three clicks. Spotting that pair inside years of\naccumulated rules is what the plugin is for. Every other screen shows you real rows from your\nown site.<\/p><\/dd>\n<dt id=\"is%20my%20data%20sent%20anywhere%3F\"><h3>Is my data sent anywhere?<\/h3><\/dt>\n<dd><p>No. Redirect Doctor contacts no external service. Everything it reads and writes stays in your\nown database.<\/p><\/dd>\n<dt id=\"in%20which%20languages%20is%20it%20available%3F\"><h3>In which languages is it available?<\/h3><\/dt>\n<dd><p>English and French. Translations live in <code>\/languages\/<\/code> and can be edited with any translation\nplugin.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>3.3.3<\/h4>\n\n<ul>\n<li>New colour for the main action button.<\/li>\n<\/ul>\n\n<h4>3.3.2<\/h4>\n\n<ul>\n<li>The target address now keeps its trailing slash on screen and, above all, in the links\nthat \"Links to fix\" rewrites. Writing \/page instead of \/page\/ made WordPress answer with\na canonical redirect, so the tool replaced one pointless round trip with another.<\/li>\n<li>The rewritten link is taken from the canonical permalink of the destination when the\ndestination is a published post or page.<\/li>\n<\/ul>\n\n<h4>3.3.1<\/h4>\n\n<ul>\n<li>Inline CSS and JS now go through the official WordPress functions: wp_register_style with\nwp_add_inline_style for the admin screens, wp_print_inline_style_tag and\nwp_print_inline_script_tag for the standalone report.<\/li>\n<li>The print button no longer carries an inline onclick handler.<\/li>\n<\/ul>\n\n<h4>3.3.0<\/h4>\n\n<ul>\n<li>Renamed to Redirect Doctor. The former name was the registered trademark of an unrelated company.<\/li>\n<li>New menu icon: a stethoscope drawn in the plugin, as no Dashicon suggests health.<\/li>\n<\/ul>\n\n<h4>3.2.4<\/h4>\n\n<ul>\n<li>Reads a third form of destination used by Redirection for \"URL and server\" rules,\nwhere the target sits inside a serialised array. The report showed that raw array instead\nof the address.<\/li>\n<li>Shortening a chain now writes inside that form instead of replacing it, so the rule keeps\nits server and its fallback address. Replacing it would have broken the rule.<\/li>\n<\/ul>\n\n<h4>3.2.3<\/h4>\n\n<ul>\n<li>First release on WordPress.org.<\/li>\n<li>Nine screens, laid out vertically: chained redirects, loops, conflicts, duplicates, grouped\n404s, redirects sent to the home page, doubtful destinations, redirects safe to delete, and\nlinks to fix inside your own content.<\/li>\n<li>Doubtful destinations: compares the words of a starting address with those of its\ndestination, and lets you mark a pair as intended so it stops being reported.<\/li>\n<li>Detects a site redirecting to itself in an endless loop, and recognises the WooCommerce\ngeolocation fingerprint behind it.<\/li>\n<li>A one-click health check, ready to print or save as PDF. It names no address, so it can be\nhanded to a client as it is.<\/li>\n<\/ul>\n\n<h4>2.32.0<\/h4>\n\n<ul>\n<li>New, and free: spots addresses that are not missing pages at all, but a site redirecting to\nitself in an endless loop. Names the culprit when your server reports it.<\/li>\n<li>Recognises the WooCommerce geolocation fingerprint, and says exactly which setting to change.<\/li>\n<\/ul>\n\n<h4>2.31.0<\/h4>\n\n<ul>\n<li>Pro: rewrite the links inside your content that still point at an old address. Tick the lines,\nclick once, and undo it if you change your mind.<\/li>\n<li>Links are written as relative addresses, so they survive a domain change.<\/li>\n<\/ul>\n\n<h4>2.30.0<\/h4>\n\n<ul>\n<li>Pro: a Licence screen. Enter your key, the site is registered, the fixing features open.<\/li>\n<li>If our licence server is ever unreachable, nothing changes on your site.<\/li>\n<\/ul>\n\n<h4>2.28.0<\/h4>\n\n<ul>\n<li>New: a one-click health check, ready to print or save as PDF. It sums up the whole analysis\nin numbers and names no address, so it can be handed to a client as it is.<\/li>\n<li>Pro: the report also shows where you started and where you are now.<\/li>\n<\/ul>\n\n<h4>2.27.0<\/h4>\n\n<ul>\n<li>Declares Redirection as a required plugin, so WordPress refuses activation without it instead of showing an empty screen.<\/li>\n<li>Added this readme.<\/li>\n<\/ul>\n\n<h4>2.26.0<\/h4>\n\n<ul>\n<li>The \"more rows\" notice is now the last row of the table, introduced by three dots, instead of\na paragraph underneath. A table that stops dead looks complete.<\/li>\n<li>The CSV export skips that row.<\/li>\n<\/ul>\n\n<h4>2.25.0<\/h4>\n\n<ul>\n<li>The free version shows the first five rows of each table, and says how many remain. Five per\n<em>table<\/em>, not per screen. Tile counters remain complete and truthful.<\/li>\n<\/ul>\n\n<h4>2.24.0<\/h4>\n\n<ul>\n<li>The loops screen now reports how many loops exist and how many redirects they involve, without\nlisting the addresses, in the free version.<\/li>\n<\/ul>\n\n<h4>2.23.0<\/h4>\n\n<ul>\n<li>Free and Pro became two separate downloads. The code that writes to the database now lives in\nits own file, which the free package does not contain.<\/li>\n<\/ul>\n\n<h4>2.22.0<\/h4>\n\n<ul>\n<li>Conflicts split away from duplicates: the same address with two different destinations is a\nfar more serious fault than a rule written twice.<\/li>\n<li>Nine screens, each with its own colour, and an explanation written in plain language.<\/li>\n<\/ul>\n\n<h4>2.16.0<\/h4>\n\n<ul>\n<li>Action history, with its own export.<\/li>\n<li>Deleting a batch became recoverable.<\/li>\n<\/ul>","raw_excerpt":"A health check for the redirects you already have: chains, loops, conflicts, duplicates, dead rules and grouped 404s.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/368215","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=368215"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/fred_konga"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=368215"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=368215"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=368215"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=368215"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=368215"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=368215"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}