301-redirects beheren in je webshop: ketens, loops en 410
Terug naar blog

301-redirects beheren in je webshop: ketens, loops en 410

8 min leestijd

Een 301-redirect stuurt bezoekers en zoekmachines permanent van een oude URL naar een nieuwe, en geeft Google het signaal dat de nieuwe URL de oude vervangt.

Een 301-redirect stuurt bezoekers en zoekmachines permanent van een oude URL naar een nieuwe, en geeft Google het signaal dat de nieuwe URL de oude vervangt. In een webshop gaat het zelden mis bij één redirect, maar bijna altijd bij duizenden: ketens, loops, redirects naar de homepage en regels die niemand meer begrijpt. Dit artikel laat zien hoe je redirects in Magento en Shopify beheert, hoe je ze in bulk importeert en wanneer een 410 de betere keuze is.

Waarom redirects in een webshop uit de hand lopen

Een contentsite verandert af en toe een URL. Een webshop doet dat continu. Producten gaan uit het assortiment, categorieën worden hernoemd, een merk krijgt een eigen landingspagina, en elke paar jaar volgt een replatforming.

Elke wijziging laat een spoor achter. Na een paar jaar heb je redirects van redirects, regels die naar pagina's wijzen die zelf weer verdwenen zijn, en een tabel waar niemand meer aan durft te komen.

Dat kost je op drie plekken:

  • Crawlbudget. Elke hop is een extra request voor Googlebot.
  • Snelheid. Elke hop is een extra roundtrip voor de bezoeker, voordat er ook maar één byte HTML binnenkomt.
  • Signalen. Hoe langer de keten, hoe groter de kans dat ergens een 302, een 404 of een loop tussen zit.

Google volgt volgens de eigen documentatie maximaal 10 redirect-hops. Daarna stopt Googlebot en behandelt het de URL als een fout. Maar ruim voor die grens heb je al een probleem.

301, 302, 307, 308: welke gebruik je wanneer

De eerlijke versie: voor SEO doe je bijna alles met een 301.

StatuscodeBetekenisGebruik in een webshop
301Permanent verplaatstProductwissel, categorie hernoemd, migratie
308Permanent, methode blijft gelijkZelden nodig; zelfde signaal als 301
302Tijdelijk verplaatstTijdelijke actiepagina, A/B-test
307Tijdelijk, methode blijft gelijkVaak automatisch door HSTS in de browser

Google zegt dat 301 en 308 als sterk signaal voor de canonical worden gezien, en 302 en 307 als zwak signaal. Een 302 die jarenlang blijft staan, gaat Google uiteindelijk ook als permanent behandelen. Maar je wilt niet dat Google moet raden. Gebruik dus de code die je bedoelt.

Redirectketens vinden en platslaan

Een keten ontstaat zo:

/heren-schoenen           → 301 → /herenschoenen
/herenschoenen            → 301 → /schoenen/heren
/schoenen/heren           → 301 → /schoenen/heren/sneakers

Drie hops voor één bezoek. De oplossing is simpel: laat elke oude URL direct naar de eindbestemming wijzen.

/heren-schoenen           → 301 → /schoenen/heren/sneakers
/herenschoenen            → 301 → /schoenen/heren/sneakers
/schoenen/heren           → 301 → /schoenen/heren/sneakers

Zo vind je ketens in de praktijk:

  1. Exporteer al je redirects (Magento URL rewrites, Shopify CSV of je serverconfig).
  2. Crawl de bron-URL's als lijst in een crawler zoals Screaming Frog, met "Always follow redirects" aan.
  3. Filter op alles met meer dan één hop.
  4. Herschrijf het doel van elke regel naar de laatste URL in de keten.

Op de command line kun je één URL snel controleren:

bash
curl -sIL https://www.shop.nl/heren-schoenen | grep -iE "^(HTTP|location)"

Zie je meer dan één location-regel, dan heb je een keten.

Vergeet ook de interne links niet. Een redirect is een vangnet voor externe links en oude bookmarks. Je eigen menu, footer en productteksten horen direct naar de juiste URL te linken. Een crawl die interne links naar 3xx-URL's laat zien, is een van de snelste winsten in elke technische SEO-check.

Redirect-loops

Een loop is een keten die bij zichzelf uitkomt:

/sale  → 301 → /acties
/acties → 301 → /sale

