Salt la conținut
+40 754.636.306 Începe un proiect EN
Toate studiile de caz
Web Development Conversie Astro

Fiecare vizitator este plătit. Am reconstruit site-ul ca să nu se piardă niciunul.

Piscine Pro Design SRL / piscine, saune și spa, București | Astro 6 + CSS scris de mână + PHP

Un constructor de piscine, saune și spa din București, mutat de pe WordPress pe un site static Astro. LCP de 1,1 secunde pe telefoane reale, zero deplasare a conținutului și un formular în doi pași cu 34% rată de conversie.

34%
Conversie pe formular
Din clicurile plătite
1,1 s
LCP, utilizatori reali
Date de teren CrUX
0
Deplasare a conținutului
CLS exact zero
29 KB
JavaScript total
Patru fișiere, fără framework

Direcție de brand · UX și UI · dezvoltare front-end · arhitectură de conversie · SEO tehnic · măsurare · publicare

Pe scurt

Client
Piscine Pro Design SRL. Construcții piscine, saune și spa, București și Ilfov.
Problema
Un site WordPress care primea trafic plătit fără niciun buton de contact permanent pe mobil, fără WhatsApp într-o piață unde WhatsApp este canalul implicit, cu semnalele de încredere ascunse pe o singură pagină și cu un formular gândit pentru cineva care se documentează, nu pentru cineva care cumpără.
Ce am făcut
Reconstrucție completă, nu ajustări.
Rezultatul principal
34% dintre clicurile din căutare plătită ajung acum la un formular trimis, față de o medie de 6,6% în domeniu, iar costul per solicitare a scăzut de la 215 lei la 35 lei.
Construit cu
Astro 6, CSS scris de mână, fără framework, publicat pe găzduirea pe care clientul o avea deja.
Pasul următor
Programați un audit de conversie de 30 de minute pentru site-ul actual. Spuneți-ne de unde vine traficul și vă spunem pe unde se pierde.

Punctul de plecare: site-ul este ultimul pas al unei achiziții deja plătite

Afacerea aceasta funcționează pe căutare plătită. Cineva scrie „constructor piscine bucurești”, dă clic pe o reclamă, iar clicul acela costă. Fiecare secundă de încărcare și fiecare câmp inutil din formular cheltuiesc bani care au fost deja cheltuiți.

Asta schimbă felul în care privești proiectul. Site-ul nu este o broșură. Este ultimul pas al unei achiziții pe care clientul a plătit deja ca să o pornească.

Trei lucruri lucrau împotriva lui:

  • Site-ul vechi pierdea vizitatorii de pe telefon. Niciun buton de contact permanent, fără WhatsApp, și un formular care cerea traficului rece nume, telefon, email, serviciu și un mesaj scris înainte să accepte o solicitare.
  • Structura de adrese o luase razna. Ani de WordPress produseseră pagini de servicii care se suprapuneau: /servicii/piscine-private, /servicii/piscine-publice, /servicii/constructii-piscine, /servicii/saune, /servicii/spa-jacuzzi și altele. Consolidarea lor era necesară, iar pierderea istoricului lor în căutare nu era o opțiune.
  • Arăta a firmă de construcții. Ceea ce este adevărat și, comercial, greșit. Nimeni nu cumpără o piscină pentru că are nevoie de o groapă în curte. Cumpără sâmbăta pe care o aduce piscina.

Direcția de brand: un resort boutique care se întâmplă să construiască piscine

Propoziția aceasta este ideea din care se desprinde tot restul proiectului. Trei atribute: relaxat, primitor, sigur pe el. Tonul este de încredere caldă, nu de urgență. Nu „sună acum, ofertă limitată”, ci mai degrabă „am mai făcut asta, stai liniștit, ne ocupăm noi”.

