SEO pentru dezvoltatori: cum randezi paginile pe care le pot citi crawlerele, cum returnezi codurile HTTP corecte, cum livrezi etichetele esențiale din head, cum treci Core Web Vitals și cum rămâi vizibil pentru AI.

Pe această pagină
Pe scurt
pentru un dezvoltator, SEO înseamnă să faci fiecare pagină importantă accesibilă, randabilă și lipsită de ambiguitate pentru crawlere. Servește conținutul principal în HTML-ul inițial (randare pe server sau generare statică), returnează coduri de stare HTTP sincere, pune titlul, meta-descrierea, canonicalul și directivele robots în răspunsul serverului, creează linkuri cu elemente reale <a href>, respectă pragurile Core Web Vitals și adaugă date structurate JSON-LD. Majoritatea crawlerelor AI nu execută JavaScript, deci conținutul care există doar după hidratare este invizibil pentru ChatGPT, Claude și Perplexity.
Vrei să afli mai mult? Întreabă
Test rapid
Ți se potrivește SEO și cum ar trebui să începi?
Sorank se potrivește răspunsurilor tale
Testează-l 3 zile pe propriul site și vezi unde te afli pe Google, ChatGPT și pe celelalte IA.
Începe perioada de test gratuită de 3 zile3 zile gratuit, apoi renunți oricând vrei. Garanție de rambursare în 90 de zile dacă nu vezi rezultate.
SEO pentru dezvoltatori este partea optimizării pentru motoarele de căutare care trăiește în cod: șabloane, rutare, randare, anteturi și performanță. Specialiștii în marketing aleg cuvintele cheie și scriu conținutul, dar un cod de stare greșit, o rută doar pe client sau un noindex uitat pot șterge toată această muncă dintr-un singur deploy. Noțiunile de bază despre SEO pentru JavaScript ale Google descriu trei etape (crawling, randare, indexare), iar fiecare are defecte pe care doar dezvoltatorii le pot remedia. Acest ghid le parcurge în ordinea în care se strică.
| Zonă | Responsabilitatea dezvoltatorului | Simptom tipic când se strică |
|---|---|---|
| Randare | Conținutul principal și linkurile prezente în HTML-ul serverului | Pagini indexate cu conținut gol sau parțial |
| Coduri de stare | 200, 301, 404, 410, 5xx returnate corect | Soft 404, pagini de eroare indexate, pagini șterse care încă se clasează |
| Etichete din head | Title, descriere, canonical, robots, hreflang unice | Duplicate, URL greșit clasat, pagini lipsă din index |
| Controlul crawlingului | robots.txt, sitemap XML, linkuri interne, parametri | Pagini importante nedescoperite, crawling risipit pe filtre |
| Performanță | Core Web Vitals pentru utilizatorii reali de mobil | Experiență slabă pe pagină, conversii mai mici |
| Date structurate | JSON-LD valid, care corespunde conținutului vizibil | Fără rezultate bogate, confuzie de entitate |
| Acces AI | User agents AI permise, conținut citibil fără JavaScript | Brand absent din răspunsurile ChatGPT și Perplexity |
Googlebot randează JavaScript, dar într-un al doilea pas, care poate fi întârziat, iar Google scrie el însuși că „randarea pe server sau pre-randarea rămâne o idee foarte bună”, pentru că este mai rapidă atât pentru utilizatori, cât și pentru crawlere, și pentru că nu toți boții rulează JavaScript. Acest ultim punct contează acum mai mult ca niciodată: în analiza din decembrie 2024 The rise of the AI crawler, Vercel a constatat că „niciunul dintre marii crawlere AI nu randează în prezent JavaScript”, printre ei numărându-se GPTBot, OAI-SearchBot, ChatGPT-User, ClaudeBot și PerplexityBot. Gemini, care folosește infrastructura Google, este excepția.
| Mod de randare | Ce primesc crawlerele | Potrivire pentru SEO |
|---|---|---|
| Randare pe client (CSR) | Un schelet HTML aproape gol, conținutul apare după rularea JavaScript | Slabă: întârziată pentru Google, invizibilă pentru majoritatea crawlerelor AI |
| Randare pe server (SSR) | HTML complet la fiecare cerere | Puternică pentru paginile dinamice |
| Generare statică (SSG) | HTML complet construit la deploy | Cea mai puternică pentru conținutul care se schimbă rar |
| Regenerare incrementală (ISR) | HTML static reîmprospătat programat sau la cerere | Puternică pentru cataloage mari și bloguri |
Două reguli se aplică oricare ar fi framework-ul. Linkurile trebuie să fie elemente <a> cu atributul href: Google precizează că poate descoperi doar linkurile în această formă, deci butoanele cu handlere de click și rutele bazate pe fragmente sunt fundături. Și fiecare rută are nevoie de propriul URL, fără #, care returnează direct conținutul. Ghidurile noastre despre SEO pentru JavaScript, SEO pentru aplicații cu o singură pagină și SEO pentru Next.js detaliază aspectele specifice fiecărui framework.
Codurile de stare sunt instrucțiuni pentru crawlere. Documentația Google despre codurile de stare HTTP și erorile de rețea descrie cum este tratată fiecare familie:
Verifică ce trimite serverul tău cu adevărat folosind un verificator de anteturi HTTP, și păstrează lanțurile de redirecționare la un singur salt: articolul nostru despre redirecționările SEO acoperă modelele de migrare.
Fiecare pagină indexabilă are nevoie de un titlu și o descriere unice, de un canonical care trimite la ea însăși și, pe site-urile multilingve, de adnotări hreflang. Păstrează-le în răspunsul serverului:
<title>Running shoes for flat feet | Example</title>
<meta name="description" content="Tested picks, sizes and prices.">
<link rel="canonical" href="https://example.com/running-shoes-flat-feet">
<link rel="alternate" hreflang="fr" href="https://example.com/fr/chaussures-pieds-plats">
<meta name="robots" content="index, follow">Eticheta canonical trebuie să indice URL-ul pe care vrei să îl vezi clasat, cu protocolul, gazda și convenția de bară finală exact ca pe site-ul tău.
Atenție
Nu te baza niciodată pe JavaScript ca să elimini un noindex. Google precizează că, atunci când găsește o etichetă noindex, poate sări peste randare, deci o pagină care livrează noindex în HTML și îl elimină pe client poate rămâne în afara indexului.
Motoarele de căutare indexează URL-urile, deci schema URL-urilor este o decizie de SEO. Folosește căi lizibile, scrise cu litere mici și cu cratime; alege o singură convenție pentru bara finală și redirecționează-o pe cealaltă; și păstrează un singur URL pentru fiecare bucată de conținut. Filtrele, sortările și parametrii de urmărire înmulțesc URL-urile fără să adauge conținut: canonicalizează-le spre versiunea curată și nu crea linkuri către combinații de parametri pe care nu vrei să le crawl-ezi.
Linkurile interne poartă atât descoperirea, cât și importanța. Randează navigația, breadcrumb-urile și blocurile de conținut conex pe server, oferă listelor paginate linkuri simple către fiecare pagină și evită derularea infinită fără URL-uri paginate în spate. Un produs sau un articol accesibil doar prin căutarea de pe site sau printr-un filtru JavaScript este, pentru un crawler, o pagină orfană.
robots.txt controlează crawlingul, nu indexarea: un URL blocat poate apărea totuși în rezultate dacă alte pagini îl link-uiesc. Ca să ții o pagină în afara indexului, lasă-o să fie crawl-ată și returnează noindex. Generează sitemap-ul XML din rutele sau din baza ta de date, listează doar URL-urile canonice cu 200 și actualizează lastmod doar când conținutul se schimbă cu adevărat. Testează regulile cu un verificator robots.txt înainte de fiecare lansare și nu trimite niciodată în producție un robots.txt de staging cu „Disallow: /”.
Google folosește Core Web Vitals ca parte a semnalelor sale de experiență a paginii. Potrivit web.dev, o pagină este bună atunci când atinge aceste praguri la percentila 75 a încărcărilor reale, pe mobil și pe desktop:
| Metrică | Măsoară | Prag bun | Remedieri frecvente pentru dezvoltatori |
|---|---|---|---|
| LCP (Largest Contentful Paint) | Încărcarea | 2,5 s sau mai puțin | Precarcă imaginea principală, randează pe server conținutul din zona vizibilă, folosește un CDN |
| INP (Interaction to Next Paint) | Reacția la interacțiune | 200 ms sau mai puțin | Împarte sarcinile lungi, amână scripturile terțe, reduce costul hidratării |
| CLS (Cumulative Layout Shift) | Stabilitatea vizuală | 0,1 sau mai puțin | Setează lățimea și înălțimea elementelor media, rezervă spațiu pentru reclame și embed-uri |
INP a înlocuit First Input Delay ca Core Web Vital stabil în 2024. Folosește datele de teren (Search Console, Chrome UX Report) ca să judeci și instrumentele de laborator ca să depanezi. Intrarea noastră din glosar despre Core Web Vitals enumeră instrumentele.
Folosește JSON-LD într-un tag script, randat pe server, care descrie ceea ce este vizibil pe pagină:
<script type="application/ld+json">
{"@context": "https://schema.org", "@type": "Article",
"headline": "Running shoes for flat feet",
"datePublished": "2026-10-01",
"author": {"@type": "Person", "name": "Jane Doe"}}
</script>Generează-l din aceleași date ca pagina, ca cele două să nu divergă niciodată, validează-l în CI și evită să-l injectezi printr-un tag manager. Un generator de scheme oferă un șablon de pornire pentru tipurile uzuale.
Sfat
Adaugă verificări SEO în pipeline: oprește build-ul dacă un șablon indexabil nu are titlu sau canonical, dacă o rută returnează 200 pentru un slug necunoscut sau dacă robots.txt din producție conține „Disallow: /”. Aceste regresii se prind ieftin înainte de deploy și costă mult după.
Vizibilitatea în AI începe cu accesul. Decide ce user agents AI permiți (GPTBot, OAI-SearchBot, ClaudeBot, PerplexityBot și alții) și scrie reguli explicite în robots.txt; ghidul nostru despre robots.txt pentru crawlerele AI explică diferența dintre boții de antrenament și cei de căutare. Apoi asigură-te că textul, prețurile, specificațiile și FAQ-ul sunt în HTML-ul inițial, folosește titluri și tabele semantice în loc de imagini cu text și păstrează paginile suficient de ușoare ca să fie descărcate repede. Un fișier llms.txt poate rezuma paginile-cheie pentru instrumentele AI, dar niciun asistent important nu a confirmat că se bazează pe el, deci tratează-l ca opțional.
Sorank este produsul nostru: un software de SEO și GEO autopilot. Dezvoltatorii îl întâlnesc în special prin integrările sale: publică articole pe WordPress, Shopify, Webflow sau Wix, sau pe orice stack personalizat printr-un webhook, cum este descris pe pagina de instalare. Chatul SEO răspunde la întrebări despre site-ul tău în conversație, iar Urmărirea mențiunilor AI verifică în fiecare lună dacă ChatGPT, Claude și Gemini citează brandul tău.

