Redirect loop

Cunoscut și ca: buclă de redirecturi, buclă de redirecționări, redirection loop, infinite redirect loop
Ce este un redirect loop?
Pe scurt
Un redirect loop, numit și buclă de redirecturi, apare când redirecționările trimit repetat o cerere între aceleași URL-uri, fără a ajunge la o resursă finală. Browserul sau crawlerul nu poate încărca pagina dorită. Bucla poate fi cauzată de reguli contradictorii configurate prin HTTP, HTML sau JavaScript.
Un redirect loop este o succesiune ciclică de redirecționări. De exemplu, URL-ul A redirecționează către URL-ul B, iar URL-ul B redirecționează înapoi către URL-ul A. Poate exista și un circuit care implică mai multe adrese.
Cum funcționează redirecționarea
În HTTP, serverul poate răspunde cu un cod de stare de redirecționare și cu antetul Location, care indică următorul URL. Browserul solicită apoi adresa primită. Într-o implementare corectă, succesiunea se încheie la o resursă care returnează un răspuns final, precum 200 OK.
Într-o buclă, fiecare destinație generează o nouă redirecționare către un URL solicitat anterior. Pagina finală nu mai este încărcată.
Redirecționările pot fi configurate la nivel de server, printr-un element HTML meta refresh sau prin JavaScript. Redirecționările HTTP se execută înaintea celor JavaScript și HTML. Folosirea simultană a mai multor metode poate produce reguli contradictorii. MDN avertizează că modificarea redirecționărilor HTTP fără actualizarea celor HTML poate cauza o buclă infinită.
Situații frecvente
O buclă poate apărea când două reguli tratează diferit variantele aceluiași URL. Un exemplu este o regulă care trimite de la HTTP la HTTPS, combinată cu alta care trimite în sens invers. Același principiu se aplică variantelor cu și fără www, barelor finale sau regulilor introduse în mai multe straturi ale platformei.
Codul de stare nu definește singur problema. Atât redirecționările permanente, precum 301 și 308, cât și cele temporare, precum 302, 303 și 307, pot participa la un circuit dacă destinațiile sunt configurate greșit.
De ce contează în SEO?
Un redirect loop împiedică accesarea resursei finale. Pentru SEO clasic, acest lucru afectează atât utilizatorii, cât și crawlerele. Googlebot urmează redirecționările, dar o succesiune ciclică nu îi oferă pagina finală care ar trebui procesată pentru indexare.
Google folosește anumite redirecționări permanente ca semnal că destinația ar trebui să fie canonică. Redirecționările temporare nu sunt folosite în același mod de sistemul de indexare. Într-o buclă, relația dintre sursă și destinație devine nefuncțională, iar URL-ul poate apărea în Google Search Console cu o problemă de redirecționare. Pentru un URL individual, verificarea se face prin URL Inspection. Problemele mai largi pot fi analizate în raportul Page indexing.
Fiecare redirecționare adaugă și o cerere HTTP suplimentară. MDN recomandă păstrarea redirecționărilor la minimum și corectarea linkurilor interne care trimit inutil prin redirecturi.
Exemplu
Un magazin online românesc are două reguli active:
https://exemplu.ro/cafea -> https://www.exemplu.ro/cafea
https://www.exemplu.ro/cafea -> https://exemplu.ro/cafea
Prima regulă impune varianta cu www. A doua impune varianta fără www. Browserul și crawlerul sunt trimiși alternativ între cele două adrese, fără să primească pagina produsului.
Soluția este alegerea unei singure variante preferate. Regula pentru varianta alternativă trebuie să trimită către aceasta, iar URL-ul preferat trebuie să returneze pagina finală, nu un alt redirect către sursă.
Cum verifici?
- Deschide URL-ul afectat în browser și notează mesajul referitor la prea multe redirecționări.
- Verifică răspunsurile HTTP și anteturile
Locationcu o comandă precumcurl -IL https://exemplu.ro/pagina. - Urmărește fiecare adresă din succesiune și identifică primul URL care reapare.
- Verifică regulile serverului, inclusiv configurația Apache,
.htaccess, NGINX sau logica din backend. - Controlează separat redirecționările JavaScript și elementele HTML
meta refresh, deoarece pot intra în conflict cu regulile HTTP. - Folosește URL Inspection din Google Search Console pentru URL-uri individuale și raportul Page indexing pentru exemple marcate cu erori de redirecționare.
- Repetă testul după modificare și confirmă că succesiunea ajunge la resursa finală.
Ce trebuie să faci?
- Stabilește URL-ul final și varianta canonică dorită.
- Elimină regulile care trimit destinația înapoi către un URL anterior.
- Preferă redirecționările HTTP la nivel de server atunci când pot fi implementate.
- Nu combina reguli HTTP, JavaScript și
meta refreshfără a verifica ordinea și destinațiile lor. - Actualizează linkurile interne pentru a indica direct URL-ul final.
- Folosește o redirecționare permanentă numai când mutarea nu va fi inversată și una temporară când schimbarea este provizorie.
- Testează variantele HTTP, HTTPS, cu
www, fărăwwwși formele relevante ale căii URL.
Greșeli frecvente
- Se configurează simultan reguli opuse pentru variantele cu și fără `www`.
- Se modifică redirectul HTTP, dar rămâne activ un `meta refresh` către vechiul URL.
- Se verifică doar prima redirecționare, fără urmărirea întregii succesiuni.
- Linkurile interne continuă să indice URL-uri redirecționate, deși pot indica direct destinația.
- Se schimbă codul 301 în 302 fără a corecta circuitul dintre destinații.
Perspectiva SEO 365
La SEO 365, identificăm mai întâi URL-ul final și simplificăm regulile în jurul lui. Verificăm separat serverul, platforma și redirecționările din pagină, astfel încât o regulă contradictorie să nu rămână activă într-un alt strat.