robots.txt je mali tekstualni fajl koji kompatibilnim crawlerima, odnosno robotima pretraživača, daje instrukcije o tome kojim URL-ovima mogu da pristupe na sajtu. U kontekstu robots.txt SEO prakse, pravilno podešen fajl može da pomogne u kontroli crawl budžeta i smanjenju nepotrebnog opterećenja servera. Pogrešna direktiva, međutim, može da ograniči preuzimanje važnih stranica i oteža njihovo otkrivanje ili prikazivanje u rezultatima pretrage.
U nastavku su objašnjeni struktura fajla, najvažnije direktive, granice robots.txt kontrole i postupak provere pre objavljivanja izmena. Posebna pažnja posvećena je obrascima za URL-ove, parametrima, razlikama između hostova i praktičnom testiranju.
Šta je robots.txt i čemu služi
Robots.txt je fajl koji se postavlja u koren konkretnog hosta, na primer:
https://www.example.rs/robots.txt
Njegova osnovna namena je da crawlerima, odnosno programima koji posećuju i preuzimaju URL-ove, saopšti koje delove sajta ne treba da obilaze. Pravila se primenjuju prema user-agentu, odnosno tipu crawlera. Reč je o instrukcijama za crawlere koji ih podržavaju, a ne o univerzalnoj zabrani pristupa koju primenjuju svi programi.
Važno je razlikovati tri pojma:
- Crawl – preuzimanje i obrada URL-a od strane crawlera.
- Indeksiranje – procena da li sadržaj treba da bude sačuvan u indeksu pretraživača.
- Prikaz u rezultatima – odluka da li će indeksirana stranica biti prikazana za konkretnu pretragu.
Robots.txt prvenstveno usmerava ponašanje kompatibilnih crawlera. Ne predstavlja pouzdan mehanizam za uklanjanje stranice iz Google indeksa i nije bezbedno mesto za tajne podatke.
Osnovna struktura robots.txt fajla
Pravilo se sastoji od user-agenta i jedne ili više direktiva. Jednostavan primer izgleda ovako:
User-agent: *
Disallow: /admin/
Disallow: /private/
Allow: /private/public-file.pdf
Sitemap: https://www.example.rs/sitemap.xml
User-agent: * označava da se pravilo odnosi na sve crawlere na koje se pravilo može primeniti. Direktiva Disallow govori kompatibilnom crawleru da ne posećuje navedenu putanju, dok Allow može da dozvoli izuzetak unutar blokiranog direktorijuma, u skladu sa podrškom konkretnog crawlera.
Najčešće direktive
| Direktiva | Namena | Primer |
|---|---|---|
User-agent | Određuje na koje crawlere se pravilo odnosi. | User-agent: * |
Disallow | Navodi putanju koju kompatibilni crawler ne treba da posećuje. | Disallow: /cart/ |
Allow | Dozvoljava izuzetak iz blokirane putanje, kada je podržan. | Allow: /cart/public-info/ |
Sitemap | Navodi lokaciju XML sitemap-a. | Sitemap: https://www.example.rs/sitemap.xml |
Kako napisati robots.txt bezbedno
1. Počnite od stvarne potrebe
Ne ograničavajte putanje samo zato što izgledaju tehnički. Prvo proverite da li crawler zaista treba da pristupa njima i da li pravilo može da spreči otkrivanje važnih resursa ili stranica.
2. Blokirajte URL obrasce koji stvaraju nepotreban crawl
Česti kandidati mogu biti interne administrativne putanje, određeni parametri za filtriranje ili privatni delovi aplikacije. Pravilo mora biti dovoljno precizno da ne obuhvati korisne URL-ove.
User-agent: *
Disallow: /admin/
Disallow: /internal-search/
Disallow: /account/
3. Ne blokirajte CSS i JavaScript bez jasnog razloga
Pretraživačima je često potrebno da učitaju resurse kako bi pravilno razumeli izgled i funkcionalnost stranice. Ograničavanje resursa može otežati renderovanje i procenu sadržaja.
4. Dodajte sitemap
Direktiva Sitemap može da navede lokaciju XML sitemap-a. To nije zamena za kvalitetnu internu strukturu linkova niti garantuje indeksiranje, ali crawleru daje koristan signal o lokaciji liste URL-ova.
Robots.txt u SEO-u: wildcard obrasci i URL parametri
Pravila mogu da obuhvate više URL-ova, ali obrazac treba proveriti na konkretnim primerima. Zvezdica (*) se u implementacijama koje je podržavaju koristi kao zamenski znak, dok znak dolara ($) može da označi kraj URL obrasca. Na primer, Disallow: /*.pdf$ može da cilja URL-ove koji se završavaju nastavkom .pdf. Ne treba pretpostaviti da će svaki crawler isto tumačiti napredne obrasce, pa je sigurnije koristiti što jednostavnije i jasnije putanje.
Parametri zahtevaju dodatnu opreznost. Pravilo poput Disallow: /*?sort= može da ograniči URL-ove za sortiranje, ali mora se proveriti da li se isti parametar pojavljuje i na korisnim stranicama. Slično tome, blokiranje svih URL-ova sa upitnikom može nenamerno obuhvatiti važne filtere, jezičke verzije ili druge funkcionalnosti. Pre objavljivanja napravite listu stvarnih kombinacija, uključujući različit redosled parametara, završnu kosu crtu i URL-ove sa fragmentima ili kodiranim znakovima.
Host, protokol i putanja nisu ista stvar
Robots.txt se proverava za konkretan origin. Verzija sa www i verzija bez www, kao i HTTP i HTTPS, mogu imati različite hostove ili protokole i zato zahtevaju posebnu proveru. Ako sajt preusmerava jednu varijantu na drugu, ipak proverite da li je robots.txt dostupan na hostu koji crawler zaista posećuje.
Isto važi za poddomene. Pravilo na example.rs/robots.txt ne treba automatski posmatrati kao pravilo za shop.example.rs. Svaki poddomen može imati sopstvenu konfiguraciju i sopstvenu URL strukturu. Pre izmene zabeležite koji host pripada produkciji, koji staging okruženju i da li CDN ili proxy vraća očekivani sadržaj fajla.
Robots.txt i noindex nisu ista stvar
Ovo je jedna od najvažnijih razlika u tehničkom SEO-u:
- robots.txt ograničava posetu crawlera određenoj putanji;
- noindex je direktiva za neindeksiranje stranice, kada crawler može da je pročita;
- canonical signalizira preferiranu verziju između sličnih ili dupliranih URL-ova.
Ako je URL ograničen u robots.txt, crawler možda neće moći da vidi noindex na toj stranici. Zato robots.txt nije dobar način za uklanjanje već indeksirane stranice. Za detaljniji pregled šireg procesa, pogledajte naš vodič o SEO optimizaciji.
Najčešće greške u robots.txt fajlu
Blokada celog sajta
User-agent: *
Disallow: /
Ovo govori crawlerima na koje se pravilo odnosi da ne posećuju putanje sajta. Takva postavka može biti namerna na razvojnom okruženju, ali je veoma rizična ako dospe na produkcioni sajt.
Pogrešno napisana putanja
Disallow: /blog može imati širi efekat nego što urednik očekuje, u zavisnosti od URL strukture i implementacije crawlera. Pravila testirajte na konkretnim primerima, uključujući srodne putanje kao što su /blog/, /blogging/ i URL-ovi sa parametrima.
Oslanjanje na komentare kao zaštitu podataka
Robots.txt je javno dostupan. Sve što navedete u njemu može svako da pročita, uključujući nazive osetljivih putanja. Za zaštitu aplikacije koristite autentikaciju, autorizaciju i odgovarajuće server-side kontrole.
Blokiranje važnih stranica bez provere efekta
Pre ograničavanja proverite da li se putanja koristi kao odredište internih linkova, da li je navedena u sitemap-u i da li je potrebna za korisnički tok ili renderovanje stranice.
Kako testirati robots.txt
- Otvorite fajl direktno na
/robots.txtza svaki relevantan host i proverite statusni kod i sadržaj. - Prođite kroz svaku direktivu i zapišite URL-ove na koje treba da utiče.
- Testirajte dozvoljene i ograničene primere, posebno granične putanje.
- Proverite verziju sa i bez
www, HTTP i HTTPS, kao i produkcionu i staging verziju. - Za wildcard i parametre testirajte više kombinacija: tačno poklapanje, sličan prefiks, različit redosled parametara i završetak URL-a.
- U Google Search Console proverite izveštaje o indeksiranju i URL Inspection za važne URL-ove.
- Nakon izmene pratite crawl statistiku, greške i neočekivane promene u indeksiranju.
Google Search Console ne treba posmatrati kao zamenu za pregled samog fajla. Robots.txt mora biti validan, dostupan i logičan i kada se proverava direktnim pristupom. Ako je moguće, izmene prvo pregledajte u kontrolisanom okruženju, a zatim ih objavite uz zabeleženu prethodnu verziju radi lakog vraćanja.
Praktičan primer za tipičan sajt
User-agent: *
Disallow: /admin/
Disallow: /account/
Disallow: /cart/
Disallow: /checkout/
Disallow: /internal-search/
Sitemap: https://www.example.rs/sitemap.xml
Ovaj primer je samo početna tačka. Ne treba ga kopirati bez provere CMS-a, parametara, JavaScript funkcionalnosti, međunarodnih verzija i stvarne strukture URL-ova. Posebno proverite da li neka od navedenih putanja sadrži javne stranice koje treba da ostanu dostupne crawlerima.
Kontrolna lista pre objavljivanja
- Fajl se nalazi u korenu pravog hosta i koristi ispravan protokol.
- Nema slučajne direktive
Disallow: /na produkciji. - Važne stranice, resursi i direktorijumi nisu nenamerno ograničeni.
- Ograničene su samo putanje čiji crawl zaista nije potreban.
- Wildcard obrasci i parametri provereni su na pozitivnim i negativnim primerima.
- XML sitemap ima ispravan URL i sadrži kanonske URL-ove.
- Robots.txt se ne koristi za čuvanje tajni ili zaštitu privatnog sadržaja.
- Izmene su proverene na konkretnim URL primerima i dokumentovane.
Zaključak
Robots.txt je alat za usmeravanje crawl-a, a ne univerzalno rešenje za upravljanje indeksiranjem. Najbezbedniji pristup je da svaka blokada ima jasno opravdanje, da se pravila testiraju na stvarnim URL-ovima i da se njihov efekat prati kroz server logove, Search Console i crawl alate. Posebnu pažnju zaslužuju razlika između robots.txt i noindex direktive, produkciono okruženje, hostovi i putanje koje sadrže parametre ili dinamički generisan sadržaj.
Povezane teme: URL parametri i SEO: kada prave duplikate, crawl waste i probleme sa indeksiranjem · Crawlability i indeksiranje: kako pronaći i rešiti SEO probleme · Tehnički SEO: kako poboljšati crawlability, indeksiranje i arhitekturu sajta