How We Recovered SEO After Jurassic Fruit Moved from a Custom CMS to Shopify
Jurassic Fruit had already moved its multilingual DE / EN / FR catalogue from a custom CMS to Shopify, but the SEO handover still needed recovery work. We stepped in to stabilise redirects, canonicals, indexation and structured data, preserve organic visibility, and move legacy URLs cleanly into the new Shopify structure.
Google Search Console: Search performance, last 6 months vs previous 6 months, and the Page Indexing report. The primary success criteria in this phase were recovery and indexation stability, not short-term ranking growth.
About the Client and the Migration Context
Jurassic Fruit sells exotic fruit – durian, mangosteen, cherimoya, fresh coconut and dozens of others – across Europe and beyond, with a catalogue localised into German, English and French. The store had moved from a custom CMS with its own category and product ID structure to Shopify. That platform change replaced the site’s URL architecture across all three languages at once and left a high-risk SEO recovery task behind.
Jurassic Fruit
The Challenge: Recovering SEO After a Full CMS-to-Shopify Migration
By the time we stepped in as the Shopify agency handling recovery, the platform move had already changed the site’s core URL structure across German, English and French. The SEO handover was not complete, so the first job was recovery: run a Shopify SEO audit, understand what had been implemented, identify the gaps left by the previous migration work, and stabilise how Google was discovering, consolidating and indexing the new Shopify URLs.
This is exactly where Shopify migration SEO becomes critical. A store can be functionally live while search engines are still receiving mixed or incomplete signals.
- Every important category and product URL pattern had changed from the custom CMS to Shopify’s /collections/ and /products/ structure.
- The existing redirect handover had to be audited rather than assumed to be correct, including missing mappings, chains, loops and incorrect destinations.
- Canonicals had to be checked so old and new URLs did not compete or send conflicting consolidation signals.
- Indexation had to be rebuilt around the new Shopify sitemaps and monitored closely in Google Search Console.
- Structured data and internal linking needed to be revalidated after the CMS change instead of being treated as automatically preserved.
- The same recovery logic had to work across DE / EN / FR, multiplying the number of URLs and failure points that needed QA.
Core Rule
Recovery came before growth. We first had to restore clean technical signals and make sure legacy authority was reaching the correct Shopify URLs. Only after that foundation was stable did the project move into the ongoing SEO and content optimisation we run as a Shopify marketing agency.
The Recovery Started With the Legacy URL Handover
The old custom CMS used numeric category and product IDs, repeated across three languages. We audited the legacy URL inventory against the live Shopify structure, verified the intended destinations and corrected the handover where needed so ranking and link signals had a valid Shopify URL to consolidate into. This is the same kind of URL-control work covered in our enterprise Shopify migration playbook.
| Legacy platform URL | Shopify equivalent |
|---|---|
| /de/c311/fruchte, /fr/c311/fruits, /en/c311/fruit | /collections/fruechte, /fr/collections/fruits, /en/collections/fruit |
| /de/p226/monstera-deliciosa-philodendren | /products/monstera-deliciosa-philodendren |
| /de/p1538/lala-box | /products/lala-box |
| /de/p576/jackfrucht-reif | /products/jackfrucht-reif |
Why This Mattered
The recovery goal was for Google to understand that the old and new URLs represented the same underlying pages. That meant preserving continuity through redirects and canonicals instead of forcing Google to treat the Shopify store as a completely new site.
The Result: SEO Recovered Without a Major Visibility Loss
The clearest recovery signals were technical: indexation expanded to 17.8k pages, legacy URL traffic fell by 99%, and the rest of the site held at -2.4% clicks once deliberately retired legacy URLs were excluded. For a full three-language CMS-to-Shopify URL change, that points to recovery and consolidation rather than a major organic visibility loss.
Up from ~2-3k before cutover
6 mo vs prev. 6 mo, excl. legacy URLs
7,804 → 78 clicks on old URLs
Indexation Expanded as the Shopify Structure Recovered
The Page Indexing report is the clearest recovery signal in the case. Before the migration period, roughly 2,000-3,000 pages were indexed. As the Shopify structure was discovered and consolidated, the indexed footprint jumped to around 12,500 and then climbed steadily to 17.8k.
Google Search Console: Page Indexing report, 12 June – 4 September 2026. The jump on 26 July marks the Shopify cutover.
What the Chart Tells Us
A failed handover often shows up as an indexation cliff: old URLs disappear faster than the new platform is accepted. Jurassic Fruit shows the opposite pattern. The Shopify footprint expands and continues climbing, supporting the view that redirects, canonicals and indexation signals were recovering in the right direction.
Legacy URLs Retired While Shopify URLs Took Over
Comparing legacy CMS URLs against their Shopify replacements shows the recovery directly: old paths fall away while the new Shopify URLs remain visible and carry the traffic. That is the intended migration pattern – authority consolidating onto the new structure instead of disappearing with the old one.
| Legacy URL (prev. 6 mo → last 6 mo) | Shopify replacement (prev. 6 mo → last 6 mo) |
|---|---|
| /de/c311/fruchte: 834 → 0 | /collections/fruechte: 13,251 → 9,793 |
| /en/c311/fruit: 235 → 0 | /en/collections/fruit: 8,525 → 11,409 |
| /fr/c311/fruits: 521 → 0 | /fr/collections/fruits: 1,551 → 3,705 |
| /de/p1538/lala-box: 211 → 0 | /products/lala-box: 3,070 → 818 |
| /de/p226/monstera-deliciosa-philodendren: 202 → 0 | /products/monstera-deliciosa-philodendren: 3,965 → 2,592 |
| /de/p576/jackfrucht-reif: 192 → 0 | /products/jackfrucht-reif: 1,045 → 433 |
Google Search Console: legacy platform URLs vs. Shopify replacements, last 6 months vs previous 6 months. The main German collection shows a normal in-transition dip while authority consolidates onto the new URL – its retired legacy path is no longer competing with it for that traffic.
Average Position Improved Across Every Device and Rich-Result Type
Beyond clicks, two technical health signals are worth calling out on their own: average ranking position and the continued presence of rich results, both of which depend on Google trusting the new Shopify templates and structured data.
| Signal | Previous 6 months | Last 6 months |
|---|---|---|
| Mobile – avg. position | 6.51 | 6.12 |
| Desktop – avg. position | 12.58 | 9.11 |
| Tablet – avg. position | 6.09 | 5.57 |
| Product snippets – avg. position | 10.06 | 8.56 |
| Review snippet – avg. position | 10.22 | 8.63 |
Outcome
Average position improved on every device and every major rich-result type Google showed for the site – a sign that structured data and template quality carried over to Shopify successfully rather than degrading during the switch.
Recovery Tracking: Which Shopify Pages Still Needed Work
Retiring legacy URLs cleanly is only half the recovery. The other half is what happened to the actual Shopify pages after the handover. We therefore compared 1,147 current non-legacy URLs that Search Console tracked in both periods and separated stable pages from those that still needed re-optimisation.
533 grew, 82 steady, 85 brand-new of 1,147
155,200 → 154,481, 6 mo vs prev. 6 mo
down >10%, being actively re-optimised
The 411 pages still below their pre-migration click levels are not pages that lost their rankings outright – Search Console still shows most of them being crawled, indexed and appearing in results. The pattern looks more like authority still consolidating onto the new Shopify URL and template than a ranking loss, which is normal in the months after a migration. The table below lists the highest-value pages on that watch-list.
| Page | Previous 6 mo → last 6 mo |
|---|---|
| /products/lala-box | 3,070 → 818 |
| /products/mangostan | 3,970 → 2,255 |
| /products/monstera-deliciosa-philodendren | 3,965 → 2,592 |
| /fr/products/cherimoya | 1,629 → 583 |
| /blog/salak-schlangenfrucht | 1,512 → 1,005 |
| /products/jackfrucht-reif | 1,045 → 433 |
| /products/feijoa | 1,001 → 270 |
Google Search Console: Top Pages report, last 6 months vs previous 6 months. Legacy platform URLs (/c###/, /p####/) are excluded – those are covered in the previous block.
A Specific Finding Worth Flagging
One clean technical signal showed up in the data: /en/ (with a trailing slash) fell from 477 to 10 clicks, while /en (no trailing slash) grew from 8,058 to 9,405 over the same period. That is consistent with Shopify canonicalising to the non-trailing-slash version – it reads as URL consolidation, not a ranking loss, and is the kind of pattern this recovery tracking is designed to catch.
Outcome
None of the watch-list pages have disappeared from the index – they are still being crawled and shown, just not yet back to their pre-migration click levels. Content refreshes and internal-linking passes on these specific pages are the next priority now that the technical foundation is stable.
After the Technical Recovery, AI Overview Mentions Grew 56%
Once the migration-related SEO risks were under control, the next phase shifted to ongoing Shopify SEO and content optimisation. Collection pages were rebuilt for both classic search and AI answer engines, and Ahrefs Brand Radar provides the clearest read on that later phase. The same progression from technical cleanup to ongoing optimisation is part of our broader Shopify SEO services.
+186 vs prior period (from ~330)
+48 vs prior period (from ~82)
+16, across 6 tracked platforms
Ahrefs Brand Radar: AI response tracking for jurassicfruit.com/, monthly volume.
Underneath that headline, the shift by platform is uneven – some grew, some pulled back:
| Platform | Responses (change) | Pages cited (change) |
|---|---|---|
| Google AI Overviews | 516 (+186) | 130 (+48) |
| Google AI Mode | 470 (-254) | 146 (-81) |
| Perplexity | 259 (+105) | 56 (+9) |
| Copilot | 117 (+90) | 101 (+82) |
| Gemini | 53 (+31) | 36 (+22) |
| ChatGPT | 47 (-137) | 43 (-131) |
| Grok (paused) | 0 (-5) | 0 (-3) |