{"id":329518,"date":"2026-06-20T18:49:49","date_gmt":"2026-06-20T18:49:49","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/404-to-301-redirects-importer\/"},"modified":"2026-06-20T18:49:35","modified_gmt":"2026-06-20T18:49:35","slug":"404-to-301-redirects-importer","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/404-to-301-redirects-importer\/","author":13607416,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.0","requires":"6.4","requires_php":"7.4","requires_plugins":null,"header_name":"404 to 301 - Redirects Importer","header_author":"Joel James","header_description":"Bulk import custom redirects into 404 to 301 from CSV files or migrate them in from other redirect plugins like Redirection by John Godley and 301 Redirects \u2013 Redirect Manager by WebFactory \u2014 no manual re-entry.","assets_banners_color":"000000","last_updated":"2026-06-20 18:49:35","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/www.paypal.me\/JoelCJ","header_plugin_uri":"","header_author_uri":"https:\/\/duckdev.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":41,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"joelcj91","date":"2026-06-20 18:49:35"}},"upgrade_notice":{"1.0.0":"<p>First public release of the Redirects Importer add-on for 404 to 301.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3580079,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3580079,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3580079,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3580079,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3580079,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250},"banner.svg":{"filename":"banner.svg","revision":3580079,"resolution":false,"location":"assets","locale":false}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3580079,"resolution":"1","location":"assets","locale":"","width":807,"height":361},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3580079,"resolution":"2","location":"assets","locale":"","width":807,"height":324},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3580079,"resolution":"3","location":"assets","locale":"","width":855,"height":543}},"screenshots":{"1":"Import form on the Tools tab with <strong>CSV file<\/strong> selected as the import source.","2":"Import form on the Tools tab with <strong>Redirection<\/strong> selected as the import source.","3":"Import preview modal \u2014 review the parsed rows before starting the import."}},"plugin_section":[],"plugin_tags":[949,21157,268111,727,268112],"plugin_category":[],"plugin_contributors":[126295,78159],"plugin_business_model":[],"class_list":["post-329518","plugin","type-plugin","status-publish","hentry","plugin_tags-404-to-301","plugin_tags-csv-import","plugin_tags-import-redirects","plugin_tags-redirect","plugin_tags-redirection-import","plugin_contributors-duckdev","plugin_contributors-joelcj91","plugin_committers-duckdev","plugin_committers-joelcj91"],"banners":{"banner":"https:\/\/ps.w.org\/404-to-301-redirects-importer\/assets\/banner-772x250.png?rev=3580079","banner_2x":"https:\/\/ps.w.org\/404-to-301-redirects-importer\/assets\/banner-1544x500.png?rev=3580079","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/404-to-301-redirects-importer\/assets\/icon.svg?rev=3580079","icon":"https:\/\/ps.w.org\/404-to-301-redirects-importer\/assets\/icon.svg?rev=3580079","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/404-to-301-redirects-importer\/assets\/screenshot-1.png?rev=3580079","caption":"Import form on the Tools tab with <strong>CSV file<\/strong> selected as the import source."},{"src":"https:\/\/ps.w.org\/404-to-301-redirects-importer\/assets\/screenshot-2.png?rev=3580079","caption":"Import form on the Tools tab with <strong>Redirection<\/strong> selected as the import source."},{"src":"https:\/\/ps.w.org\/404-to-301-redirects-importer\/assets\/screenshot-3.png?rev=3580079","caption":"Import preview modal \u2014 review the parsed rows before starting the import."}],"raw_content":"<!--section=description-->\n<p><strong>404 to 301 \u2013 Redirects Importer<\/strong> is the official bulk-import add-on for the <a href=\"https:\/\/wordpress.org\/plugins\/404-to-301\/\">404 to 301<\/a> plugin. It adds an <strong>Import<\/strong> panel to the Tools tab so you can load hundreds \u2014 or thousands \u2014 of custom redirects in one go, either from a CSV file you already have or directly from another redirect plugin you're moving away from. Every redirect status the parent plugin supports (301, 302, 307 and more) is preserved on import.<\/p>\n\n<p>Use it when you're migrating a site, switching redirect plugins, restoring a backup, or rolling out a planned URL change across a large content set. Stop copy-pasting redirects one row at a time.<\/p>\n\n<h4>Why use Redirects Importer?<\/h4>\n\n<ul>\n<li><strong>CSV import<\/strong> \u2014 bring redirects in from a spreadsheet, a backup, or another tool that can export CSV.<\/li>\n<li><strong>Plugin migration<\/strong> \u2014 import redirects directly from popular plugins:\n\n<ul>\n<li><strong>Redirection<\/strong> by John Godley<\/li>\n<li><strong>301 Redirects \u2013 Redirect Manager<\/strong> by WebFactory<\/li>\n<\/ul><\/li>\n<li><strong>Smart matching<\/strong> \u2014 exact, prefix and regex matches are detected and preserved, so your existing rules keep behaving the same way.<\/li>\n<li><strong>All redirect statuses preserved<\/strong> \u2014 301, 302, 307 and the other codes the parent plugin supports come through intact, not flattened to 301.<\/li>\n<li><strong>Safe by default<\/strong> \u2014 duplicate redirects are skipped, invalid rows are reported, and nothing overwrites your existing rules unless you choose to.<\/li>\n<li><strong>Native integration<\/strong> \u2014 rows are written through the parent plugin's own model, so hashing, audit events, hit counters and dedupe rules stay consistent with single-row creates.<\/li>\n<li><strong>Free and unlimited<\/strong> \u2014 no row limits, no premium upgrade.<\/li>\n<\/ul>\n\n<h4>Built for the 404 to 301 workflow<\/h4>\n\n<p>This add-on is a light-weight companion to the parent plugin. It hooks into the existing Settings \u2192 Tools screen and re-uses the same database tables and validation rules, so imported redirects behave identically to redirects you create by hand.<\/p>\n\n<ul>\n<li>No new settings page \u2014 the Import panel lives inside the existing Tools tab.<\/li>\n<li>Requires the free <a href=\"https:\/\/wordpress.org\/plugins\/404-to-301\/\">404 to 301<\/a> plugin (4.0 or newer).<\/li>\n<li>Same coding standards, security model and multisite behaviour as the parent plugin.<\/li>\n<\/ul>\n\n<h4>Related add-ons<\/h4>\n\n<p>Browse the full add-ons catalogue at <a href=\"https:\/\/duckdev.com\/addons\/404-to-301\/\">https:\/\/duckdev.com\/addons\/404-to-301\/<\/a>:<\/p>\n\n<ul>\n<li><strong>Logs Exporter<\/strong> \u2014 Export the 404 error log table as a downloadable CSV.<\/li>\n<li><strong>Logs Cleaner<\/strong> \u2014 Auto-prune the 404 log table by age, row count or schedule.<\/li>\n<li><strong>Email Reports<\/strong> \u2014 Periodic email digests of your 404 activity with an attached CSV.<\/li>\n<\/ul>\n\n<h3>Source code &amp; contributions<\/h3>\n\n<ul>\n<li><strong>GitHub repository:<\/strong> <a href=\"https:\/\/github.com\/duckdev\/404-to-301-redirects-importer\">https:\/\/github.com\/duckdev\/404-to-301-redirects-importer<\/a><\/li>\n<li><strong>Documentation:<\/strong> <a href=\"https:\/\/docs.duckdev.com\/404-to-301\/addons\/redirects-importer\/\">https:\/\/docs.duckdev.com\/404-to-301\/addons\/redirects-importer\/<\/a><\/li>\n<li><strong>Support forum:<\/strong> <a href=\"https:\/\/wordpress.org\/support\/plugin\/404-to-301-redirects-importer\/\">https:\/\/wordpress.org\/support\/plugin\/404-to-301-redirects-importer\/<\/a><\/li>\n<\/ul>\n\n<p>Pull requests and bug reports are welcome on GitHub.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Make sure the free <a href=\"https:\/\/wordpress.org\/plugins\/404-to-301\/\">404 to 301<\/a> plugin (version 4.0 or newer) is installed and activated.<\/li>\n<li>Install <strong>404 to 301 \u2013 Redirects Importer<\/strong> from the WordPress.org plugin directory, or upload the plugin folder to <code>\/wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate the add-on from the <strong>Plugins<\/strong> screen.<\/li>\n<li>Open <strong>404 to 301 \u2192 Settings \u2192 Tools<\/strong>, choose your source (CSV file or another plugin), and start the import.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20the%20404%20to%20301%20plugin%20installed%3F\"><h3>Do I need the 404 to 301 plugin installed?<\/h3><\/dt>\n<dd><p>Yes. This is an add-on for the free <a href=\"https:\/\/wordpress.org\/plugins\/404-to-301\/\">404 to 301<\/a> plugin (4.0 or newer). Without it, there's nowhere for the imported redirects to live.<\/p><\/dd>\n<dt id=\"which%20redirect%20plugins%20can%20i%20migrate%20from%3F\"><h3>Which redirect plugins can I migrate from?<\/h3><\/dt>\n<dd><p>You can import redirects directly from <strong>Redirection<\/strong> (by John Godley) and <strong>301 Redirects \u2013 Redirect Manager<\/strong> (by WebFactory). You can also import any CSV that follows the documented column format \u2014 see the <a href=\"https:\/\/docs.duckdev.com\/404-to-301\/addons\/redirects-importer\/\">documentation<\/a> for the full schema. More source plugins may be added in future releases.<\/p><\/dd>\n<dt id=\"what%20csv%20format%20does%20it%20expect%3F\"><h3>What CSV format does it expect?<\/h3><\/dt>\n<dd><p>A simple, documented column layout: source URL, destination URL, match type (exact \/ prefix \/ regex), redirect type (301, 302, 307, ...) and an optional enabled flag. A sample CSV is linked from the Import panel and the <a href=\"https:\/\/docs.duckdev.com\/404-to-301\/addons\/redirects-importer\/\">documentation<\/a>.<\/p><\/dd>\n<dt id=\"what%20happens%20to%20duplicate%20redirects%3F\"><h3>What happens to duplicate redirects?<\/h3><\/dt>\n<dd><p>Duplicates are detected and skipped, so importing the same file twice is safe \u2014 your existing redirects stay untouched.<\/p><\/dd>\n<dt id=\"what%20happens%20to%20invalid%20rows%3F\"><h3>What happens to invalid rows?<\/h3><\/dt>\n<dd><p>Invalid rows are reported back to you after the import so you can fix the source file. The rest of the file still imports successfully.<\/p><\/dd>\n<dt id=\"is%20there%20a%20row%20limit%3F\"><h3>Is there a row limit?<\/h3><\/dt>\n<dd><p>No. The importer streams rows in batches, so even large files (tens of thousands of rows) import without hitting memory or timeout limits on typical hosts.<\/p><\/dd>\n<dt id=\"does%20it%20support%20multisite%3F\"><h3>Does it support multisite?<\/h3><\/dt>\n<dd><p>Yes. Imports run per-site, so each site in the network gets its own redirects.<\/p><\/dd>\n<dt id=\"where%20can%20i%20get%20help%3F\"><h3>Where can I get help?<\/h3><\/dt>\n<dd><p>Read the <a href=\"https:\/\/docs.duckdev.com\/404-to-301\/addons\/redirects-importer\/\">documentation<\/a> or post on the <a href=\"https:\/\/wordpress.org\/support\/plugin\/404-to-301-redirects-importer\/\">support forum<\/a>.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>New: Initial release. CSV import plus direct migration from the Redirection (by John Godley) and 301 Redirects \u2013 Redirect Manager (by WebFactory) plugins.<\/li>\n<\/ul>","raw_excerpt":"Bulk import custom redirects from CSV, or migrate redirects from other redirect plugins. Fast, safe import with duplicate detection.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/329518","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=329518"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/joelcj91"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=329518"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=329518"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=329518"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=329518"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=329518"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=329518"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}