Description
Harvify Redirect Manager sends visitors and search engines from old addresses to new ones, logs every 404 so you can see which links are broken, and can import the rules you already have in the Redirection plugin.
Free features:
- Unlimited redirect rules
- 301, 302, 307, 308, 410 Gone and 451 Unavailable For Legal Reasons
- Exact, regex, and wildcard matching
- 404 monitor — logs every hit — with one-click redirect creation
- Import from Redirection plugin · CSV import
- Export to CSV
- Hit counter per rule · enable/disable · bulk actions
- Tag a rule with a group and filter the list by it
Pro features (Harvify Pro Bundle):
- Conditional redirects — apply a rule only for logged-in/logged-out
visitors, specific user roles, a referrer, or a user agent - Group browser and bulk group assignment — see every group in use with its
rule count, and move many rules into a group at once - Scheduled redirects — (activate and expire on specific dates)
- Auto-redirect on slug change — (posts, pages, WooCommerce products)
- Redirect chain detection — find redirects that loop
- Email alerts on 404 spikes
External services
This plugin connects to Freemius, the licensing and update service Harvify uses to
sell and deliver the Pro tier of its plugins.
Nothing is sent to Freemius unless you choose to send it. On activation you are shown
Freemius’s standard opt-in screen. Until you answer it a fresh install makes no
outbound request at all, and if you choose Skip the free tier stays fully usable
and still sends nothing. Data is transmitted only when you take one of these
actions:
- You click “Allow & Continue” on the Freemius opt-in screen. This sends your
site address, your administrator email address, and your WordPress, PHP and active
plugin/theme details, so Harvify can provide support and know which environments to
test against. Skipping that screen sends nothing and leaves the plugin working
normally. - You enter a Pro Bundle licence key. This sends the key together with your site
address so the licence can be activated for that site. While a licence is active the
site also re-checks periodically that it is still valid and whether a Pro update is
available.
Service provided by Freemius, Inc. – https://freemius.com/
Terms of service: https://freemius.com/terms/
Privacy policy: https://freemius.com/privacy/
Screenshots