Am scris ce refuzăm înainte să desenăm ceva:

  • Fără fotografii de stoc. Clientul avea opt ani de fotografii reale din proiecte.
  • Fără minimalism corporatist rece. Se citește competent și scump, ceea ce este pe jumătate corect și pe jumătate fatal.
  • Fără îndemnuri agresive. Este o achiziție cu deliberare lungă. Presiunea se citește ca disperare.

Paleta. Bleumarin adânc pe o scară de unsprezece trepte, de la #0a1628 la #e8f2ff, cu un accent auriu cald la #d4a843. Decizia care a contat cel mai mult a fost cea mai mică: scara de neutre a fost refăcută în tonuri calde, de la #faf8f6 la #1c1917, în locul griurilor reci pe care majoritatea sistemelor le folosesc din obișnuință. Griurile reci fac fotografia să pară clinică. Neutrele calde fac aceeași fotografie să pară concediu.

Tipografia. DM Serif Display pentru titluri, Inter Variable pentru text. Inter singur suna prea clinic pentru un brand care vinde relaxare, așa că serifa duce căldura, iar sans-serifa duce greul citirii.

Compoziția. Editorială, nu în grilă. Fotografia este produsul, așa că interfața o încadrează în loc să o taie în cartonașe.

Limba. Română peste tot, cu diacritice corecte, cu toate textele într-un singur dicționar, ca tonul să rămână unitar pe 38 de pagini.

Arhitectura de conversie: fiecare decizie a pornit ca ipoteză

Nu ca preferință. Fiecare dintre cele cinci decizii de mai jos a fost luată în raport cu o cifră pe care ne așteptam să o miște, și este scrisă aici împreună cu raționamentul care a produs-o. Aceeași disciplină stă și în spatele serviciului nostru de optimizare a paginilor de destinație, pe campanii pe care nu le-am construit noi.

Formularul cere două lucruri

Pasul unu ia numele, telefonul și acordul. Emailul și mesajul trec în pasul doi și rămân opționale. Formularele în mai mulți pași convertesc cu circa 86% mai bine decât cele într-un singur pas, 13,85% față de 4,53% în cercetarea pe care ne-am bazat, iar formularele cu trei câmpuri le depășesc pe cele cu cinci cu aproximativ 27%. Pentru trafic rece, fiecare câmp este o ocazie de răzgândire.

Există mereu o cale de a suna

O bară fixă apare pe mobil după 300px de derulare, cu WhatsApp și Sună, cu zone de atingere de minimum 48px, ascunsă complet peste 1024px. Pe desktop apare în schimb un buton WhatsApp flotant.

Antetul a încetat să vândă portofoliul

Butonul secundar spunea „vezi portofoliul”. Acum afișează numărul de telefon. Pe trafic plătit, orice îndemn care nu este o conversie diluează intenția.

Încrederea este distribuită, nu centralizată

Cinci argumente, garanție pe contract, răspuns în 24 de ore, peste 150 de proiecte, peste 8 ani de experiență, ofertă gratuită, într-o componentă cu variantă completă și compactă, plasată în antet, în benzile de îndemn și pe pagina de mulțumire. Prezente în momentul deciziei, nu arhivate într-o pagină „despre noi”.

Pagina de mulțumire este o pagină adevărată

Se adresează clientului pe nume, îi dă un cod de referință din șase caractere pe care îl poate spune la telefon și îi confirmă decizia în loc să îl lase într-o fundătură.

Apoi partea pe care nu o vede nimeni. Un câmp capcană care răspunde cu un succes fals, ca roboții să nu poată detecta că au fost filtrați. Limitare la cinci trimiteri pe oră de aceeași adresă IP. Și un detaliu care merită păstrat: pașii inactivi ai formularului sunt blocați cu atributul inert, nu cu disabled, pentru că un câmp disabled este eliminat în tăcere din datele trimise și ar fi distrus discret fiecare răspuns din pasul unu. Eroarea aceasta nu se afișează nicăieri. Doar pierde solicitări.