Versiunea scurtă: livrează din server HTML complet, coduri de stare sincere și etichete head corecte, apoi măsoară performanța pe utilizatori reali. Asta servește Googlebot și crawlerele AI care nu rulează JavaScript. Ca să umpli un site bine construit cu conținut care se clasează, vezi planurile Sorank, de la 49$ pe lună, cu o perioadă de probă gratuită de 3 zile.
Nu întotdeauna pentru Google, care randează JavaScript, dar adaugă întârziere și risc, iar majoritatea crawlerelor AI nu execută deloc JavaScript. Pentru paginile care trebuie să se claseze sau să fie citate, livrează conținutul principal și linkurile în HTML-ul inițial, cu randare pe server, generare statică sau pre-randare, și păstrează randarea pe client pentru părțile interactive.
Ambele îi spun Google că pagina nu mai există, iar Google renunță treptat la URL în ambele cazuri. Un 410 arată că eliminarea este intenționată și permanentă, ceea ce unele echipe preferă pentru conținutul șters deliberat. Cel mai important este să nu returnezi un 200 cu un mesaj de eroare, pentru că asta creează soft 404.
Fac parte din semnalele de experiență a paginii ale Google, pe care Google le descrie drept un factor printre multe altele, cu relevanța și calitatea conținutului cântărind mai mult. În practică, funcționează ca departajare între pagini similare și au un efect puternic asupra conversiilor, deci atingerea pragurilor merită efortul.
AU ÎNCERCAT SORANK ÎNAINTEA TA
