{"id":393691,"date":"2026-10-29T06:36:32","date_gmt":"2026-10-29T06:36:32","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/codebold-redirects\/"},"modified":"2026-10-29T08:03:59","modified_gmt":"2026-10-29T08:03:59","slug":"codebold-redirects","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/codebold-redirects\/","author":23544796,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.3.6","stable_tag":"1.3.6","tested":"7.1.4","requires":"6.5","requires_php":"8.1","requires_plugins":null,"header_name":"CodeBold Redirects","header_author":"CodeBold IT Solutions","header_description":"Redirects without the fuss. Send old addresses to new ones, catch pages that moved before anyone notices, and see every \"page not found\" with a one-click fix beside it.","assets_banners_color":"181911","last_updated":"2026-10-29 08:03:59","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/codeboldcommerce.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":54,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.3.6":{"tag":"1.3.6","author":"codeboldtech","date":"2026-10-29 08:03:59","revision":3772352}},"upgrade_notice":{"1.3.6":"<p>Adds a link to the plugin&#039;s makers. No change to how redirects behave or to saved data.<\/p>","1.3.5":"<p>Security hardening for links that pre-fill the add form. No change to how redirects behave or to saved data.<\/p>","1.3.4":"<p>The Redirects screen opens in the light look, with Dark mode one click away. No change to how redirects behave or to saved data.<\/p>","1.3.3":"<p>A cleaner Redirects screen in CodeBold&#039;s colours, with a one-click Dark mode; Match WordPress is under Settings \u2192 Appearance.<\/p>","1.2.0":"<p>A refreshed, more compact admin screen. No change to how redirects behave or to saved data.<\/p>","1.1.0":"<p>Usability, keyboard and phone improvements throughout. No change to how redirects behave.<\/p>","1.0.0":"<p>First release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3772205,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3772205,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3772205,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3772205,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.3.6"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3772352,"resolution":"1","location":"assets","locale":"","width":1600,"height":1025},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3772352,"resolution":"2","location":"assets","locale":"","width":1600,"height":1528},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3772352,"resolution":"3","location":"assets","locale":"","width":1600,"height":1072},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3772352,"resolution":"4","location":"assets","locale":"","width":1600,"height":1315},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3772352,"resolution":"5","location":"assets","locale":"","width":1600,"height":688},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3772352,"resolution":"6","location":"assets","locale":"","width":1600,"height":924},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3772352,"resolution":"7","location":"assets","locale":"","width":1600,"height":1060},"screenshot-8.png":{"filename":"screenshot-8.png","revision":3772352,"resolution":"8","location":"assets","locale":"","width":1600,"height":619}},"screenshots":{"1":"The Redirects screen: add a redirect at the top, every redirect below","2":"More options: wildcards, conditions, schedules and groups","3":"Every redirect at a glance: visits, last use, an on\/off switch, edit and more","4":"Pages not found, with a one-click fix beside each","5":"Testing an address: what happens, and why","6":"Import from a file or another plugin, export for your server","7":"Settings: your own appearance (Light, Dark or Match WordPress), and every option explained in a sentence","8":"Dark mode, one click away"}},"plugin_section":[262246],"plugin_tags":[932,905,14279,727,925],"plugin_category":[],"plugin_contributors":[278356],"plugin_business_model":[],"class_list":["post-393691","plugin","type-plugin","status-publish","hentry","plugin_section-dashboard-widgets","plugin_tags-932","plugin_tags-905","plugin_tags-broken-links","plugin_tags-redirect","plugin_tags-redirection","plugin_contributors-codeboldtech","plugin_committers-codeboldtech"],"banners":{"banner":"https:\/\/ps.w.org\/codebold-redirects\/assets\/banner-772x250.png?rev=3772205","banner_2x":"https:\/\/ps.w.org\/codebold-redirects\/assets\/banner-1544x500.png?rev=3772205","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/codebold-redirects\/assets\/icon-128x128.png?rev=3772205","icon_2x":"https:\/\/ps.w.org\/codebold-redirects\/assets\/icon-256x256.png?rev=3772205","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/codebold-redirects\/assets\/screenshot-1.png?rev=3772352","caption":"The Redirects screen: add a redirect at the top, every redirect below"},{"src":"https:\/\/ps.w.org\/codebold-redirects\/assets\/screenshot-2.png?rev=3772352","caption":"More options: wildcards, conditions, schedules and groups"},{"src":"https:\/\/ps.w.org\/codebold-redirects\/assets\/screenshot-3.png?rev=3772352","caption":"Every redirect at a glance: visits, last use, an on\/off switch, edit and more"},{"src":"https:\/\/ps.w.org\/codebold-redirects\/assets\/screenshot-4.png?rev=3772352","caption":"Pages not found, with a one-click fix beside each"},{"src":"https:\/\/ps.w.org\/codebold-redirects\/assets\/screenshot-5.png?rev=3772352","caption":"Testing an address: what happens, and why"},{"src":"https:\/\/ps.w.org\/codebold-redirects\/assets\/screenshot-6.png?rev=3772352","caption":"Import from a file or another plugin, export for your server"},{"src":"https:\/\/ps.w.org\/codebold-redirects\/assets\/screenshot-7.png?rev=3772352","caption":"Settings: your own appearance (Light, Dark or Match WordPress), and every option explained in a sentence"},{"src":"https:\/\/ps.w.org\/codebold-redirects\/assets\/screenshot-8.png?rev=3772352","caption":"Dark mode, one click away"}],"raw_content":"<!--section=description-->\n<p>Every site that has been around for a while has addresses that no longer go anywhere: a\npage that was renamed, a post moved into a new category, a whole blog that moved from\n\/blog to \/news. Each one is a visitor who arrives from Google, a newsletter or somebody\nelse's article and finds nothing.<\/p>\n\n<p>CodeBold Redirects fixes those \u2014 most of them before you notice they were broken.<\/p>\n\n<p><strong>New here? Read the <a href=\"https:\/\/codeboldtech.com\/guides\/codebold-redirects?utm_source=codebold-redirects&amp;utm_medium=wordpress-org&amp;utm_campaign=guide\">step-by-step user guide, with screenshots of every screen<\/a>.<\/strong><\/p>\n\n<h4>It catches pages that move<\/h4>\n\n<p>Rename a page, move it under a new parent, or change a post's date, and a redirect from the\nold address is made for you. Pages beneath a moved page are covered too, and so are\ncategories, tags and product categories.<\/p>\n\n<p>The redirect points at the page itself, not at its new address. Rename it again and every\nold address still leads straight to wherever it is now \u2014 no chains, ever.<\/p>\n\n<h4>It shows you what is broken, with the fix beside it<\/h4>\n\n<p>Every address visitors asked for that did not exist is listed, most-visited first, with\nwhere they came from. Beside each one is the page it most likely meant, found by its name.\nOne click and it is redirected \u2014 and it leaves the list.<\/p>\n\n<p>No IP addresses are stored: one line per address, with a count. Scanners probing for\n.env files and old phpMyAdmin installs are ignored, so the list is the links that matter.<\/p>\n\n<p>On a page that was not found, administrators see \"Redirect this address\" in the admin\nbar. The moment you notice a broken link is the moment you can fix it.<\/p>\n\n<h4>Adding a redirect is one line<\/h4>\n\n<p>Type the old address, start typing the new page's name, pick it. That is the whole form.\nPasting full addresses works; trailing slashes, capital letters and campaign tags are\nhandled for you. As you type, it tells you if the address already redirects, if the new\npage does not seem to exist, or if you are about to hide a live page.<\/p>\n\n<p>When you need more, it is there:<\/p>\n\n<ul>\n<li>Wildcards \u2014 \/blog\/* to \/news\/* moves a whole section, keeping each page's name<\/li>\n<li>Regular expressions, with $1, $2 in the destination<\/li>\n<li>Conditions: logged in or out, role, phone or computer, where they came from, browser\nlanguage, country (with Cloudflare or a host that provides it), cookie, IP address<\/li>\n<li>\"Only if the page does not exist\" \u2014 redirect the old shop's products, except those you\nhave since recreated<\/li>\n<li>Schedules \u2014 a redirect that starts and stops on its own, for sales and seasonal pages<\/li>\n<li>301, 302, 307, 308, and 410 Gone and 451 for pages removed on purpose<\/li>\n<li>Groups and notes, so a site move or a campaign stays together<\/li>\n<\/ul>\n\n<h4>It will not break your site<\/h4>\n\n<ul>\n<li>Refuses loops \u2014 including the classic \"^\/(.*)$ to \/en\/$1\", which looks right and sends\nvisitors to \/en\/en\/en\/\u2026 until the browser gives up<\/li>\n<li>Refuses to redirect the admin, the login screen or the REST API, so you cannot lock\nyourself out<\/li>\n<li>A chain of redirects is followed for the visitor in one step<\/li>\n<li>The destination's domain can never come from the visitor's address, so the site cannot\nbe used to bounce people to somebody else's website<\/li>\n<li>Browsers are told to remember a 301 for an hour, not for ever \u2014 so a mistake does not\nlinger on visitors' computers for months after you fix it<\/li>\n<li>Deleting a redirect shows \"Undo\" instead of asking \"are you sure?\"<\/li>\n<\/ul>\n\n<h4>Test any address<\/h4>\n\n<p>Paste an address and see what happens to a visitor there, which rule applies and why \u2014 as\na logged-out visitor, a phone, somebody from Facebook, or from France. Then ask your site\nitself and follow each hop, which catches redirects your server, CDN or another plugin\nmakes.<\/p>\n\n<h4>Moving from another plugin<\/h4>\n\n<p>If Redirection, Rank Math, Yoast SEO Premium, Safe Redirect Manager or Simple 301\nRedirects has left redirects in your database \u2014 active or not \u2014 they are found and\noffered for import in one click. Their own data is left untouched.<\/p>\n\n<p>You can also import a CSV from any SEO tool or spreadsheet (column names in any order,\ncommas or semicolons), a JSON backup, or the redirect lines from an .htaccess or Nginx\nconfig. You see a preview before anything is saved, and every row goes through the same\nchecks as one typed by hand.<\/p>\n\n<p>Export as CSV, a full JSON backup, or Apache and Nginx rules for the server to handle the\nsimple ones itself.<\/p>\n\n<h4>Fast<\/h4>\n\n<p>An exact redirect is one indexed database lookup. Patterns are cached. Redirects happen\nbefore WordPress loads the page that would have been thrown away. Visits are counted with\na single write.<\/p>\n\n<h4>For developers<\/h4>\n\n<ul>\n<li>A REST API under codebold-redirect\/v1 \u2014 the screen uses nothing else<\/li>\n<li>WP-CLI: <code>wp codebold-redirect list|add|delete|test|import|import-from|export|404s|cleanup<\/code><\/li>\n<li>Filters and actions for every decision: <code>codebold_redirect_should_check<\/code>,\n  codebold_redirect_url, <code>codebold_redirect_before<\/code>, <code>codebold_redirect_site_hosts<\/code>,\n  codebold_redirect_country, <code>codebold_redirect_record_404<\/code>, <code>codebold_redirect_can_manage<\/code>\nand more<\/li>\n<li>An <code>X-Redirect-By: CodeBold Redirects<\/code> header on every redirect<\/li>\n<\/ul>\n\n<h4>Made by CodeBold IT Solutions<\/h4>\n\n<p>CodeBold Redirects is free, made by <a href=\"https:\/\/codeboldtech.com\/?utm_source=codebold-redirects&amp;utm_medium=wordpress-org&amp;utm_campaign=readme\">CodeBold IT Solutions<\/a>. We design and build websites, web apps and WordPress plugins \u2014 if you need something made for your own site, get in touch at <a href=\"https:\/\/codeboldtech.com\/?utm_source=codebold-redirects&amp;utm_medium=wordpress-org&amp;utm_campaign=readme\">codeboldtech.com<\/a>.<\/p>\n\n<h3>Credits<\/h3>\n\n<p>Includes the Instrument Sans typeface, licensed under the SIL Open Font License 1.1 (see assets\/fonts).<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate.<\/li>\n<li>Go to CodeBold Redirects in the main admin menu.<\/li>\n<li>Add a redirect \u2014 or just carry on working. Renamed pages are handled automatically, and\nanything broken will start appearing under \"Pages not found\".<\/li>\n<li>For every screen explained step by step, with screenshots, read the\n<a href=\"https:\/\/codeboldtech.com\/guides\/codebold-redirects?utm_source=codebold-redirects&amp;utm_medium=wordpress-org&amp;utm_campaign=guide\">CodeBold Redirects user guide<\/a>.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"is%20there%20a%20guide%20with%20screenshots%3F\"><h3>Is there a guide with screenshots?<\/h3><\/dt>\n<dd><p>Yes: the <a href=\"https:\/\/codeboldtech.com\/guides\/codebold-redirects?utm_source=codebold-redirects&amp;utm_medium=wordpress-org&amp;utm_campaign=guide\">CodeBold Redirects user guide<\/a>\nwalks through adding redirects, fixing pages not found, testing, importing and every setting.<\/p><\/dd>\n<dt id=\"do%20i%20need%20to%20do%20anything%20when%20i%20rename%20a%20page%3F\"><h3>Do I need to do anything when I rename a page?<\/h3><\/dt>\n<dd><p>No. A redirect from the old address is made when you save. It appears in the list marked\n\"Automatic\", and you can change or delete it like any other.<\/p><\/dd>\n<dt id=\"what%20happens%20to%20my%20redirects%20if%20i%20deactivate%20or%20delete%20the%20plugin%3F\"><h3>What happens to my redirects if I deactivate or delete the plugin?<\/h3><\/dt>\n<dd><p>Deactivating keeps everything. Deleting keeps your redirects too, unless you have turned on\n\"Delete all redirects when this plugin is deleted\" in the settings \u2014 so deleting and\nreinstalling to fix a problem never loses them.<\/p><\/dd>\n<dt id=\"should%20i%20send%20every%20404%20to%20my%20homepage%3F\"><h3>Should I send every 404 to my homepage?<\/h3><\/dt>\n<dd><p>Usually not. Search engines call that a \"soft 404\" and treat it as an error that also wastes\nthe visitor's time. The option is there, along with a safer \"closest-named page\" one, but\nthe default is to show your \"page not found\" page and list the address so you can fix it\nproperly.<\/p><\/dd>\n<dt id=\"why%20does%20my%20redirect%20not%20work%20when%20i%20am%20logged%20in%3F\"><h3>Why does my redirect not work when I am logged in?<\/h3><\/dt>\n<dd><p>It probably has a \"logged out\" condition. Use \"Test an address\" \u2014 it shows each condition\nand whether it held. Also check that a page cache is not serving an old copy.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20page%20caching%3F\"><h3>Does it work with page caching?<\/h3><\/dt>\n<dd><p>Yes. Simple redirects are cached by most page caches just like pages. Redirects with\nconditions are sent with no-cache headers, so the next visitor is checked again. A\n    codebold_redirect_rules_changed action fires whenever redirects change, for purging.<\/p><\/dd>\n<dt id=\"what%20is%20the%20difference%20between%20301%20and%20302%3F\"><h3>What is the difference between 301 and 302?<\/h3><\/dt>\n<dd><p>301 means \"moved for good\": browsers and search engines update to the new address. 302\nmeans \"moved for now\": they keep the old one. Use 301 unless the change is temporary. 307\nand 308 are the same, but keep a form submission as a submission.<\/p><\/dd>\n<dt id=\"what%20does%20410%20do%3F\"><h3>What does 410 do?<\/h3><\/dt>\n<dd><p>It tells visitors and search engines the page was removed on purpose. Search engines drop\nit from their results faster than a 404.<\/p><\/dd>\n<dt id=\"is%20visitor%20data%20collected%3F\"><h3>Is visitor data collected?<\/h3><\/dt>\n<dd><p>The 404 list stores the address, a count, when it was first and last seen, the referring\npage (without its query string) and the browser name. No IP addresses, no cookies.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.3.6<\/h4>\n\n<ul>\n<li>A line at the foot of the Redirects screen, and a link on the Plugins screen, to CodeBold IT Solutions, who make the plugin<\/li>\n<\/ul>\n\n<h4>1.3.5<\/h4>\n\n<ul>\n<li>Security: links that open the add form already filled in \u2014 the dashboard's \"Fix\", the admin bar, the editor box \u2014 are signed with a nonce; without a valid one the form opens empty<\/li>\n<li>The menu's count of new pages not found is styled through an enqueued stylesheet<\/li>\n<\/ul>\n\n<h4>1.3.4<\/h4>\n\n<ul>\n<li>Light is the default look \u2014 white cards in CodeBold's black and lime \u2014 with a Dark mode button beside the tabs, one click each way<\/li>\n<li>Translations load automatically from WordPress.org: the text domain now matches the plugin's slug, codebold-redirects<\/li>\n<\/ul>\n\n<h4>1.3.3<\/h4>\n\n<ul>\n<li>Appearance under Settings, chosen per person: Light, Dark or Match WordPress. Only the Redirects screen changes \u2014 never the rest of the dashboard<\/li>\n<li>The list keeps every column readable on laptops: \"To\" shows the page title over its address, and narrower screens get cards<\/li>\n<li>The four figures sit two by two on phones; card labels are never cut short<\/li>\n<li>The dashboard card has figure cards, visit counts and a Fix button<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>A cleaner, more compact Redirects screen: four figures at the top, one line per redirect, Edit and a \"more\" menu on every row<\/li>\n<li>The add form's extra options in three folds that remember whether you left them open and say what is set inside<\/li>\n<li>Friendlier empty screens, loading placeholders and toasts with an icon<\/li>\n<li>In CodeBold IT Solutions' own colours \u2014 near-black and lime \u2014 with Instrument Sans bundled (nothing loads from Google); moves less when your system asks for reduced motion<\/li>\n<li>Its own \"CodeBold Redirects\" entry in the main admin menu, instead of under Tools \u2014 old links still work<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Easier on phones: every control is a comfortable size to tap, and all tabs stay in view<\/li>\n<li>Keyboard: focus always lands somewhere sensible, Enter on a button never saves the form<\/li>\n<li>Page search matches titles and addresses only, and always shows matching pages<\/li>\n<li>Better suggestions for old addresses, including the shop<\/li>\n<li>Import preview checks every line before anything is saved, and an interrupted import can be finished<\/li>\n<li>Undo for deleting, ignoring and fixing entries in \"Pages not found\"<\/li>\n<li>Warnings when redirecting the shop, a category or the blog page<\/li>\n<li>Dates shown in the site's own format<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Exact, wildcard and regular expression redirects; 301, 302, 307, 308, 410 and 451<\/li>\n<li>Automatic redirects when pages, posts, children of moved pages and categories change address<\/li>\n<li>Optional redirect or 410 when published content is moved to the bin<\/li>\n<li>404 list with suggestions, one-click fixes and no personal data<\/li>\n<li>Conditions, \"only if not found\", and schedules<\/li>\n<li>Loop, chain, lock-out and open-redirect protection<\/li>\n<li>Address tester with live check<\/li>\n<li>Import from Redirection, Rank Math, Yoast SEO Premium, Safe Redirect Manager, Simple 301\nRedirects, CSV, JSON and .htaccess \/ Nginx; export to CSV, JSON, Apache and Nginx<\/li>\n<li>Editor sidebar box, dashboard widget, admin bar shortcut, REST API and WP-CLI<\/li>\n<\/ul>","raw_excerpt":"Old links keep working. Renamed pages are caught for you. Every \"page not found\" comes with a one-click fix.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/393691","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=393691"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/codeboldtech"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=393691"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=393691"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=393691"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=393691"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=393691"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=393691"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}