De browser geeft "ERR_TOO_MANY_REDIRECTS" en Google kan de pagina niet ophalen. Loops ontstaan vaak doordat twee systemen dezelfde URL beheren. Bijvoorbeeld een regel in nginx en een tegengestelde regel in de Magento URL rewrites. Of een trailing-slash-regel op serverniveau die botst met een redirect in de applicatie.

Vuistregel: leg per type redirect vast waar het woont.

  • Server (nginx/Apache/Cloudflare): HTTP naar HTTPS, www of non-www, trailing slashes, oude domeinen.
  • Platform (Magento/Shopify): product- en categorie-URL's, CMS-pagina's.

Twee lagen die allebei dezelfde URL's herschrijven, is vragen om loops.

Magento 2: URL rewrites onder controle houden

Magento slaat alle URL's op in de tabel url_rewrite. Je beheert ze in de admin onder Marketing > SEO & Search > URL Rewrites. Per regel kies je het redirecttype: Permanent (301), Temporary (302) of geen redirect.

Twee instellingen bepalen hoeveel rewrites Magento zelf aanmaakt. Je vindt ze onder Stores > Configuration > Catalog > Catalog > Search Engine Optimization:

  • Create Permanent Redirect for URLs if URL Key Changed. Staat dit aan, dan maakt Magento automatisch een 301 als je een URL-key wijzigt. Laat dit aan.
  • Use Categories Path for Product URLs. Staat dit aan, dan bestaat elk product onder elke categorie als eigen URL. Dat vermenigvuldigt het aantal rewrites. Meer daarover op onze pagina over Magento SEO.

Waar het in Magento misgaat:

  • Opgeblazen tabel. Bij grote catalogi met veel categorieën en storeviews groeit url_rewrite naar miljoenen regels. Dat vertraagt reindexen en het opslaan van producten.
  • Categorie verplaatsen. Verhang je een categorie, dan genereert Magento redirects voor de categorie en, afhankelijk van je instellingen, voor alle producten eronder.
  • Custom rewrites die overschreven worden. Een handmatige regel kan conflicteren met een automatisch gegenereerde regel voor hetzelfde request path in dezelfde storeview.

Magento Open Source heeft in de admin geen standaard CSV-import voor URL rewrites. Voor bulkwerk gebruik je een extensie, een eigen CLI-command of een gecontroleerde import direct in url_rewrite. Doe dat laatste alleen als je weet hoe entity_type, entity_id, store_id en redirect_type samenhangen:

sql
INSERT INTO url_rewrite
  (entity_type, entity_id, request_path, target_path, redirect_type, store_id, is_autogenerated)
VALUES
  ('custom', 0, 'oude-categorie.html', 'schoenen/heren.html', 301, 1, 0);

Test daarna altijd met curl of een crawler. Een import die per ongeluk een bestaand request path raakt, haalt een live pagina offline.

Shopify: URL-redirects en hun beperkingen

In Shopify beheer je redirects via Online Store > Navigation > URL Redirects (in nieuwere admin-versies via de zoekfunctie te vinden). Wijzig je de handle van een product of collectie, dan biedt Shopify een vinkje aan om automatisch een redirect te maken. Laat dat aangevinkt.

