Case study

Migrating a WordPress shop to Shopify: 330 posts moved, SEO intact

Three hundred and thirty blog posts, eleven years of backlinks and a catalogue that had to keep selling during the move. Here is the runbook we used.

Written by Oleksandr Martyniuk, CEO & Software Engineer · · 2 min read

The client sold on WordPress for eleven years. The catalogue had outgrown the platform, but the blog was the reason customers arrived in the first place: 330 posts, most of them ranking, many of them linked from elsewhere.

A migration that loses the backlinks costs more than the platform it saves. Ranking recovery after a botched move takes six to nine months.

What actually had to move

  1. 330 blog posts, with their images, internal links and publication dates.
  2. 1,240 products with variants, metafields and a decade of reviews.
  3. Every URL that had ever been indexed, including the ones nobody remembered.

The redirect map came first

Before touching content we exported every indexed URL from Search Console, the sitemap and the server logs, then reconciled the three lists. The logs found 190 URLs the other two sources had lost.

awk '{print $7}' access.log | sort -u > crawled.txt
comm -23 crawled.txt sitemap-urls.txt > orphans.txt

Every orphan got a decision: redirect, keep, or deliberately retire with a 410.

Results after one quarter

MetricBeforeAfter
Indexed pages1,4861,502
Organic sessions41,200/mo43,900/mo
Conversion rate2.1%3.2%
Largest contentful paint4.1s1.6s

We expected to lose traffic for a month and budgeted for it. We never spent that budget.

The checks that caught the gaps

Redirects are not the last step of a migration. They are the first artefact you build, and everything else is validated against them.