Installation
- In your dashboard go to Plugins Add New, search for “Harvify Redirect Manager”, then install and activate it (or upload the ZIP under Plugins Add New Upload).
- Open Harvify Redirect Manager. The first time, you are asked whether to share usage data with Freemius; choose Skip to use every free feature without sending anything.
Adding a redirect
- On the Redirects tab click Add new.
- Enter the Source URL (the old address, for example
/old-page) and the Target URL (where visitors should go: a path such as/new-page, or a full address). - Choose the Redirect type (301 for a permanent move, 302 or 307 for a
temporary one, 410 when the page is gone for good) and the Match type:
Exact for one address, Wildcard for a pattern such as
/blog/*, or Regex. - Optionally add Groups (comma-separated) and Notes, then click Create.
Use Test on a rule to check where it sends visitors and Edit to change it. Click the Yes/No in a rule’s Enabled column to switch that rule off or on; Enable all and Disable all switch every rule at once.
Other tabs and tools
- 404 Monitor — every address that returned “not found”, with a hit count. Create redirect turns one into a rule.
- Import from Redirection and Import CSV — bring existing rules in. A CSV
needs one rule per line:
source, target, type(a header row is fine). - Export CSV — download all your rules.
- Insights — your busiest redirects and most frequent 404s at a glance.
FAQ
-
Can I import from the Redirection plugin?
-
Yes. Click Import from Redirection on the Redirects tab. Ordinary and regex
redirects are copied with their status code and whether they were enabled.
Redirection’s conditional rules (login state, referrer, role and similar) and
actions that are not redirects, such as error pages, are not imported; the import
tells you how many it skipped and why. Addresses that already have a rule are
left alone, so running it twice adds nothing. -
Do redirects slow my site down?
-
Rules are checked only on the front end, and only when a page is requested. The
404 monitor records a miss after WordPress has already decided the page is not
found.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“Harvify Redirect Manager” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “Harvify Redirect Manager” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
1.0.28
- New: switch a single redirect off or on by clicking the Yes/No in its
Enabled column. Until now only “Enable all” and “Disable all” existed, so a rule
could be deleted but not paused. - Readme: step-by-step setup and usage instructions, and an accurate description of
what the Redirection import brings across.
1.0.27
- Fixed: “Import from Redirection” now imports your Redirection rules. It
expected a format Redirection does not use, so ordinary URL redirects were
skipped as having no target. It now keeps each rule’s status code, its regex
setting, and whether it was enabled or disabled in Redirection. - The import tells you what it did not bring across, and why: conditional rules
(login state, referrer, role and similar), which would change meaning without
their conditions; actions that are not redirects, such as error pages; and
addresses that already have a rule here. Running it twice adds nothing. - Fixed: regex rules now put what they captured into the target. A target
such as/new/$1used to send visitors to a literal “/new/$1”.
1.0.26
- Fixed: rules created in the editor, imported from Redirection or made by the
Pro slug-change redirect were saved DISABLED, so they never redirected, and
editing any rule disabled it. None of those paths sends an on/off value, and a
missing value was read as “off”. A new rule is now enabled unless you turn it
off, and editing a rule keeps its on/off state. Rules already saved as disabled
stay as they are: switch them on from the list. - Fixed: editing a rule no longer wipes fields the editor did not show. A save
from a free or lapsed screen cleared the rule’s schedule dates and its groups.
Only the fields a save actually sends are changed now. - Tagging a rule with a group is back in the free editor, with the Group
column and tags in the list, as the free feature list has said since 1.0.24. - Fixed: clicking a group tag in the list now filters the list to that group.
The tags have been links since 1.0.23, but a click only jumped to the top of
the page. A “Show all groups” button now clears the filter in every tier. - Changed: scheduled redirects are supplied by the separately distributed Pro
plugin. This download no longer contains the date check, so on a free site a
rule’s stored schedule is kept but not applied, and the rule redirects whenever
it is enabled. - Fixed: the Plan tab listed unlimited rules, 410/451 and group tagging as Pro,
although all three have been free since 1.0.24, and did not list conditional
redirects. The upgrade cards no longer imply a rule limit. - Changed: the External services section now describes the Freemius opt-in screen
shown on activation. Until you answer it a fresh install makes no outbound
request, and choosing Skip keeps the free tier fully usable and sends nothing. - Internal: a loop variable in the main file is now prefixed.
1.0.25
- The free tier is no longer capped. The 500-rule limit is gone from rule
creation and from CSV import. There is no upgrade prompt standing between you
and a redirect any more. - 410 Gone and 451 are now free. They used to be forced down to a 301 unless
a licence was active, even though the code that serves them shipped in every
download. - Changed: conditional redirects and the group browser / bulk group assignment
are supplied by the separately distributed Pro plugin rather than being
present-but-inactive in this download. Rules you already tagged with a group
keep their tag, stay filterable, and are never rewritten. - Changed: every identifier this plugin owns has been renamed off its old
three-characterhrm_prefix, which is shorter than WordPress.org accepts.
Functions, options, cron hooks and the plugin’s own actions and filters are
nowharvify_redirect_*; global constants areHARVIFY_REDIRECT_*; classes
areHarvify_Redirect_*. - Developers: the REST namespace is now
harvify-redirect/v1. The old
hrm/v1 namespace is GONE and there is no compatibility alias — any code
calling it will 404 until updated. Also renamed: the admin script and style
handlehrm-adminis nowharvify-redirect-admin, and the localized
JavaScript objecthrmSettingsis nowharvifyRedirectSettings. - Your data is carried across for you on the first page load after updating:
the schema marker, your uninstall-data preference, the scheduled 404-alert
check and the slug-backup post meta all move to the new names. Your redirect
rules and 404 log are untouched — those tables never changed.
1.0.23
- Added: a single Support entry in the Harvify menu, so you can reach us from
inside WordPress. Until now no plugin offered a contact route at all. One entry for
the whole suite rather than one per plugin. - No behaviour changes.
1.0.22
- Added: an External services section to this readme, naming every third-party
service the plugin can contact, exactly what is sent, when, and each provider’s terms
and privacy policy. Required for WordPress.org submission. - Changed: the
Contributorsfield now names the correct WordPress.org account. - Added: the
License URIheader, which the readme was missing. - No behaviour changes.
1.0.21
- Rebuild: the published 1.0.20 package predated the blank-source validation and was
generated from an earlier tree. This release carries it: a redirect rule saved with no
source URL is refused, so it can no longer match — and capture — the front page.
1.0.20
- Added: a single Manage licence link on the Plan screen, so an active customer can
deactivate this site, change their licence key or re-check their licence without
needing a URL from support. No per-plugin Account tab is added.
1.0.19
- Fixed: opting in to “delete all data on uninstall” now removes hrm_db_version.
It was written at runtime but never included in the cleanup, so a user who
asked for their data to be deleted kept it.
1.0.18
- Fixed: updating the plugin did not update its database. WordPress only runs a plugin’s
setup routine when you activate it, never when it updates — so a change to the plugin’s own
tables never reached sites that had simply updated. On those sites some features failed with a
database error. The update now applies itself on the next page load. - Fixed: a malformed API request returned a PHP error instead of a normal “bad request”
response. - One upgrade link instead of one per plugin. With several Harvify plugins active the
menu showed a row called “Upgrade” for each of them, all identically labelled, and it kept
saying Upgrade to people who had already bought. They are replaced by a single Plan
screen that says what the bundle costs, what it covers, and whether your licence is active. - The dashboard is quiet again. Each plugin used to add its own “opt in to make this
better” notice to the main WordPress dashboard, so five plugins meant five notices. Harvify
plugins now share one queue: promotional notices appear only on Harvify’s own screens, and
only one at a time. Licence and account messages are never held back. - Fixed: the “Data & uninstall” box covered the page. It was being drawn into the admin
footer, which WordPress pins to the bottom of the screen, so it floated on top of whatever was
underneath it. It now sits in the page like any other card. Saving it also tells you what it
saved, instead of just reloading. - Fixed: the upgrade screen advertised the wrong number of sites. Several plugins listed
the Freelancer and Agency plans as covering 5 and 25 sites. They cover 3 and 10.
1.0.17
- Uninstall no longer destroys your data by default. Deleting the plugin used to remove
everything it had stored, with no way to stop it — so deleting it to troubleshoot destroyed
the lot. Now the default is to KEEP your data, and a new Data & uninstall control on the
plugin’s own screen lets you opt in to a full wipe if you actually want one. Scheduled jobs
are always tidied up either way, and the wipe works with no internet connection.
1.0.16
- Deleting the plugin left its two database tables behind, on every site, since 1.0.0. The
main plugin file used a variable named$filewhile loading its includes. WordPress runs
include_once on that file from INSIDE its ownuninstall_plugin()function, so the
assignment overwrote WordPress’s$file— core then fired its uninstall action under a
nonsense name, the cleanup callback was never reached, andwp_harvify_redirects,
wp_harvify_404_log and the daily-alert cron survived deletion forever. The loader variable is
now prefixed. Cleanup is verified by a committed gate that deletes the plugin with the network
cut and then checks the tables are gone. - The published free ZIP failed Plugin Check even though the source passed. Freemius’s code
preprocessor rewrites the main plugin file and drops block comments that sit inside an
expression, which deleted atranslators:comment and produced a MissingTranslatorsComment
ERROR — a rejected submission — in the artifact nobody had ever checked. The comment now sits
above a statement, where the rewrite preserves it.
1.0.15
- Fixed a WordPress.org submission blocker. Plugin Check flagged the HTTP status passed to
wp_die() on the 410/451 terminal-response path as unescaped output — an ERROR, which means a
rejected submission. It is now passed through absint(), which is the honest cast for an HTTP
status as well as the one the check accepts. No behaviour change. - Tested up to WordPress 7.1.
1.0.14
- Redirect groups and tags are now a real feature. The Groups field was saved and then read
by nothing — there was no way to filter by it, no column showing it, nothing in the export and
no bulk action. You can now tag a rule with one or more groups, filter the list to a group
(click a tag to jump straight to it), sort and see the Group column, assign or clear a group
across a selection in bulk, and the CSV export carries it. Searching also matches group names.
1.0.13
- Fixed: choosing the 451 redirect type broke the URL. 451 answers a request rather than
redirecting it, and WordPress refuses any non-redirect status in a redirect — so instead of a
451 the visitor got a WordPress error page. 451 now returns a proper 451 with an explanatory
page, and (per RFC 7725) aLink: ...; rel="blocked-by"header pointing at the rule’s target.
The dispatcher now asks “is this a redirect?” rather than “is this 410?”, so no future status
can repeat this. - Fixed: 410 and 451 are Pro types, and the CSV importer enforced that while the add/edit form
did not. Both roads now go through the same check. - Fixed: redirects to another site sent visitors to your admin screen instead. A rule
pointing at an external URL was being rewritten to /wp-admin/, because the redirect used
WordPress’s “safe” variant, which refuses any host but your own. Pointing at another site is a
core reason to use a redirect plugin, so the destination you configured is now honoured — and
only that one: no other host is allowed, so this is not an open redirect. - The Pro feature list mentions 451 again, now that it works.
1.0.12
- Marketing accuracy: the Pro feature list no longer advertises “451 redirect types” or
“Redirect groups and tags”. Selecting 451 does not currently return a 451 (WordPress
refuses any non-3xx status in wp_redirect), and the Groups field is stored but nothing
filters, lists or exports by it yet. Both remain on the roadmap; the copy will return
with the features.
1.0.11
- Your licence is now manageable from the plugin itself. The Account screen was previously
hidden, which also hid Deactivate License — so a licence could not be released from one
site to move it to another without contacting support. It is visible again, along with the
licence key, plan, Sync and Change License. - Harvify Tools now opens with a Your licences table: every installed Harvify plugin,
the plan it is on, whether Pro features are actually running, and a link to its Account screen.
Freemius gives each product its own separate Account page, so this is the one place that
answers “what am I on” across the whole bundle. - The repeated “Opt in to make … better!” admin notice no longer appears. Licence, plan and
update notices are unaffected — only the opt-in prompt is suppressed.
1.0.10
- Change: License activation now uses per-plugin key entry — enter your bundle license key on each Pro plugin to unlock Pro. Improves activation reliability.
1.0.9
- New: CSV import. Import redirects from any spreadsheet as source,target,type (header row optional; type defaults to 301). Rows are validated, duplicates — against your existing rules and within the file — are skipped, and the free-tier rule limit is respected.
1.0.8
- New (Pro): conditional redirects. A rule can optionally require login state (logged in / logged out), any of a set of user roles, a referrer substring, or a user-agent substring — all set conditions must match. Rules without conditions behave exactly as before, and existing rules are untouched. Conditional rules are marked in the rules table.
1.0.7
- Free tier now allows up to 500 redirect rules (was 50) so you can migrate a full Redirection install without hitting the cap. Pro remains unlimited.
1.0.6
- New admin design system (Harvify Admin Kit): branded header, first-run onboarding, section navigation (Redirects, 404 Monitor, Insights), skeleton loader, coaching empty states, an at-a-glance Insights panel (redirect rules, redirect hits, 404 URLs & hits, most-used redirects, top 404s to fix), and a contextual, dismissible upgrade card. UI layer only — redirect handling, the 404 monitor and free/Pro gating are unchanged.
1.0.5
- Fix: Pro features now unlock only on the premium build with a valid license (per-plugin gate). Previously a shared bundle flag could make the free build report Pro when another Harvify plugin was licensed.
1.0.4
- Internal: uninstall cleanup now runs on Freemius’s after_uninstall hook (removed uninstall.php) for Freemius Deployment compatibility. What gets removed on uninstall is unchanged.
1.0.3
- The free 404 monitor now logs every hit (previously sampled 1-in-5). Full 404 logging is no longer a Pro-only differentiator.
1.0.2
- Fixed redirects table failing to create on MySQL 8 (the
groupscolumn is a reserved word; renamed toredirect_group). - Admin menu now registers on init (fixes a “translation loaded too early” notice under WordPress 6.7+).
1.0.1
- Pro features (scheduled redirects, chain detection, slug-change auto-redirect, 404 alerts) now load only in the premium build (Freemius is__premium_only model).
- Pricing now sourced from the shared bundle-license package; upgrade prompts link to the pricing page.
1.0.0
- Initial release.
