MOWP 2026 Docs

Redirects

Preserving every existing URL so links, bookmarks, and search rankings keep working

When a site's structure changes, its URLs change with it. Without redirects, every old link whose URL changed lands on a "page not found": bookmarks, links in past email appeals, printed materials, and the pages Google already has indexed.

The new navigation reorganizes the site — "Who we are" becomes "About," the donation pages are restructured — so every URL that moves needs a rule from its old path to its new one.

WarningThe highest-risk part of a migration

Broken redirects are invisible until they cost you: a donor clicks a link in an email and hits a dead end, or a page that ranked well in search quietly drops off.

The scope

We went through the legacy site URL by URL and gave every one a destination in the new structure:

What it isWhat happens to it
Pages that move to a new addressContent moves, redirect follows it
News postsEach becomes a news record at a new address
EventsEach becomes an event record at a new address
Dining center locationsEach becomes a location record on the dining center map
Campaign linksForward to the giving form or the campaign page
Duplicate pagesForward to the page they duplicate
Pages not rebuiltForward to the nearest useful page, so none of them 404

A handful keep the exact address they have today. Everything else gets a rule. Most of that is news posts, events and dining centers, where the old and new addresses follow a fixed pattern and the rules are generated as the content imports.

Note

The full URL-by-URL mapping lives in the project's content source files, alongside the captured copy from the legacy site. It's a working document rather than something to read end to end.

What already exists on the legacy site

Redirects already in place that must be preserved:

  • A set of URL mappings built up over previous site changes: old paths that already forward to current ones. The exact count comes from the export.
  • An old-domain redirect: mealsonwheelspeople.org forwards to www.mowp.org, and needs to keep working.
  • Additional rules stored in the current CMS rather than the codebase, which have to be exported from the live site directly before the rebuild. It's on the migration checklist so it isn't overlooked.

The shape of what redirects do once the new structure is live:

/our-story301/about
/our-story/our-people301/about/leadership
/our-story/annual-report301/about/financials
/our-story/sustainability301/about/sustainability
/ways-to-give301/donate/ways-to-give
/press301/news-events/press
/quarterly-newsletter301/news-events
mealsonwheelspeople.org301www.mowp.org

Every permanent move uses a permanent redirect: the kind that tells search engines to transfer a page's ranking to its new address, not just forward the visitor. That single detail is most of what "preserving search rankings" means.

The What We Do section

This section is reorganized more than any other, so its redirects are set out in full rather than left to the export. Every rule below was checked against the live site.

/what-we-do/meals-on-wheels301/what-we-do/meal-delivery
/what-we-do/dining-centers301/what-we-do/community-dining
/get-meals/dining-centers301/what-we-do/community-dining
/what-we-do/meals-for-kids301/what-we-do/meals-4-kids
/diners-club301/what-we-do/diners-club
/diners-club/become-a-partnering-restaurant301/what-we-do/diners-club
/pet-program301/what-we-do/pet-program
/news-events/news/sfmnp301/what-we-do/beyond-the-meal
/what-we-do/advocate301/volunteer/advocacy
/what-we-do/online-meal-request301/get-meals/request
/what-we-do/the-diner-vancouver301/what-we-do/the-diner
/what-we-do/this-months-menu301/what-we-do/meal-delivery
/what-we-do/pdxpop301/what-we-do
/what-we-do/chefs-for-seniors301/what-we-do

A few are worth a note. /what-we-do/advocate lands under Volunteer, so it's the one most likely to be missed if these rules are handled section by section. /what-we-do/this-months-menu points at Meal Delivery; if the monthly menu question is answered with a page of its own, this rule changes to point there. The last two are pages the site doesn't rebuild, so they land on the section overview rather than a 404.

Medically Tailored Meals and The Diner keep the URLs they have today, so neither needs a rule.

Two dozen addresses on the legacy site exist only to get someone from a mailer, a TV segment or a checkout counter to a giving form: /donate-eoy, /donate-today-kgw, /fillthesoul, /bpn, /pge and the rest. They get printed on materials that stay in circulation long after the campaign ends, so all of them keep working.

/donate-eoy301/donate?c=eoy
/donate-today-kgw301/donate?c=kgw
/fillthesoul301/donate?c=fillthesoul
/support-donate-dinner301/donate-dinner
/stride-for-seniors301/news-events/events/stride-for-seniors

The ?c= carries the campaign name through to the giving form and your analytics, so a gift from KGW is still distinguishable from one from the year-end mailer. That's what the separate pages were doing for you, kept without the pages.

Open questionfor MOWP

Two campaign links point at their own funds. Should that continue? /donate-clark-county goes to the Clark County Community Fund, with its own phone number, and /waterfront-blues-fest-donate uses a different giving form from every other campaign link. If they all forward to the general form, those gifts stop being designated. We can either have the Donate page pre-select a fund from the address, or leave these two pointing at their own forms.

Making new ones yourself

You shouldn't have to ask us for a campaign address. If the printed address only needs to reach the giving form, it's a redirect. The moment you want Larry's photo and a paragraph about his dog on the page, it's a campaign page: a short address, left out of the menu, which is what /giftofmeals and /costofcare already are.

For how to make one, see Redirects. For the same job on the legacy site before launch, see Redirects in the current site docs.

Recommendation

Editors can create redirects that stay on your site; anything pointing off it needs a Publisher.

Redirects are Publisher-only today, which puts them out of reach of whoever ordered the mailer with the short address on it. The reason for the restriction is real: a redirect can send a visitor somewhere else entirely.

Splitting on destination keeps both. A same-site redirect is low-stakes and easy to correct; an off-site one deserves a second pair of hands. Tell us if you'd rather keep it simple and give those staff Publisher accounts.

News, events, and dining centers

No hand-written rules needed. Each becomes a record in the CMS, the addresses follow a fixed pattern, and the redirects are generated as the content imports.

/2026/05/paul-knauls301/news-events/news/paul-knauls
/events/stride-for-seniors301/news-events/events/stride-for-seniors
/dining-center-locations/belmont-center301/what-we-do/community-dining

Every news post and event comes across with its original date, no cutoff. Dining centers land on the map page rather than on pages of their own, since that's where their details live in the new structure.

The plan

Export the current redirects

Pull the complete list from the legacy site, both the rules in the code and the ones stored in the CMS. Joey owns this, well before anything on the legacy site is touched.

Map old URLs to new ones

Done. Every address has a destination, with a second pass against the export above in case it turns up an address the legacy sitemap doesn't list.

Preserve the existing redirects

Carry over the rules that already exist, including the old-domain forward.

Set them up before launch

All redirects go live at launch, not after. Test the most important paths — donation pages, dining centers, anything linked from active campaigns — before and right after.

Watch for what the mapping missed

We monitor the site's not-found errors for a few weeks after launch. Any old URL that slipped through shows up there and gets a rule.

On this page