Site-ul agenției rula pe WordPress cu 31 de pluginuri active și un constructor vizual de pagini. Mutarea pe Laravel a fost decisă pentru mentenanță și pentru suprafața de atac, nu pentru viteză, dar rezultatul s-a văzut întâi la viteză.
Pe scurt
- Ce era înainte
- WordPress cu 31 de pluginuri, constructor vizual, document HTML de 173 KB.
- Ce s-a schimbat
- Aplicație Laravel cu administrare proprie, șabloane rescrise de la zero.
- Volum
- 318 adrese indexabile: 204 articole, 67 pagini, 6 categorii, 26 de proiecte, recenzii.
- Rezultat măsurat
- HTML 173 KB → 38 KB, elemente în pagină 1188 → 200, blocaj 306 ms → 0.
- Adrese pierdute
- Niciuna. Toate cele 318 răspund în continuare.
Ce am făcut
Am scris un importator care citește direct din baza WordPress și convertește conținutul, inclusiv codurile scurte ale constructorului vizual, în HTML curat. Șabloanele au fost rescrise de la zero, intenționat: copierea markup-ului existent ar fi păstrat exact greutatea de care voiam să scăpăm.
Structura adreselor a rămas neschimbată, cu slash final, fiindcă toate cele 318 erau deja indexate așa. O singură rută le rezolvă, în ordinea pagină, articol, categorie.
Ce a cerut atenție
Regula standard de slash final din Laravel ar fi făcut redirecționare pe fiecare adresă indexată. A fost scoasă înainte de orice altceva. La fel, verificarea a trebuit făcută cu adresele din sitemap-ul vechi testate pe site-ul nou: testarea sitemap-ului nou pe site-ul nou este circulară și ascunde exact ce lipsește.
Conversia codurilor scurte a avut și ea capcanele ei: atributele puteau fi codificate în două straturi, iar aruncarea marcajelor de rânduri și coloane transforma paginile complexe într-o singură coloană, cu textul prezent dar aranjarea pierdută.
Ce se măsoară acum
Lucrările de acest fel intră la optimizare tehnică, iar metoda de măsurare este descrisă în articolul despre ce face un site lent.
Prima afișare a conținutului a scăzut de la 2320 la 1060 de milisecunde, măsurat pe telefon cu procesorul încetinit de patru ori. Deplasarea elementelor în pagină a ajuns la zero, iar numărul de cereri pentru prima afișare de la opt la două.
Ce am păstrat din varianta veche
Structura adreselor, integral, inclusiv slash-ul final. Toate cele 318 erau indexate așa, iar o schimbare acolo ar fi însemnat 318 redirecționări și un transfer de autoritate pe care nu aveam motiv să îl riscăm. Am păstrat și imaginile la aceleași adrese, printr-o legătură simbolică, deci nu a trebuit copiat niciun fișier.
Ce ne-a scutit de o problemă
Am testat înainte de orice altceva dacă directoarele care conțin instalări separate supraviețuiesc noii configurări, folosind un director fals. Verificarea a durat zece minute și a confirmat că regulile de rescriere lasă neatinse subdirectoarele cu aplicație proprie. Fără testul acela, două secțiuni ale site-ului ar fi dispărut în ziua mutării.