Ce a schimbat reconstrucția în căutarea plătită

1 iunie – 20 iulie 2026 · 412 clicuri · 140 de solicitări · buget de reclamă neschimbat

Rată de conversie pe formular

Rata de conversie pe formular față de media domeniului în căutarea plătită Paginile Piscine Design convertesc 34 la sută dintre clicurile din căutarea plătită. Media domeniului este de 6,6 la sută. Paginile Piscine Design 34% Media domeniului, căutare plătită 6,6%

Cost per solicitare

Costul per solicitare înainte și după reconstrucție Costul per solicitare a scăzut de la 215 lei înainte de reconstrucție la 35 lei după, cu buget de reclamă neschimbat. Înainte de reconstrucție 215 lei După reconstrucție 35 lei

Conversiile din apeluri și WhatsApp se contorizează separat și nu intră în cei 34%. Nu s-a schimbat nimic la campanii. Schimbarea este în întregime pe pagină.

Măsurarea: jumătatea invizibilă care schimbă ce poate decide clientul

Aproape nimic din secțiunea asta nu se vede, și tocmai ea decide dacă contul de reclame învață ceva.

Enhanced conversions pentru solicitări. Emailul și telefonul furnizate direct de client sunt trimise către Google în momentul conversiei, ca platforma să poată lega solicitarea de clicul care a produs-o cu o acuratețe mult mai mare.

Identificatorii de clic supraviețuiesc drumului. gclid, gbraid și wbraid sunt reținuți pe pagina pe care aterizează vizitatorul și păstrați 90 de zile, cât fereastra de atribuire a Google, apoi atașați formularului pe care îl trimite până la urmă. Fără asta, un vizitator care vine dintr-o reclamă, citește șase pagini și trimite formularul pe a șaptea este înregistrat ca trafic neatribuit. Campania care l-a plătit nu primește niciun credit, iar clientul optimizează pe baza unei minciuni.

Datele de campanie ajung în inbox. Cinci parametri UTM călătoresc mai departe în câmpuri ascunse, ca să se vadă care campanie a produs care solicitare, nu doar câte au venit.

Datele personale nu rămân în urmă. Detaliile solicitării ajung pe pagina de mulțumire prin adresă, declanșează conversia, apoi sunt șterse din bara de adrese cu history.replaceState(). Nu rămâne nimic în istoricul browserului și nici într-un link trimis pe chat.

Tag Manager se încarcă târziu. Așteaptă prima interacțiune reală, un moment de repaus sau patru secunde, care vine prima. Încărcat imediat, costă între 200 și 400 de milisecunde de blocare pe mobil, iar conversiile se declanșează oricum mult după ce utilizatorul a început să interacționeze, deci nu se pierde nimic prin așteptare.

Partea tehnică: patru fișiere JavaScript, 29 KB, fără framework

Fără React, fără Vue, fără strat de hidratare. Tot site-ul livrează patru fișiere JavaScript, în total circa 29 KB, iar 7,3 KB din ele sunt un efect WebGL pe care majoritatea vizitatorilor nu îl descarcă niciodată.

JavaScript livrat către browser

Dimensiune comprimată, la prima vizualizare a paginii

JavaScript livrat, comparat cu o pagină WordPress medie Piscine Design livrează 29 de kiloocteți de JavaScript. O pagină WordPress medie livrează aproximativ 640 de kiloocteți. Piscine Design 29 KB Pagină WordPress medie ~640 KB

Aproximativ a douăzecea parte din ce livrează un build WordPress obișnuit. Pe un telefon Android de gamă medie, JavaScript nu înseamnă doar timp de descărcare: înseamnă timp de interpretare și timp pe firul principal, iar amândouă cad exact în momentul în care vizitatorul decide dacă rămâne.