Wat je moet weten:

  • Redirects werken alleen als de oude URL niet meer bestaat. Een redirect van een live productpagina wordt genegeerd. Wil je een bestaand product doorsturen, zet het dan eerst op concept of verwijder het.
  • Geen wildcards of regex. Elke redirect is één bron naar één doel. Patronen als /old-blog/* moet je uitschrijven of via een app oplossen.
  • Vaste prefixen. Je doel moet binnen de Shopify-structuur passen: /products/, /collections/, /pages/, /blogs/.
  • Geen 410. Shopify geeft een 404 voor verwijderde content. Een echte 410 kun je niet zelf instellen.

Bulk gaat in Shopify wél standaard: je exporteert en importeert redirects als CSV met de kolommen Redirect from en Redirect to.

csv
Redirect from,Redirect to
/products/sneaker-oud,/products/sneaker-nieuw
/collections/zomer-2025,/collections/zomer
/pages/over-ons-oud,/pages/over-ons

Meer over wat wel en niet kan in het platform lees je op Shopify SEO.

Bulk import zonder schade

Bij een migratie of een grote assortimentswijziging praat je over duizenden regels. Een werkwijze die fouten voorkomt:

  1. Bronlijst samenstellen. Neem URL's uit je oude sitemap, Search Console (pagina's met vertoningen of kliks), je analytics en een backlinktool. Niet alleen wat je in het systeem ziet.
  2. Mappen op inhoud. Koppel elk oud product aan de meest gelijkwaardige nieuwe pagina. Niet alles naar de homepage.
  3. Normaliseren. Kies één notatie: kleine letters, wel of geen trailing slash, geen domein in het bronpad.
  4. Ketens voorkomen. Controleer of een doel-URL zelf niet ook in de bronkolom staat.
  5. Testen voor livegang. Crawl de bronlijst tegen staging. Elke regel moet in één hop op een 200 eindigen.
  6. Monitoren na livegang. Volg 404's in je serverlogs en het Search Console-rapport "Niet gevonden (404)".

Dit is precies het werk dat bij een replatforming bepaalt of je verkeer behoudt. We gaan er dieper op in bij SEO bij een webshop-migratie en in webshop migratie zonder SEO-verlies.

Redirect naar de homepage: waarom het niet werkt

De verleiding is groot. Een paar duizend uitgefaseerde producten? Alles naar /.

Google behandelt een redirect naar een niet-relevante pagina vaak als een soft 404. De oude URL verdwijnt dan uit de index en de signalen worden niet doorgegeven. De bezoeker landt op een homepage zonder het product dat hij zocht, en vertrekt.

Beter:

  • Redirect naar de opvolger als die er is.
  • Redirect naar de meest specifieke categorie als er een duidelijk alternatief is.
  • Geef een 404 of 410 als er geen relevant alternatief bestaat.

Wanneer kies je een 410

Een 410 (Gone) zegt: deze pagina is bewust en permanent weg. Een 404 zegt: niet gevonden. Google behandelt beide in de praktijk vrijwel hetzelfde: de URL valt uit de index. Een 410 is een iets explicieter signaal.

Gebruik een 410 als:

  • het product of de pagina definitief weg is en er geen goed alternatief bestaat;
  • het om spam-URL's of gehackte pagina's gaat die je snel uit de index wilt;
  • het om oude parameter-URL's of testomgevingen gaat die per ongeluk geïndexeerd zijn.

Gebruik een 301 als er een pagina is die dezelfde vraag beantwoordt. Wil je dieper in de afweging tussen tijdelijk uitverkocht en definitief weg, lees dan uitverkochte producten en SEO.

Een 410 op serverniveau in nginx:

nginx
location = /products/oude-collectie-2019 {
    return 410;
}

Hoe lang laat je een redirect staan

Google adviseert redirects minimaal een jaar te laten staan. In de praktijk laat je redirects die nog verkeer of backlinks krijgen gewoon staan. Ze kosten weinig.

Wat je wel opruimt:

  • redirects waarvan het doel zelf een redirect of een 404 is geworden;
  • dubbele regels voor hetzelfde bronpad;
  • regels voor URL's die nooit verkeer, links of vertoningen hebben gehad.

Plan dat als vast onderhoud, bijvoorbeeld elk kwartaal. Een redirecttabel zonder eigenaar wordt vanzelf een probleem.

Veelgestelde vragen

Hoeveel redirects in een keten accepteert Google?

Google volgt maximaal 10 hops, maar je wilt er één. Elke extra hop kost crawlbudget en laadtijd, en vergroot de kans dat er ergens een fout in de keten zit.

Verlies ik ranking met een 301-redirect?

Google zegt dat een 301 geen PageRank meer kost. Ranking verlies je wel als je naar een minder relevante pagina redirect, of als de nieuwe pagina inhoudelijk zwakker is dan de oude.

Kan ik in Shopify een 410 instellen?

Niet standaard. Verwijderde content geeft in Shopify een 404. Voor Google maakt dat in de praktijk weinig verschil, want beide statuscodes halen de URL uit de index.

Moet ik alle uitverkochte producten redirecten?

Nee. Tijdelijk uitverkochte producten laat je gewoon live staan. Alleen definitief vervallen producten redirect je naar een opvolger of passende categorie, of je geeft een 404 of 410.

Waar zet ik redirects: in de server of in het platform?

HTTPS, www en domeinwissels horen op serverniveau. Product-, categorie- en CMS-redirects horen in het platform. Houd die scheiding strikt, anders krijg je loops.

Ruthger Idema

Geschreven door Ruthger Idema

15+ jaar ervaring in e-commerce development. Gespecialiseerd in Magento, Shopify en Laravel maatwerk.

Meer over ons team →
Deel dit artikel:

Wil je jouw e-commerce naar het volgende niveau?

Plan een vrijblijvend gesprek met onze experts over Magento, Shopify of Laravel maatwerk.

Plan een Tech Check