WordPress SEO-migratie: De 301 Redirect Bijbel voor nul verkeerverlies
Ik heb teams zien worstelen met prachtige nieuwe websites, alleen om hun organische traffic met 60% zien dalen omdat iemand die cruciale URL-mappings vergat. Het is een nachtmerrie. En eerlijk gezegd is het meeste ervan te voorkomen.
Na WordPress-migraties voor agencies, startups en mid-market bedrijven gedurende enkele jaren uit te voeren—waarbij ik ze naar Next.js, Astro, headless CMS-setups of zelfs herziene WordPress-installaties migreerde—heb ik samengesteld wat ik grappend mijn "301-redirect bijbel" noem. Het is een checklist ontworpen om je rankings stabiel te houden tijdens platform-shifts.
Dit is niet alleen theorie. Het is gebaseerd op echte maandagochtenden geplakt aan Google Search Console-grafieken, waarbij we ofwel champagne ontkurken of rampen proberen op te lossen.
Waarom WordPress-migraties rankings vernietigen
Laten we eerlijk zijn: Google rangschikt URLs, niet zomaar pagina's. Elke URL heeft een geschiedenis van autoriteit, backlinks, betrokkenheid van gebruikers, interne links en crawl-data. Wanneer die URL's veranderen zonder begeleiding, druk je eigenlijk op een reset-knop.
Hier is de typische chaos tijdens een WordPress-migratie:
- URL-structuurveranderingen—WordPress houdt van
/category/post-name/of/yyyy/mm/post-name/, terwijl andere platforms de zaken door elkaar halen. - Poef! Verdwenen pagina's—Categoriebestanden, tags, auteurspagina's en attachments die traffic binnenhaalde verdwijnen zomaar.
- Redirect-ketens—Stel je een gek spel telefoon voor met 3-4 hops; link equity verspreidt zich.
- Protocol- en www-shifts—Van
wwwnaar non-www, of HTTP naar HTTPS zonder juiste afhandeling brengt robots in verwarring. - Parameters overal—WordPress-functies zoals paginering (
/page/2/), feed-URL's en query-strings die je niet wist dat ze geïndexeerd waren.
Een onderzoek uit 2024 van Ahrefs keek naar meer dan 200.000 site-migraties. Degenen die solide 301-redirect-maps gebruikten recupereerden 90-95% van hun traffic in 2-4 weken. Negeer je de redirects? De mediaanhaal stond op slechts 33% in 6 maanden. Sommigen kwamen nooit meer terug.

