De la Yii la Next.js: migrarea unui showroom premium (studiu de caz Kulttur)
Cum am reconstruit showroom-ul digital Kulttur de pe Yii pe Next.js: catalog structurat pe brand, bilingv RO/EN cu hreflang nativ, structured data de catalog și Core Web Vitals verzi (LCP 1.9s, CLS 0) pe utilizatori reali.

Pe scurt: Kulttur, un showroom premium de uși, ferestre și parchet din București, rula pe Yii — un framework PHP solid, dar care nu-i mai servea nevoile de performanță și de prezență în AI search. Nu am făcut o migrare 1:1, ci am reconstruit showroom-ul digital de la zero pe Next.js. Rezultatul: LCP 1.9s și CLS 0 pe utilizatori reali, la nivelul brandurilor pe care le vinde.
Punctul de start
Kulttur vinde produse premium — Wippro, Internorm, parchet de nișă. Site-ul trebuia să reflecte acel nivel: rapid, curat, credibil. Vechiul site pe Yii funcționa, dar avea încărcare lentă, structură de catalog rigidă și zero pregătire pentru cum caută oamenii azi (Google mobil, AI Overviews).
Decizia n-a fost „Yii e rău". A fost: pentru un showroom unde viteza și prezentarea premium contează direct pentru vânzare, un rebuild pe stack modern aducea mai mult decât un patch pe cel vechi.
De ce rebuild, nu migrare 1:1
O migrare 1:1 ar fi copiat structura veche pe tehnologie nouă — inclusiv limitările ei. Am ales să reconstruim informația de la zero:
- Catalog structurat pe brand (Wippro, Internorm, parchet premium) — cum caută clientul real, nu cum era organizat în CMS-ul vechi.
- Bilingv RO/EN cu hreflang nativ — pentru clienți internaționali, cu canonical și alternate corecte din construcție.
- Flux de cerere ofertă contextual — pe fiecare produs, nu un formular generic.
Rebuild-ul costă mai mult decât un patch, dar când site-ul e vitrina unui brand premium, jumătățile de măsură se văd.
Stack-ul ales
Next.js (App Router) + React + TypeScript. Motivele concrete:
- Server Components pentru catalog: HTML pre-randat, rapid, indexabil.
- Optimizare imagini — critică pentru un showroom vizual (uși, ferestre, parchet sunt produse foto-intensive).
- Structured data de catalog direct în cod, plus
llms.txtpentru AI search. - hreflang nativ prin metadata API, fără plugin-uri fragile.
Rezultatele măsurate
Pe utilizatori reali (nu doar Lighthouse lab):
- LCP 1.9s — sub pragul de 2.5s pentru „good".
- CLS 0 — zero layout shift, conținutul nu sare.
- Catalog indexabil, structured data validat, bilingv corect.
Pentru un site cu imagini grele de produs, LCP-ul sub 2s a cerut exact ce am descris în checklist-ul de optimizare a imaginilor: WebP responsive, priority pe imaginea principală, dimensiuni explicite.
Ce a contat cel mai mult
- Imaginile. Un showroom trăiește din vizual. WebP responsive + lazy loading sub fold au făcut diferența între un site care se simte premium și unul care se încarcă greu.
- Structura de catalog pe brand. Aliniată cu intentul de căutare, nu cu structura veche de DB.
- Bilingv din construcție. hreflang corect de la prima zi, nu adăugat ulterior peste un site monolingv.
- Pregătire AI search. structured data + llms.txt, ca showroom-ul să fie citabil în AI Overviews și ChatGPT, unde se mută tot mai multă cercetare de produs premium.
Concluzie
Migrarea de pe un stack vechi nu e despre „framework nou la modă". E despre: site-ul tău încă îți servește businessul, sau te ține pe loc? Pentru Kulttur, un rebuild pe Next.js a transformat un showroom lent într-unul care se simte la nivelul produselor vândute.
Dacă ai un site pe un stack vechi (Yii, CakePHP, WordPress greu) care a devenit o frână, asta e genul de proiect pe care îl facem — vezi aplicații web custom. Iar dacă vrei întâi să știi exact ce te ține pe loc, un audit SEO/AI cu fix în cod îți arată prioritățile înainte de orice rebuild.