Decizia despre stiluri, cu cifra alături. Comportamentul implicit al Astro lăsa două fișiere CSS, de 3,6 KB și 9,2 KB, ca cereri externe care blocau afișarea, cu un cost de aproximativ 700 de milisecunde. Includerea CSS-ului direct în fiecare pagină schimbă circa 50 KB de HTML în plus pe eliminarea acelor cereri. Pe o conexiune 4G este clar schimbul corect, și se vede în datele de mai jos.

Fonturi alese după cât costă. Inter Variable acoperă toate grosimile în circa 30 KB per subset, față de aproximativ 1,1 MB pentru fișierele statice echivalente, iar în avans se încarcă doar Latin și Latin Extins, pentru că atât îi trebuie limbii române. DM Serif Display ocolește fișierul CSS din pachet, care ar fi impus font-display: swap și ar fi produs o schimbare târzie pe care browserele o recontorizează drept cel mai mare element afișat. Folosește în schimb font-display: optional, cu o fereastră de 100 de milisecunde. Dacă fontul nu ajunge la timp, se afișează serifa de sistem și nu se mișcă nimic.

Decizia are un rezultat măsurabil: deplasare a conținutului exact zero.

Efecte care știu când să lipsească. O suprafață de apă WebGL animează antetul, dar numai după ce verifică patru condiții: vizitatorul nu a cerut mișcare redusă, ecranul are cel puțin 768px, economia de date este oprită, iar conexiunea depășește 1,5 Mbps. Abia atunci codul este descărcat, și doar când zona ajunge în ecran. Animațiile la derulare folosesc mecanismul nativ din CSS acolo unde browserul îl suportă, cu o soluție de rezervă în JavaScript dedesubt.

Imagini și video. 155 de variante WebP responsive generate la compilare și o codare separată, mai ușoară, a videoclipului din antet pentru mobil, 471 KB față de 687 KB.

Căutare: un singur graf conectat, nu fragmente răzlețe

Fiecare pagină emite un singur bloc JSON-LD @graph, cu identificatori stabili pentru firmă, site și logo, ca motoarele de căutare să recunoască o singură entitate în loc să reasambleze mai multe. Firma este declarată simultan GeneralContractor și HomeAndConstructionBusiness. Raționamentul este același pe care l-am documentat în studiul de caz despre llms.txt și vizibilitatea în căutarea AI.

Catalogul se întreține singur. Zona deservită acoperă 13 localități, iar lista de servicii oferite este generată din catalogul de servicii, așa că adăugarea unui serviciu actualizează datele structurate fără să își amintească cineva.

O singură adresă per pagină. Adresele canonice sunt normalizate o singură dată, iar acea sursă unică alimentează sitemap-ul, legăturile interne și eticheta canonică, deci nu există dezacord între ele.

Migrarea a fost asigurată dublu. Adresele vechi sunt redirecționate atât la nivelul aplicației, cât și la nivelul serverului, cu tipare ancorate, ca /hidroizolatii să nu poată înghiți din greșeală /hidroizolatii-extra. Două straturi independente, pentru că o redirecționare care se oprește în tăcere este o scurgere lentă pe care nu o observă nimeni.

Accesibilitate și securitate

Contrast la nivel WCAG AA, legătură de salt la conținut și contururi aurii vizibile la navigarea cu tastatura, în locul celor suprimate.

Preferința pentru mișcare redusă este respectată în 17 fișiere, și respectată corect: mecanismul de animare la derulare nu este pornit deloc, nu doar ascuns. Există și o foaie de stil pentru tipărire, care elimină elementele de conversie și afișează adresele legăturilor.

Pe server: politică completă de securitate a conținutului, HSTS, politică de permisiuni restrânsă, anteturi care identificau serverul eliminate, credențiale de email cu drepturi doar pentru proprietar, jurnale de erori inaccesibile din web și mesaje de eroare care nu dezvăluie nimic despre sistemul de trimitere a emailurilor.

Publicare: găzduire partajată obișnuită, fără dependențe noi

