Case study
Een WordPress-webshop migreren naar Shopify: 330 berichten verhuisd, SEO intact
Driehonderddertig blogberichten, elf jaar aan backlinks en een catalogus die tijdens de verhuis moest blijven verkopen. Dit is het draaiboek dat we gebruikten.
Geschreven door Oleksandr Martyniuk, CEO & Software Engineer · · 2 min leestijd
De klant verkocht elf jaar lang via WordPress. De catalogus was het platform ontgroeid, maar de blog was de reden waarom klanten überhaupt binnenkwamen: 330 berichten, de meeste goed gerankt, veel ervan gelinkt vanop andere sites.
Een migratie die de backlinks verliest, kost meer dan het platform dat ze uitspaart. Na een mislukte verhuis duurt het zes tot negen maanden om de rankings terug te winnen.
Wat er echt moest verhuizen
- 330 blogberichten, met hun afbeeldingen, interne links en publicatiedata.
- 1.240 producten met varianten, metafields en tien jaar aan reviews.
- Elke URL die ooit geïndexeerd was, ook de URL's die niemand zich nog herinnerde.
De redirect map kwam eerst
Voor we aan de content begonnen, exporteerden we elke geïndexeerde URL uit Search Console, de sitemap en de serverlogs, en brachten we de drie lijsten met elkaar in overeenstemming. De logs vonden 190 URL's die de andere twee bronnen kwijt waren.
awk '{print $7}' access.log | sort -u > crawled.txt
comm -23 crawled.txt sitemap-urls.txt > orphans.txt
Voor elke verweesde URL werd een beslissing genomen: redirecten, behouden of bewust uitfaseren met een 410.
Resultaten na één kwartaal
| Metriek | Voor | Na |
|---|---|---|
| Geïndexeerde pagina's | 1.486 | 1.502 |
| Organische sessies | 41.200/mnd | 43.900/mnd |
| Conversieratio | 2,1% | 3,2% |
| Largest contentful paint | 4,1s | 1,6s |
We verwachtten een maand verkeer te verliezen en hadden daar budget voor voorzien. Dat budget hebben we nooit aangesproken.
De controles die de gaten vonden
- Een crawl diff tussen staging en productie, elke nacht uitgevoerd tot aan de lancering.
- Een canary-set van vijftig waardevolle URL's, manueel gecontroleerd.
- Validatie van gestructureerde data op elke template, niet op elke pagina.
Redirects zijn niet de laatste stap van een migratie. Ze zijn het eerste wat je bouwt, en al de rest wordt ertegen gevalideerd.
- migration
- seo
- e-commerce