Redirects
Forward an old address to a new one: campaign links, retired pages, and short links
A redirect forwards one address to another. An old address doesn't stop existing when the page behind it does, because it's printed on mailers, saved in people's bookmarks and indexed by Google, so without a rule all of that traffic lands on a "page not found." There are five reasons you'd make one:
- A page moved. Its address changed and every link to the old one needs to follow it.
- A page was retired. There's nothing to send people to, so they go to the nearest useful page instead.
- A campaign needs a short printed address. Something short enough to fit on a mailer or say on air.
- A wrong address is already out in the world. A typo went to print, or a partner linked to the wrong path.
- A short link points off the site.
/facebooksends people to the Facebook page.
Redirects are handled by a plugin called Redirection, version 5.7.5. It lives under Tools → Redirection in the WordPress admin sidebar.
Where redirects live
Three things can forward an address, and a request is answered by the first one that matches.
- Cloudflare sits in front of the site and answers first. Domain-level forwarding lives here:
mealsonwheelspeople.orggoes towww.mowp.orgwithout the request ever reaching WordPress. - The site's code runs next, ahead of the theme and every other plugin. Redirects left over from past URL changes sit here so they can't be edited away by accident.
- The Redirection plugin runs last, and it's the only one of the three you can see. Everything below is about this one.
If a rule you've added doesn't seem to be working, one of the first two is usually already answering that address. Ask the developer and they can track it down.
All three run before WordPress goes looking for a page, so a redirect wins even when a real page sits at that address. Add a rule for /about/ and the About page stops being reachable, for you as well as for visitors, without anything having been deleted. Only make rules for addresses that no longer have a page behind them.
The tabs
Redirection puts its sections in a row of tabs across the top of the screen.
| Tab | What it's for | Use it |
|---|---|---|
| Redirects | The list of every rule, and where new ones are added | Yes, this is the one you want |
| Groups | Folders that organize the rules | Leave as it is |
| Log | Every redirect that has fired recently | Handy for confirming a new rule works |
| 404s | Addresses people asked for that don't exist | Yes, worth a look monthly |
| Import/Export | Bulk upload and download of the whole rule set | Check with the developer first |
| Options | Plugin-wide settings | Check with the developer first |
Creating a redirect
The example here retires /what-we-do/pdxpop/ and sends anyone who asks for it to the section overview at /what-we-do/.
Open the plugin
Go to Tools → Redirection. You'll land on the Redirects tab, showing every rule the site already has.
Start a new rule
Click Add New above the list. The form opens at the top of the page with the fields empty.
Enter the source URL
This is the old address, the one that's about to stop working. Enter the path only, starting with a slash and without the domain:
/what-we-do/pdxpop/Enter the target URL
This is where you want people to end up. A path works the same way here:
/what-we-do/If you're sending someone to another website entirely, use the full address including https://. See short links and off-site destinations below.
Make it permanent
The gear icon beside the fields opens the rule's options, which is where the redirect type, the match type and the Group setting live. Make sure the type is set to permanent, which the plugin lists as 301 - Moved Permanently. It's the default, but confirm it before you save.
Save it
Leave the Group setting on whatever the existing page redirects use, then click Add Redirect. The rule appears at the top of the list and works immediately. Nothing needs publishing or clearing.
Filled in, the example looks like this:
Source URL /what-we-do/pdxpop/
Target URL /what-we-do/
Redirect PermanentSource URL format
Getting this field wrong is the reason most rules silently do nothing.
- Path only, never the whole address. Write
/what-we-do/pdxpop/, nothttps://www.mowp.org/what-we-do/pdxpop/. - Start with a slash. A source that doesn't begin with
/won't match anything. - Keep the trailing slash. Pages on this site end in a slash, so
/what-we-do/pdxpop/is the real address and/what-we-do/pdxpopisn't. The safest habit is to copy the address out of your browser's address bar rather than typing it from memory. - Leave off anything after a
?. Those are query parameters and the plugin matches them with a separate setting. They're easy to get subtly wrong: the same link can arrive with its parameters in a different order, so?utm_source=mailer&utm_campaign=falland?utm_campaign=fall&utm_source=mailerlook identical to a visitor and different to a rule. Send these to the developer, along with anything else that isn't a plain address-to-address forward, and they can build a rule that's neither too strict to catch real visits nor so loose it catches what it shouldn't.
Permanent or temporary
Every rule is one or the other, and nearly everything you make is permanent: a page moved or was retired, the change is done, and permanent is what you want.
The difference matters because a permanent redirect is hard to take back. It tells search engines to move the page's ranking to the new address, and browsers remember it, so anyone who follows the old address once keeps getting forwarded even after the rule is gone. A temporary redirect does neither. No ranking moves and nothing is remembered, which is what you want for an address you expect to repoint later.
Permanent for a page that moved or was retired. Temporary for a signpost.
The new site's admin offers Permanent (308) and Temporary (307) where this plugin offers 301 and 302. Different numbers, same two choices: 301 and 308 are both permanent, 302 and 307 are both temporary. Nothing to change here.
Short links and off-site destinations
The target doesn't have to be a page on this site. Give it a full https:// address and the rule sends people to another website, which is how a short link like /facebook works.
Source URL /facebook
Target URL https://www.facebook.com/mealsonwheelspeople
Redirect TemporaryThese are the signposts, so they're the exception that gets a temporary redirect. A social link or a campaign address that will point somewhere new next season is going to be repointed, and temporary keeps that clean.
Open the destination in your browser and copy the address out of the bar rather than typing it. These are easy to get subtly wrong from memory.
One thing is different about these: the destination isn't yours. If the page moves or the platform shuts down, the short link breaks and nothing in WordPress will tell you. Check the ones you have in print once or twice a year.
Picking the address itself:
- Short enough to print and say out loud.
/facebookand/gala, not/our-facebook-page-2026. - Lowercase, no spaces. Hyphens between words if you need more than one, like
/spring-gala. - Obvious rather than clever. Someone reading it off a postcard has one shot at typing it.
Never repoint an existing one at an unrelated destination. /gala on last year's invitation should end up somewhere about the gala, even after the event: the event page, the news post, the donate page. Sending it to something unrelated is worse than the 404 it replaced.
Testing
Open a private or incognito window, paste the old address into it and press enter. Your regular browser caches redirects aggressively, which is why a private window matters: it's the only way to see what a first-time visitor sees.
Two things to watch. The address in the bar should change to the new one on its own, and the page that loads should be the page you pointed at. If the address doesn't change, the rule isn't matching, and the source URL is almost always the culprit.
The Redirects list also carries a hit count and a last-accessed date against each rule, which is a second way to confirm one is firing. Those columns only fill in while logging is switched on in Options, so an empty count means the log is off rather than the rule being broken.
The 404s tab
The 404s tab records every address someone asked for that doesn't exist, so it's a running list of links that are broken right now, with real people hitting them.
Sort by hit count and work down from the top. What you're looking for:
- Old page addresses with repeat hits. Something like
/what-we-do/meals-for-kids/showing up thirty times a month is a link in an email or on a partner's website pointing at a page that moved. That's a redirect worth adding. - Addresses that look like a typo of a real page. Worth a rule if they keep coming back.
- Junk you should ignore. Anything ending in
.php, anything mentioningwp-adminorwp-login, long strings of nonsense. That's automated scanning, not visitors, and no redirect will help. - One-off hits. A single hit on a strange address is noise. Wait to see whether it repeats.
Rows in the 404s list offer a way to create a redirect for that address without retyping it, which is the quickest way to work through the list. Failing that, copy the address and use the normal form.
Common mistakes
| The mistake | What you see | The fix |
|---|---|---|
| Pointing a page at itself | The browser gives up with a "too many redirects" error and the page won't load at all | Source and target must be different addresses |
| Redirecting a page that's still live | The page becomes unreachable, including for you, and its content is effectively gone from the site | Only redirect addresses that no longer have a page behind them |
| Chaining rules | An old address forwards to a second address that forwards to a third, so every visit takes the long way round | Point the original address straight at the final destination and delete the middle step |
| Including the domain in the source | Nothing happens, the old address still 404s | Path only, starting with / |
| Setting a moved page to temporary | The redirect works for visitors, but search rankings stay attached to the dead address | Permanent for anything that moved or was retired |
Bulk changes and settings
Import/Export can duplicate or wipe hundreds of rules at once, and the export from this plugin is what carries every existing redirect over to the site. Options controls plugin-wide behavior including logging and permalink monitoring. Bulk actions on the Redirects list apply to everything you've selected, including rules you can't see on the current page.
Beyond those, two habits:
- Don't edit or delete existing rules. Some of them have been protecting links for years, and a rule with few hits today can carry traffic from a mailer that resurfaces. Add new ones freely; if an existing one needs changing, check with the developer first.
- Only use the regex option if you know regex. It matches patterns rather than single addresses, so a small mistake can capture far more of the site than you intended. If you're comfortable writing one, go ahead; if you're not sure, send the rule to the developer instead.