Publicat pe găzduire cPanel obișnuită, partajată. Site-ul este complet static, cu excepția unui singur script PHP pentru formular, iar biblioteca de email este inclusă direct în build, deci nu este nevoie de Node, de Composer sau de vreo dependență nouă de administrare. Clientul rămâne cu abonamentul de găzduire pe care îl avea deja.

Memorarea în cache este pe niveluri: cinci minute pentru HTML, ca o publicare să se propage repede, o săptămână pentru CSS și JavaScript, o lună pentru imagini și fonturi, un an pentru fișierele cu amprentă și pentru video.

Predarea include un ghid scris de publicare, cu o listă de verificări de făcut după fiecare deploy, inclusiv adrese care trebuie să răspundă cu 403.

Rezultate, verificate pe teren

Chrome User Experience Report, fereastră de 28 de zile, vizitatori reali, pe dispozitive și conexiuni reale, nu o simulare de laborator.

Core Web Vitals față de pragurile „bun” ale Google

Mobil · fereastră CrUX de 28 de zile · lungimea barei = cât din buget este consumat

Core Web Vitals pe mobil, date de teren, față de pragurile „bun” ale Google Cel mai mare element afișat: 1,1 secunde față de un prag de 2,5 secunde. Primul element afișat: 1,0 secunde față de 1,8 secunde. Timpul până la primul octet: 0,5 secunde față de 0,8 secunde. Deplasarea conținutului: zero, față de un prag de 0,1. Toate patru trec. prag Cel mai mare element afișat 1,1 s 2,5 s Primul element afișat 1,0 s 1,8 s Timp până la primul octet 0,5 s 0,8 s Deplasarea conținutului 0 0,1

Evaluare Core Web Vitals: Trecut. Indicatorul de reacție la interacțiune nu returnează date, ceea ce se întâmplă când un site livrează aproape nimic cu care să interacționezi. Acestea sunt date de teren: este ce a înregistrat Google de la vizitatori reali, iar oricine citește studiul de caz poate verifica în treizeci de secunde pe PageSpeed Insights.

Lighthouse, desktop: 100 performanță · 100 accesibilitate · 92 bune practici · 100 SEO.

Conversie. 34% dintre clicurile din Google Ads au dus la trimiterea formularului, între 1 iunie și 20 iulie 2026, din 412 clicuri, adică 140 de solicitări. Media domeniului pentru pagini de destinație din căutare plătită este 6,6%. Conversiile din apeluri și WhatsApp se contorizează separat și nu intră în această cifră.

Costul per solicitare a scăzut de la 215 lei la 35 lei în aceeași perioadă, pentru că același buget de reclamă produce acum de șase ori mai multe solicitări. Nu s-a schimbat nimic la campanii. Schimbarea este în întregime pe pagină.

Merită separate cele două perioade, pentru că nu sunt aceeași cifră. În prima lună de la lansare, numărul de solicitări s-a dublat. Cifra de șase ori este starea stabilă, măsurată între 1 iunie și 20 iulie, după ce campaniile s-au așezat și formularul a stat suficient cât să poată fi citit corect. O reconstrucție nu își arată tot efectul în prima săptămână, iar un studiu de caz care susține altceva măsoară de fapt un vârf de lansare.

Ce s-a schimbat pentru client

Două lucruri, așa cum le-a descris clientul după prima lună. Numărul de solicitări s-a dublat. Și solicitările au devenit mai bune: mai puțini oameni care cer un preț fără intenția de a face ceva cu el, mai mulți oameni gata să fixeze o vizită pe teren.

A doua parte contează mai mult decât prima și este exact partea pe care o rată de conversie nu o poate arăta. Când ceri de la început numele, telefonul și acordul, iar emailul și mesajul rămân opționale, filtrezi după intenție, nu după răbdare. Cine completează un formular de două câmpuri este cineva care se așteaptă să fie sunat.

Căutare organică, la cinci luni de la lansare

Google Search Console · martie – iulie 2026

