Skip to content
All cases

Yasemin Maaltijdservice: SEO in five languages through two migrations.

The shop moved domain on 15 June 2026 and changed platform eight weeks later. It runs in five languages. The result I stand behind is technical: on 31 August, 1,139 of 1,164 indexable pages showed only the brand name as the title after JavaScript ran; on 2 October, none of 1,228 did. Traffic and revenue are mostly brand demand. I say so below.

Client

Yasemin Maaltijdservice

Sector

Halal Turkish meals delivered to the door, web shop in five languages (NL, EN, TR, DE, FR)

My role

SEO: technical work, content and advice

Period

June to October 2026

Services

Technical SEO, Content strategy, Shopify SEO

0 of 1,228

indexable pages with only the brand name as the title after JavaScript ran, in the crawl of 2 October 2026. On 31 August it was 1,139 of 1,164, or 97.9%.

1

canonical tag on every page in the crawl of 2 October 2026. On 31 August, 1,159 pages had two.

6

hreflang tags per page on 1,224 of 1,228 pages in the crawl of 2 October 2026. On 31 August it was twelve on 1,159 pages.

Source: two Screaming Frog crawls with JavaScript on, 31 August and 2 October 2026.

The challenge

The shop moved from yasemin.nl to yaseminmeals.com on 15 June. On 10 August it switched to a custom React platform. Dutch has no language prefix; English, Turkish, German and French sit under /en, /tr, /de and /fr. On 29 October the sitemap lists 1,266 URLs: 254 Dutch and 253 per other language.

  • A JavaScript app overwrote, in the browser, the title, canonical and hreflang that the server sent correctly.
  • Five language folders and five slugs per article give 25 possible addresses. Five are real.
  • Analytics recorded no organic orders from 1 to 9 August. A clean before and after across the platform change therefore does not exist.

About Yasemin

Yasemin Maaltijdservice sells halal Turkish meals delivered to the door. Each language has 154 dishes and 84 articles (85 in Dutch).

My approach

I check every page in two layers. A raw fetch shows what the server sends. A rendered crawl shows what a crawler sees after JavaScript runs, which is closer to what Google indexes. If they differ, the fault is in the browser, and a check in one layer misses it.

What I built

Phase 1: domain move and pre-launch audit

After the move on 15 June the shop kept redirecting to the old domain. The cause was a domain setting in the store configuration. I fixed it on 16 June and checked the 301 and the updated canonical. On 7 August I audited the staging version of the new platform and reported three launch blockers: a shared meta description, missing structured data and an incomplete sitemap.

Phase 2: the finding in the rendered DOM

The server HTML was correct. A component overwrote it after loading. The crawl of 31 August showed it: 1,139 of 1,164 indexable pages had the bare brand name as the title and 1,159 had two canonical tags and twelve hreflang tags instead of six. I sent the developer a ticket with a reproduction and the fixes went live on 13 September. The crawl of 2 October found no bare titles in 1,228 indexable pages, one canonical on every page and six hreflang tags on 1,224.

The result

The technical gain is measurable. The traffic and revenue lines are mostly brand demand.

Measure31 Aug 20262 Oct 2026Source
Indexable pages with only the brand name as title1,139 of 1,164 (97.9%)0 of 1,228Screaming Frog, JavaScript on
Pages with two canonical tags1,159None, one per pageScreaming Frog, JavaScript on
Hreflang tags per page12 (on 1,159 pages)6 (on 1,224 pages)Screaming Frog, JavaScript on

Extra: the first six weeks after the relaunch

After the relaunch on the new platform, from custom PHP to Shopify, the shop got 2,169 clicks from Google in the first six weeks, from 15 June to 26 July 2026. Per day it went from zero to 70 to 120 and more clicks.

For that I set up Shopify, built a topical map with clusters as part of the SEO roadmap and added internal links to the commercial pages that could grow.

Google Search Console: 2,169 clicks between 15 June and 26 July 2026, from zero to 70 to 120 clicks a day
Google Search Console, performance report: clicks per day, 15 June to 26 July 2026.

What the figures cannot prove

  • The zero in the chart is a new domain. The chart of the first six weeks starts at zero on 15 June, the day of the domain move. Search Console counts per site: it starts again there, even though the shop was already selling meals.
  • Brand demand carries most of it. Brand queries were 94.3% of visible Google clicks in September (3,004 of 3,185). The query table covers 66.5% of clicks. For the period of the 2,169 clicks, the split between brand and non-brand was not recorded.
  • Articles do not earn directly. In September they held 63% of Google impressions and 9% of clicks, and produced no organic revenue.
  • October is not a clean win. From 1 to 27 October, Google impressions per day rose 45% against September and clicks per day 3%. Average position fell from 6.78 to 7.53. I have not analysed why.

What next

Still open on 29 October:

  • The homepage and dish pages show almost nothing without JavaScript. The raw homepage HTML contains navigation links and no H1. In the crawl of 2 October, 799 of 1,223 indexable pages had fewer than 50 words.
  • The html lang attribute is set to "nl" in every language.

Further reading

Frequently asked questions

What went wrong after Yasemin's platform change?

A JavaScript component overwrote the title, the canonical and the hreflang tags that the server sent correctly. In the crawl of 31 August, 1,139 of 1,164 indexable pages had only the brand name as the title. The fixes went live on 13 September and the crawl of 2 October found none left.

How do you check hreflang and canonical on a multilingual web shop?

I check every page in two layers: a raw fetch for what the server sends and a rendered crawl for what a crawler sees after JavaScript runs. After loading, count the canonical and hreflang tags in the DOM, not only in the source. If the layers differ, the fault is in the browser.

Are the 2,169 clicks the result of SEO?

The figures cannot settle that. The chart starts at zero on 15 June, the day of the domain move. In September, 94.3% of visible Google clicks were brand queries. For the period of the 2,169 clicks, the split between brand and non-brand was not recorded.

Want to know what is possible for your site? Ask me.

hello@sahardid.comAmsterdam