Pre-migratie SEO-audit: De basis
Voordat je ook maar één regel code op die glanzende nieuwe site aanraakt, moet je weten waarmee je te maken hebt. Geloof me, deze audit-fase bepaalt het succes of mislukking van je migratie.
Scan alles
Gereedschappen zoals Screaming Frog, Sitebulb of Ahrefs Site Audit zijn je nieuwe beste vrienden. Je hebt nodig:
- Elke URL die een 200-statuscode retourneert.
- Elke URL die al omgeleid wordt en zijn bestemming.
- Elke URL in je XML-sitemap.
- Elke URL met minstens één externe backlink.
Hier is mijn standaard Screaming Frog-setup:
Configuration > Spider > Crawl:
- Check "Crawl All Subdomains"
- Check "Crawl Outside of Start Folder"
- Set crawl depth to at least 10
- Include pagination patterns
Configuration > Spider > Extraction:
- Enable all extraction options
- Custom extraction for any WordPress-specific elements
Exporteer je rankingdata
Rankings-data van tevoren pakken uit Google Search Console, Ahrefs, SEMrush—wat voor je werkt:
- URL's die voor minstens één trefwoord ranking hebben.
- Trefwoorden waarvoor elke URL ranking heeft.
- Huidige posities.
- Maandelijks zoekvolume.
- Click-through-data uit GSC.
Je kunt herstel niet meten zonder een solide pre-migratie snapshot.
Identificeer je hoogwaardige pagina's
Niet elke pagina verdient je volle aandacht. Sorteer ze dus uit:
| Prioriteitstier | Criteria | Actie |
|---|---|---|
| Tier 1 — Kritiek | Top 20 pagina's op traffic + 10+ verwijzende domeinen | 1:1 redirect + content parity |
| Tier 2 — Belangrijk | Ranks 1-20 voor high-volume trefwoorden | 1:1 redirect nodig |
| Tier 3 — Standaard | Alle andere geïndexeerde traffic-pagina's | Redirect naar meest relevante nieuwe URL |
| Tier 4 — Lage waarde | Dunne, duplicate of non-traffic pagina's | Redirect naar parent category/homepage |
| Tier 5 — Verouderd | Pagina's die je aan het uitfaseren bent | 410 Gone (niet 404) |
Tiering overslaan en elke pagina gelijk behandelen? Amateurstukje. Geef Tier 1 meer aandacht. Tier 4 kan met op patronen gebaseerde redirects afkomen.
Backlink-audit
Haal een compleet backlink-profiel op met gereedschappen zoals Ahrefs of Majestic. Kruisreferentie dan met je redirect-map. URL's met waardevolle backlinks? Ze hebben redirects nodig, geen uitzondering.
# Snelle manier om unieke URL's uit een Ahrefs backlink-export te halen
cut -d',' -f7 ahrefs-backlinks-export.csv | sort -u > unique-backlink-targets.txt
Je complete URL-map bouwen
Je URL-map—het is het evangelie van elke migratie. Een spreadsheet met elke oude URL en zijn nieuwe thuis. Hier is mijn structuur:
Old URL | New URL | Redirect Type | Priority Tier | Notes
/blog/my-old-post/ | /articles/my-old-post | 301 | Tier 2 | Slug kept
/category/design/ | /topics/design | 301 | Tier 1 | Category renamed
/author/john/ | /team/john-doe | 301 | Tier 3 | Author page
/2023/05/post-name/ | /blog/post-name | 301 | Tier 2 | Removed date
Geautomatiseerde URL-mapping
Voor massieve sites (1.000+ pagina's) is handmatige mapping een utopie. Hier is een Python-script dat ik voor slug-matching gebruik:
import csv
from difflib import SequenceMatcher
def find_best_match(old_slug, new_urls):
best_match = None
best_ratio = 0
for new_url in new_urls:
new_slug = new_url.rstrip('/').split('/')[-1]
ratio = SequenceMatcher(None, old_slug, new_slug).ratio()
if ratio > best_ratio:
best_ratio = ratio
best_match = new_url
return best_match, best_ratio
# Load old and new URLs
with open('old_urls.csv') as f:
old_urls = [row[0] for row in csv.reader(f)]
with open('new_urls.csv') as f:
new_urls = [row[0] for row in csv.reader(f)]
# Generate mapping
for old_url in old_urls:
old_slug = old_url.rstrip('/').split('/')[-1]
match, confidence = find_best_match(old_slug, new_urls)
print(f"{old_url} -> {match} (confidence: {confidence:.2f})")
Als het vertrouwen onder 0,8 daalt, rollen we die mouwen op voor handmatige controle.
Vergeet deze WordPress-URL's niet
Sommige WordPress-URL's glippen onder de radar:
/feed/en/feed/atom/— RSS-feeds/wp-content/uploads/yyyy/mm/image.jpg— Mediabestanden (vooral als ze hotlinked zijn)/page/2/,/page/3/— Paginering/?p=123— Standaard permalink-formaat (kan in oude links lurken)/wp-json/— REST API-eindpunten (als iemand ze gebruikt)/?s=keyword— Zoekresultaatpagina's (normaal geen redirect nodig)/attachment/image-name/— WordPress attachment-pagina's/category/name/feed/— Categorie RSS-feeds
301-redirect-strategie en implementatie
Redirect-types begrijpen
Laten we dit duidelijk maken:
| Redirect-type | Wanneer gebruiken | SEO-impact |
|---|---|---|
| 301 (Permanent) | Permanente URL-verplaatsing | Overdracht ~95-99% PageRank |
| 302 (Tijdelijk) | Content komt terug | Link equity overdracht over tijd |
| 307 (Tijdelijk) | Hetzelfde als 302, behoudt HTTP-methode | Zelfde SEO-impact als 302 |
| 308 (Permanent) | Hetzelfde als 301, behoudt HTTP-methode | Zelfde SEO-impact als 301 |
| Meta Refresh | Gewoon niet doen | (UX en SEO nachtmerrie) |
| JavaScript redirect | Vermijd voor migraties | Inherente inconsistentie met Googlebot |
Voor migraties? Blijf aan 301's kleven. Ik heb 302's zien gebruiken als "tijdelijke fixes" die nooit werden opgelost. Vermijd amateurwerk.
Redirect-implementatievolgorde
Volgorde is belangrijk:
- Exacte match-redirects.
- Regex-patroon-redirects.
- Catch-all homepage-redirects—gebruik zuinig.
Server-niveau versus applicatie-niveau redirects
Altijd, altijd, altijd server- of edge-level redirects doen. Het bespaart resources en houdt dingen snel.
Voor Nginx:
server {
location = /old-blog-post/ {
return 301 /new-blog-post/;
}
location ~ ^/\d{4}/\d{2}/(.+)$ {
return 301 /blog/$1;
}
location ~ ^/category/(.+)$ {
return 301 /topics/$1;
}
location ~ ^/author/(.+)$ {
return 301 /team/$1;
}
location = /feed/ {
return 301 /rss.xml;
}
}
Voor Apache (.htaccess):
RewriteEngine On
RewriteRule ^old-blog-post/?$ /new-blog-post/ [R=301,L]
RewriteRule ^(\d{4})/(\d{2})/(.+)$ /blog/$3 [R=301,L]
RewriteRule ^category/(.+)$ /topics/$1 [R=301,L]
RewriteRule ^author/(.+)$ /team/$1 [R=301,L]

Platform-specifieke redirect-benaderingen
Het bestemmingsplatform bepaalt hoe je redirects afhandelt.
Migratie naar Next.js
Bij migratie naar Next.js (zoals veel van onze clients in Next.js development), plaats je je redirects in next.config.js:
// next.config.js
module.exports = {
async redirects() {
return [
{
source: '/old-wordpress-post/',
destination: '/blog/old-wordpress-post',
permanent: true,
},
{
source: '/:year(\\d{4})/:month(\\d{2})/:slug*',
destination: '/blog/:slug*',
permanent: true,
},
{
source: '/category/:path*',
destination: '/topics/:path*',
permanent: true,
},
{
source: '/blog/page/:num',
destination: '/blog?page=:num',
permanent: true,
},
];
},
};
Laden uit een JSON-bestand voor grotere setups kan je veel besparen:
const redirects = require('./redirects.json');
module.exports = {
async redirects() {
return redirects.map(({ source, destination }) => ({
source,
destination,
permanent: true,
}));
},
};
Opmerking: Op Vercel kan next.config.js alleen tot 1.024 redirects aan. Overweeg Edge Middleware voor grotere lijsten.
Migratie naar Astro
Voor Astro-gebaseerde sites hangt alles af van je hosting-setup:
// astro.config.mjs
export default defineConfig({
redirects: {
'/old-post/': '/blog/old-post/',
'/category/[...slug]': '/topics/[...slug]',
},
});
Astro maakte grote sprongen met redirect-ondersteuning in v2.6. Maar voor grote lijsten, probeer het op hosting/CDN-niveau.
Migratie naar een Headless CMS-setup
In onze ervaring met headless CMS-architecturen is flexibiliteit koning. De CMS slaat content op; je frontend-framework beheert routing. Stel redirects in waar het zinvol is—meestal aan de edge.
Voor Cloudflare Workers:
const REDIRECTS = new Map([
['/old-wordpress-post/', '/blog/new-post/'],
['/category/design/', '/topics/design/'],
]);
export default {
async fetch(request) {
const url = new URL(request.url);
const redirect = REDIRECTS.get(url.pathname);
if (redirect) {
return Response.redirect(`${url.origin}${redirect}`, 301);
}
return fetch(request);
},
};
WordPress-specifieke URL-patronen afhandelen
WordPress-eigenaardigheden kunnen het beste plan dwarsbomen.
Achterslashes
WordPress houdt van achterslashes. Als je nieuwe setup dat niet doet, zorg ervoor dat beide /my-post/ en /my-post werken. Laat zo'n klein dingetje niet je redirect-keten verwoesten.
Gemengde Permalink-structuren
WordPress-sites zijn berucht om hun URL-structuren te veranderen:
/?p=123(standaard)/2020/05/my-post/(op datum gebaseerd)/my-post/(post-naam)/blog/my-post/(aangepaste structuur)
Al deze moeten gebruikers naar de juiste plaats brengen. Controleer oude redirect-sporen voordat je nieuwe erover stapelt.
WordPress Multisite-overwegingen
Een Multisite migreren? Pak elke subsite afzonderlijk aan, gezien hun verschillende patronen (/site1/post-name/ of site1.domain.com/post-name/).
wp-content en mediabestanden
Deze is lastig maar cruciaal. Als URL's zoals /wp-content/uploads/2023/05/hero-image.jpg hotlinked zijn, moeten ze op hun plaats blijven of correct omgeleid worden. Je hebt opties:
- Behoud de media-URL-structuur op je nieuwe site.
- Omleiden van
/wp-content/uploads/naar je nieuwe mediumpad. - Zet een slimme CDN in die URL-herschrijving onder de knie heeft.
Monitoring en herstel na migratie
Je werk stopt niet na het lanceren. Het begint net.
Onmiddellijke controles (dag 1)
- Test elke Tier 1-redirect; zorg handmatig dat ze correct belanden.
- Voer Screaming Frog uit tegen de oude lijst om 301's te valideren.
- Identificeer redirect-ketens (A → B → C) en flatten ze naar A → C.
- Dien nieuwe XML-sitemaps in Google Search Console in.
- Controleer topmodellen in GSC's URL Inspection-tool.
- Heb 404's real-time bijgehouden via serverlogboeken.
Week 1-monitoring
- Controleer GSC's Coverage-rapport dagelijks op crawl-fouten.
- Track indexering van pagina's stabilisatie binnen 5-7 dagen.
- Jaag zachte 404's (Google markeert pagina's 200 als 404).
- Hou een scherp oog op Tier 1-trefwoorden rankings.
Week 2-4 herstel
Rijd die golven uit. Rankings dalen zelfs als je redirects meesterlijk zijn. Google heeft tijd nodig om:
- De redirects te vinden.
- Je nieuwe URL's te crawlen.
- Content op nieuwe links opnieuw in te schatten.
- De index dienovereenkomstig bij te werken.
Google's 2025-blog vertelt ons dat deze "afstemmingsperiode" typisch is en 2-6 weken kan duren, beïnvloed door site-grootte.
Langdurige monitoring (maanden 1-3)
- Behoud redirects voor minstens een jaar (beter nog, voor altijd).
- Monitor backlinks—neem contact op met sites met hoge waarde om URL's bij te werken.
- Observeer crawl-budgettoewijzing in GSC.
- Let op contentkannibalisme tussen oude gecachete pagina's en nieuwe.
Veelvoorkomende migratiemistakes die rankings vernietigen
Hier is een cursus gebaseerd op al te veel misstappen:
Voortijdige redirect-verwijdering—Iemand krijgt jeuk in vingers, en boom! Traffic daalt 40%. Behoud ze permanent.
Redirects allemaal eindigend bij de homepage—Ziet er lui uit voor Google, en ze zien het als zachte 404.
Slugs veranderen zonder nadenken—Als je URL
/best-crm-tools/was, het wijzigen naar/top-crm-software-2025/verandert zowel URL als content-boodschap. Hou je aan de slug.Interne links vergeten—Je nieuwe interne links moeten de nieuwe URL's weerspiegelen om onnodige redirect-lussen te vermijden.
HTTPS/www-variaties negeren—Dek alle protocol-/subdomain-variaties af.
Vrijdagochtend lanceren—Ga mid-week live. Je zult jezelf danken wanneer er zakendaagondersteuning is.
"noindex" op de live site laten—Gemakkelijk gedaan, catastrofaal over het hoofd gezien. Controleer altijd dubbel.
Mobiel negeren—Google's alles over mobile-first indexing. Test goed op telefoons, niet zomaar emulators.
Tijdlijn en herstekverwachtingen
Hier is je aftelling naar succes:
| Fase | Duur | Activiteiten |
|---|---|---|
| Pre-migratie audit | 2-4 weken | Crawl, backlink audit, kaart URL's, baseline |
| Redirect-building | 1-2 weken | Zet alle redirect-regels op en test |
| Staging prep | 1 week | Valideer redirects, rendering, data |
| Lancering | 1 dag | Deploy, dien sitemaps in, monitor nauwlettend |
| Vroege monitoring | 2-4 weken | Controleer GSC, rank tracking, adresseer 404's |
| Bevestig herstel | 4-8 weken | Doel traffic terug naar baseline |
| Doorlopend | Altijd | Behoud redirects, controleer driemaandelijks |
Voor een typische 500-pagina site-overschakeling ben je van audit naar herstelbevestiging ongeveer 6-10 weken onderweg.
Als je een complex scenario hebt of extra handen nodig hebt, hebben we deze weg al heel wat keer afgelegd—voel je vrij om onze prijspagina te checken of direct contact op te nemen als je wilt chatten.
FAQ
Hoe lang moeten 301-redirects na een WordPress-migratie blijven? Voor altijd. Serieus. Ze verwijderen wanneer backlinks nog steeds naar die oude URL's wijzen kan je die link equity kosten. De overhead is triviaal vergeleken met het risico.
Zie ik rankingverliezen bij het weg van WordPress? Waarschijnlijk een korte daling van 10-20% in de eerste weken. Zelfs met een flawless redirect-setup is Google's proces niet onmiddellijk. Echter, 301's en content-consistentie betekenen herstel binnen 4-8 weken. Verpest het, en je kunt afscheid nemen van 50-70% van je traffic.
Altijd 301's gebruiken of okay om met 302-redirects te spelen bij site-moves? 301's al het weg. Ze laten Google weten dat je move permanent is en verschuiven de ranking-signalen erover heen. Ook al geven 302's uiteindelijk PageRank door, 301's zorgen voor snellere overgangen.
Wat is de beste gok voor het direct sturen van WordPress-categorie/tag-pagina's?
Probeer regex-gebaseerde redirect-modes. Redirect /category/name/ om uit te lijnen met je nieuwe site-taxonomie (bijv. /topics/name/). Beslis over tag-pagina's—de nieuwe site heeft er misschien geen bij elkaar behorende. Wijs ze naar de meest relevante categorie of sectie-pagina, niet de homepage.
URL-structuur veranderen tijdens een WordPress-move—ja of nee?
Zeker, maar loop voorzichtig. Verschuiving van een patroon als /yyyy/mm/post-name/ naar /blog/post-name/ is prima met scherpe redirects. Maar vermijd het wijzigen van post-slugs. Het veranderen van de hele URL maakt Google's begrip van de pagina in de war.
Wat is het lot van mijn GSC-data na migratie? Je zult een nieuw eigendom moeten verifiëren als domeinen/protocollen veranderen. Oude geschiedenis blijft staan maar ontvangt geen updates. Er zal een rapportleemte zijn tijdens de switch. Dien onmiddellijk je nieuwe sitemap in. Voor domein-hops, gebruik GSC's "Change of Address"-tool.
Redirect-aantal beïnvloeding siteprestaties—feit of fictie? Server-level redirects (Nginx, Apache) kunnen veel jongleren—denk aan tientallen duizenden zonder morren. Maar wanneer je 5.000-10.000 op app-niveau (Next.js, enz.) raakt, verwacht je langere bouwtijden. Voor reusachtige lijsten, laat edge-level systemen als Cloudflare Workers of vergelijkbare oplossingen die belasting dragen.
Moet je backlinks na WordPress-migratie bijwerken? Absoluut, voor je high-value. Hoewel 301's de meeste link equity overdragen, is direct link naar de nieuwe URL marginaal beter. Na verhuizing, identificeer je top 50-100 verwijzende domeinen. Neem contact op om hun links bij te werken—prioriteer impactvolle sites boven lage-waarde directories, aangezien redirects voor die voldoende zijn.