Custom redirects (301, 302, 307), automatic 404 redirection, full 404 error logs and email alerts — a complete redirect & 404 toolkit.
📖 Full documentation: docs.duckdev.com/404-to-301
- Custom redirects — exact / prefix / regex matches, per-row redirect status, active/inactive toggle and per-row hit counters.
- 404 logs — every 404 is logged once and de-duplicated, with a
hitscounter, ignored/fixed lifecycle and date filters. - Email notifications — alert on N-th hit so the inbox doesn't get hammered by busy sites.
- React admin UI — built on
@wordpress/components+@wordpress/dataviews. - REST API — every list / CRUD operation has a clean endpoint under
/404-to-301/v1/. - WP-CLI — full
wp 404-to-301command surface (logs,redirects,settings,migrate). - Background migration — v3 → v4 data migration runs in chunks via wp-cron, or via Action Scheduler when available.
- Add-on catalogue + Freemius licensing — addons grid with license-key activation.
- WordPress 6.4 or later
- PHP 7.4 or later
- MySQL 5.6 / MariaDB 10.1 or later
- Getting started & settings
- Match modes & query handling
- Developer docs (hooks & REST API)
- WP-CLI commands
- Add-ons
See CONTRIBUTING.md for environment setup, build commands, coding standards and how to run the linters and tests.
npm run packbin/pack.sh verifies that the version header in 404-to-301.php, package.json and readme.txt all match, then regenerates the POT, builds the assets, installs production-only Composer deps and stages the runtime files into a 404-to-301-<version>.zip under releases/.
Bug reports, feature ideas and pull requests are welcome. Please read CONTRIBUTING.md before opening a PR.
Found a vulnerability? Don't open a public issue. See SECURITY.md for how to report it privately.
- Documentation — docs.duckdev.com/404-to-301
- Support forum — wordpress.org/support/plugin/404-to-301
- Bugs & features — GitHub issues
GPL-2.0-or-later. See LICENSE.
Maintained by Joel James at DuckDev.