Meta robots: noindex, nofollow și paginile pe care vrei să le ascunzi de Google
Meta robots controlează indexarea per pagină. Diferă de robots.txt și are capcane clasice. Cum setezi noindex,follow corect și când îl vrei.
Cuprins
Meta robots este tag-ul HTML care controlează, per pagină, dacă Google poate indexa conținutul și poate urmări linkurile. Se pune în <head> ca <meta name="robots" content="..."> și este citit de Googlebot la fiecare crawl al paginii. Diferă fundamental de robots.txt: acela blochează accesul Googlebot la pagină; meta robots permite accesul, dar limitează ce face Googlebot cu informația găsită.
Confuzia clasică este să le folosești pe amândouă simultan pentru aceeași pagină, crezând că dublezi protecția. Efectul este opus: dacă robots.txt blochează crawlarea, meta robots devine invizibil, iar pagina poate rămâne în index pe baza semnalelor externe (linkuri de pe alte site-uri).
Ce este meta robots și cum diferă de robots.txt?
Cele două mecanisme operează la niveluri diferite ale procesului de căutare:
- robots.txt controlează crawling-ul: dacă Googlebot are voie să acceseze URL-ul. Este un fișier la rădăcina domeniului, citit înainte ca Googlebot să viziteze paginile. Dacă o pagină este blocată în robots.txt, Googlebot nu o vizitează deloc.
- Meta robots controlează indexarea: dacă Googlebot poate păstra conținutul în index și poate urmări linkurile, după ce a accesat deja pagina. Este o instrucțiune per-pagină, în
<head>.
Consecința practică: o pagină pe care o vrei scoasă din index, dar care are linkuri externe din alte site-uri, trebuie să fie crawlabilă. Dacă blochezi crawlarea cu robots.txt, Google nu poate citi instrucțiunea noindex; pagina continuă să apară în index, fără titlu și fără descriere (Google știe că există din linkurile externe, dar nu îi cunoaște conținutul). Pentru a noindex efectiv, lași crawlarea deschisă, pui meta robots noindex, și abia după ce pagina dispare din index poți restricționa crawlarea dacă vrei să economisești bugetul de crawl.
Care sunt directivele utile: noindex, nofollow, noarchive, nosnippet?
Meta robots acceptă mai multe directive combinate în atributul content, separate prin virgulă:
- noindex. Spune Googlebot să nu includă pagina în rezultatele de căutare. Pagina poate fi în continuare crawlată; Google o vizitează, citește noindex, și o omite din index.
- nofollow. Spune Googlebot să nu urmeze linkurile din pagină și să nu transfere autoritate (PageRank) prin ele. Nu afectează indexarea paginii în sine. Diferit de atributul
rel="nofollow"pe un singur link: meta robots nofollow se aplică tuturor linkurilor de pe pagină. - noarchive. Google nu păstrează o copie cache a paginii. Util pentru pagini cu conținut sensibil la timp (prețuri live, documente legale cu versiuni) unde versiunile vechi cached ar fi înșelătoare.
- nosnippet. Previne afișarea unui fragment de text în rezultatele de căutare. Google afișează în continuare titlul și URL-ul, dar nu extrage text de pe pagină pentru descriere. Acoperă și featured snippets.
- max-snippet:N, max-image-preview:[none|standard|large]. Variante mai fine ale nosnippet pentru a limita lungimea fragmentului sau dimensiunea imaginii previzualizate fără a le elimina complet.
Combinația cea mai frecventă este noindex,follow: pagina nu apare în search, dar linkurile de pe ea continuă să transfere semnale. Folosită pe pagini de paginare, filtre URL, sau pagini utilitare care nu trebuie indexate dar care leagă conținut valoros.
Cum am ales pe crawlerra.com noindex pentru pagina 404?
Pagina 404 pe crawlerra.com este un component Angular dedicat, NotFoundComponent, care emite <meta name="robots" content="noindex,follow"> în <head> la randare. Alegerea este deliberată și acoperă două cerințe simultane.
Prima: Google trebuie să vadă că pagina nu există pentru a o scoate din index (dacă a fost indexată anterior) sau pentru a nu o adăuga. Dacă am bloca URL-urile 404 în robots.txt, Googlebot nu ar putea citi instrucțiunea noindex; paginile ar rămâne în index cu titlul absent și cu o descriere extrasă din linkuri externe. noindex,follow în meta rezolvă asta: Googlebot accesează pagina, citește instrucțiunea, și omite URL-ul din index.
A doua: follow, nu nofollow. Pagina 404 conține navigația și footer-ul, care au linkuri valoroase către restul site-ului. Blocând urmărirea linkurilor cu nofollow am tăia transferul de autoritate fără niciun câștig. URL-ul rămâne accesibil pentru oricine ajunge pe un link rupt; singurul efect intenționat este că Google nu indexează conținutul paginii de eroare.
Tag-ul este injectat în SSR, nu client-side, deci este prezent în HTML-ul returnat de server, vizibil la view-source: fără JavaScript. Randarea server-side este necesară pentru orice instrucțiune meta citită de crawleri: Googlebot execută JavaScript, dar nu garantat la fiecare crawl; instrucțiunile critice de indexare nu depind de hydration. Aceeași regulă se aplică tag-urilor hreflang și blocurilor JSON-LD: toate trebuie să fie în HTML-ul inițial al serverului.
Când vrei explicit noindex,follow pe paginare și filtrare?
Paginare și filtrare sunt cazurile canonice de noindex,follow. Paginile de forma /produse?page=2 sau /blog?tag=seo&sort=recent produc conținut derivat din pagini deja indexate: nu adaugă valoare nouă pentru un utilizator care caută, dar conțin linkuri valoroase către pagini de produs sau articole individuale.
Strategia standard pentru aceste URL-uri:
- Pune
meta robots noindex,followpe toate paginile de paginare de la pagina 2 în jos. Pagina 1 (URL-ul de bază) rămâne indexabilă. - Pentru filtre URL, evaluează dacă combinația filter-URL produce conținut unic și valoros. Dacă da (de exemplu, o categorie de produse cu o pagină editorială dedicată), indexează. Dacă nu (o combinație de 3 filtre simultane fără conținut propriu), noindex,follow.
- Folosește
rel="canonical"împreună cu noindex pentru a semnala în plus că URL-ul de bază (fără parametri) este versiunea preferată. Canonical și noindex nu se exclud reciproc, dar canonical fără noindex este de obicei suficient; noindex fără canonical lasă Google să interpreteze libera alegere.
Alternativa pe care o mai vezi este blocarea filtrelor în robots.txt. Problema este că, în timp, aceste URL-uri acumulează linkuri interne și externe; dacă le blochezi cu robots.txt fără să fi rezolvat înainte indexarea, ajungi cu URL-uri blocate care apar în index fără conținut, semnalizând lui Google că site-ul are probleme de arhitectură. Mai simplu: noindex,follow acoperă cazul fără riscul de a îngheța accidental URL-uri în index.
Care sunt capcanele frecvente cu meta robots?
- noindex în meta și Disallow în robots.txt simultan. Capcana clasică descrisă mai sus: blochezi crawlarea și pui noindex, dar Googlebot nu poate citi instrucțiunea. Pagina rămâne în index pe baza linkurilor externe, fără snippet, cu un titlu generat din URL. Soluția: dacă vrei noindex efectiv, lasă crawlarea deschisă.
- Meta robots injectat doar client-side. Dacă tag-ul este adăugat prin JavaScript după hydration, nu este garantat că Googlebot îl vede la fiecare crawl. Instrucțiunile de indexare trebuie să fie în HTML-ul returnat de server. Verifici cu
curl -sS <URL> | grep -i "meta name=\"robots\"": dacă rezultatul e gol, tag-ul nu este în SSR. - Ordinea greșită a directivelor. Unele directive mai vechi aveau sensibilitate la ordine; în prezent Google le parsează independent. Totuși, o scriere dezordonată ca
content="follow,noindex,noarchive,index"cu directive contradictorii (noindex și index simultan) produce comportament nedefinit. Google aplică directiva mai restrictivă, dar nu poți conta pe consistență între crawleri. Fii explicit și evită contradicțiile. - noindex pe pagini cu conținut valoros trimis în sitemap. Dacă o pagină apare în sitemap.xml și are și meta robots noindex, există un conflict de semnal: sitemap-ul spune "indexează-mă", meta robots spune "nu mă indexa". Google respectă, în general, meta robots, dar situația creează confuzie la audit și poate întârzia scoaterea din index. Elimină URL-urile noindex din sitemap.
- nofollow pe pagini cu navigație principală. Dacă pui nofollow pe o pagină care conține meniul principal sau breadcrumb-urile, tai transferul de autoritate de pe acea pagină către întregul site. Gândește-te la ce linkuri are pagina înainte de a pune nofollow la nivel de pagină, nu pe linkuri individuale.
Întrebări frecvente
Diferența dintre meta robots și robots.txt este importantă?
Da, pentru că controlează lucruri diferite. robots.txt spune Googlebot să nu crawleze o pagină. Meta robots spune Googlebot să nu indexeze conținutul paginii, deși îl poate accesa. Dacă blochezi crawlarea prin robots.txt și pui noindex în meta, Google nu poate citi instrucțiunea noindex, iar pagina riscă să rămână în index prin semnale externe (linkuri).
noindex,follow sau noindex,nofollow?
De obicei noindex,follow. follow permite Googlebot să urmeze linkurile din pagină și să distribuie PageRank mai departe. nofollow blochează și transferul de autoritate. Dacă pagina are linkuri valoroase către restul site-ului (navigație, breadcrumb), folosește follow; dacă e izolată complet și nu vrei să transferi niciun semnal, nofollow.
Cât durează până Google scoate o pagină noindex din index?
De la câteva zile la câteva săptămâni, în funcție de rata de re-crawl. Google trebuie să recrawleze pagina, să citească meta robots noindex, și abia atunci o elimină. Nu e instant. Poți accelera prin Google Search Console, cerând re-indexare a URL-ului (paradoxal, asta grăbește scoaterea, nu intrarea).
Pot pune meta robots noindex pe pagini deja blocate în robots.txt?
Nu are efect dacă Googlebot nu poate crawla pagina. Meta robots este o instrucțiune HTML pe care Google o citește doar dacă accesează pagina. Dacă robots.txt blochează accesul, meta robots este invizibil. Alege una: ori lași crawlarea liberă și controlezi cu meta robots, ori blochezi cu robots.txt (și accepți că pagina poate rămâne în index din alte semnale).
X-Robots-Tag în header HTTP face același lucru?
Da, și este singura variantă pentru fișiere non-HTML. Un PDF, un fișier CSV sau o imagine nu au HTML. X-Robots-Tag trimis în răspunsul HTTP server-side are același efect ca meta robots pentru HTML: noindex, nofollow, noarchive funcționează identic. Util și pentru controlul mai granular la nivel de server sau proxy.