Afișări organice

pe lună

Afișări organice: de la 4.100 în martie 2026 la 11.800 în iulie 2026 4.100 11.800 Mar Iul

Clicuri organice

pe lună

Clicuri organice: de la 78 în martie 2026 la 340 în iulie 2026 78 340 Mar Iul

Poziție medie

1 = prima

Poziție medie: de la 18,4 în martie 2026 la 9,6 în iulie 2026 18,4 9,6 Mar Iul

Poziția medie este reprezentată cu 1 în partea de sus, deci o poziție care se îmbunătățește urcă pe grafic. În Search Console s-au înregistrat zero erori 404 după migrarea adreselor.

Abordarea noastră

Partea de viteză și partea de formular sunt tratate de obicei ca două proiecte separate, de oameni diferiți. Sunt același proiect. O pagină de 1,1 secunde cu un formular de cinci câmpuri este un mod rapid de a pierde o solicitare, iar un formular în doi pași pe o pagină de patru secunde nu ajunge să fie văzut niciodată. Din compunerea lor ies cei 34%.

Întrebări frecvente

Cât durează o reconstrucție de acest fel?

Nouă săptămâni de la start la lansare, incluzând direcția de brand, designul, dezvoltarea, migrarea conținutului, datele structurate și măsurarea. Blocul cel mai mare nu este dezvoltarea. Este stabilirea scopului site-ului, pentru că toate deciziile de după se desprind din răspunsul acela.

De ce site static și nu WordPress?

Un constructor de piscine nu are nevoie de o platformă de publicare, de un ecosistem de pluginuri și de o bază de date. Toate trei costă continuu, în mentenanță, în expunere la riscuri de securitate și în timp de încărcare. Un site static le elimină pe toate și, așa cum arată datele de teren, ajunge mai repede pe telefoanele pe care oamenii chiar îl deschid. Am comparat opțiunile pe larg în ghidul nostru despre alternativele la WordPress.

Poate clientul să își actualizeze singur conținutul?

Nu, și aceasta a fost o decizie asumată. Conținutul stă în fișiere structurate, nu într-un panou de administrare, și tocmai asta ține site-ul atât de rapid și îl împiedică să se deformeze în timp. Actualizările trec prin noi, în maximum două zile lucrătoare. Pentru o firmă care își schimbă conținutul de câteva ori pe an, nu săptămânal, este de obicei schimbul corect. Un client care trebuie să publice zilnic are nevoie de altceva, și i-am spune-o direct.

Cum protejați pozițiile în Google în timpul unei migrări?

Fiecare adresă veche este pusă în corespondență cu înlocuitoarea ei înainte de lansare, redirecționarea se face pe două niveluri independente, fiecare pagină păstrează o singură adresă canonică, iar în săptămânile de după se urmăresc erorile 404 în Search Console. Pozițiile se pierd din neglijență, nu din mutare.

Ce schimbă de fapt enhanced conversions într-un cont Google Ads?

Permit Google să lege o solicitare de clicul care a generat-o cu o acuratețe mult mai mare. Mai multe conversii identificate înseamnă că algoritmul de licitare învață din rezultate reale, nu dintr-o fracțiune din ele, iar asta se vede de obicei ca un cost per solicitare mai mic în timp, nu ca un salt imediat. În serviciul nostru de măsurare a conversiilor aceasta este muncă de instalare, nu o optimizare lăsată pe mai târziu.

Chiar aduce mai multe solicitări un site mai rapid?

Conversia scade cu aproximativ 4,42% pentru fiecare secundă în plus de încărcare. Pe trafic plătit acesta este un cost direct, pentru că clicul a fost deja cumpărat, indiferent dacă pagina ajunge sau nu.

Plătiți trafic pe care site-ul îl pierde?

Programați un audit de conversie de 30 de minute. Spuneți-ne de unde vine traficul și vă spunem pe unde se pierde.