Mihai
17 Sep 2003, 07:51 PM
Tutorial Robots.txt-prima parte-
Motoarele de cautare sunt ‘o comoara de aur’, atat pentru cei care doresc sa gaseasca o informatie pe Internet, cat si pentru realizatorii de pagini web, numerosi vizitatori fiind referiti de SE-uri precum
Google, Altavista sau Lycos.
Deseori insa dorim ca anumite
cuvinte cheie sau chiar pagini ori directoare din cadrul site-ului pe care il administram sa nu fie inregistrate de
spiderii motoarelor de cautare (
spider=programul principal utilizat de motoarele de cautare pentru a include pagini web in baza lor de date; este intalnit si termenul de robot, un program care, asemenea unui browser, descarca pagini de pe Internet). Pentru a limita accesul spider-ilor este folosit un fisier, intitulat
Robots.txt; spider-ii vor cauta in directorul principal al site-ului acest fisier, urmand standardul de excludere prezentat.
Din ce se compune acest fisier special ? Din inregistrari, fiecare cuprinzand doua campuri :
User-agent=numele spider-ului (spre exemplu, in cazul
Google=googlebot si Googlebot-Image pentru Google-imagini,
Altavista=scooter,
Lycos=t-rex, Northern-Light=Gulliver, AllTheWeb=Fast si una sau mai multe informatii de restrictie (
Disallow).
User-agent este descris sub forma : ‘User-agent : googlebot’, pentru Google. In general,
termenul rezervat User-agent este urmat de numele spider-ului. Pentru a include toate motoarele de cautare se utilizeaza caracterul
*.
Pentru a indica restrictiile se foloseste termenul rezervat
Disallow, urmat de directivele de restrictie. Astfel, pentru a limita accesul la fisierul ‘world.xhtml’ pentru spider-ul Google scriem urmatoarele doua linii in fisierul Robots.txt :
User-agent : googlebot
Disallow: world.xhtmlPentru a restrictiona un intreg director, se foloseste urmatoarea sintaxa: Disallow: /folder/, unde ‘folder’ reprezinta numele directorului care urmeaza sa fie restrictionat. O sintaxa de genul Dissalow: /folder, limiteaza accesul atat la directorul folder cat si la toate fisierele intitulate astfel. Sintaxa ‘Dissalow : ‘ nu are nici un efect asupra spider-ului, lasandu-i acestuia libertatea sa indexeze intreg site-ul, pe cand sintaxa ‘Dissalow : /’ restrictioneaza accesul spider-ului in intreg site-ul.
Comentariile in cadrul fiserului Robots.txt sunt precedate de caracterul ‘#’ ; este recomandabil ca fiecare comentariu sa fie scris pe o linie noua (spre exemplu, o sintaxa de genul
QUOTE |
Dissalow : world.htm #acest cod limiteaza accesul la fisierul world.htm este permisa, dar este recomndata o expresie de genul : Dissalow :world.htm #acest cod limiteaza accesul la fisierul world.htm, deorece in primul caz unii spider-i inregistreaza comentariul ca fiind parte a sintaxei propriu-zise, aparand erori. |
Exista deasemenea cazuri in care spider-ii analizeaza in mod diferit un fisier Robots.txt. Spre exemplu, in cazul urmatorului cod:
QUOTE |
User-agent: * Disallow: / # User-agent: {nume_spider} Disallow: |
spider-ul altavista, Scooter, nu va indexa nici o pagina a site-ului, pe cand Slurp va indexa intreg site-ul. Un alt exemplu:
Disallow: /folder1/ /folder2/ /folder3/
Unii spider-i vor ignora spatiile si se vor referi la adresa /folder1/folder2/folder3/, altii vor incerca doar /folder1, iar altii doar /folder3/. Asadar, mare atentie!
Totodata, atentie la locatia fisierului in discutie: acesta trebuie sa se afle la o adresa de genul: www.nume-domeniu.ro/robots.txt
In cadrul realizarii Robots.txt sunt intalnite numeroase greseli, precum: listarea tuturor fisierelor dintr-un director, cand poate fi restrictionat intreg directorul; antepunerea directivei ‚disallow’ in locul directivei ‚user-agent’, confuzie intre numele spider-ului si directivele de restrictie, folosirea unei directive inexistente ‚Allow’ (desi, la un moment dat, s-a discutat si despre o posibila aparitie a acestei directve, majoritatea spider-ilor nu o iau in considerare).
Va urma...
Mihai
20 Jan 2004, 07:28 PM
O noua facilitate introdusa de Google permite excluderea unor fisiere dupa extensii; astfel, o directiva de genul:
CODE |
User-agent: Googlebot Disallow: *.shtml |
Nu va indexa nici o pagina cu extensia shtml. Prezenta caracterului ‚$’ la sfarsitul ultimei linii (Dissallow: *.shtml$) indica lui Google ca particula ‚shtml’ trebuie sa fie prezenta doar la sfarsitul numelui documentului.
Nota: Un regim aparte il are EmailSiphon, un spider care inregistreaza numai adresele de e-mail dintr-o pagina web, dupa care le vinde SPAM-erilor. Este recomandabil sa interziceti acestui spider accesul la site-ul dumneavoastra.
De asemenea, este recomandabil ca scrierea si editarea fisierului Robots.txt sa fie realizata intr-un editor de text simplu, spre exemplu Notepad, pentru a se evita introducerea automata de caractere straine, care vor duce la erori in cadrul citirii de catre spider-i. Deasmenea, daca termenii rezevati ‘User-agent’ si ‘Disallow’ pot fi scrisi fie cu litere mici, fie cu litere mari, in cazul numelui spider-ului si al fisierului situatia este diferita : ‘INDEX.HTML’ si ‘index.html’ sunt percepute ca doua fisiere diferite.
Ca exemple ale fisierului Robots.txt, Google restrictioneaza accesul tuturor spider-ilor la mai multe directoare (www.google.com/robots.txt):
CODE |
User-agent: * Disallow: /search Disallow: /groups Disallow: /images Disallow: /catalogs Disallow: /catalog_list Disallow: /news Disallow: /imgres Disallow: /keyword/ Disallow: /u/ Disallow: /univ/ Disallow: /cobrand Disallow: /custom Disallow: /advanced_group_search Disallow: /advanced_search Disallow: /googlesite Disallow: /preferences Disallow: /setprefs Disallow: /swr Disallow: /url Disallow: /wml Disallow: /bsd? Disallow: /linux? Disallow: /mac? Disallow: /microsoft? Disallow: /unclesam? |
In peisajul romanesc, fisierul Robots.txt poate fi intalnit la mai multe portaluri si forumuri, printre care www.softnews.ro (www.softnews.ro/robots.txt):
CODE |
User-agent: * Disallow: /cgi-bin/ Disallow: /forum/admin/ Disallow: /snadm/ Disallow: /cgi-bin/ Disallow: /include/ Disallow: /js/ Disallow: /mail/ Disallow: /cgi-bin/ Disallow: /prodadm/ Disallow: /Imag/ Disallow: /stats/ |
Exista fisiere care includ doar comentarii, neavand nici un efect asupra robotului, de genul: # Go ahead, take everything. :-)
Interesant este Robots.txt de la Kappa (www.kappa.ro/robots.txt), cel mai mare portal romanesc:
CODE |
# hello robotz sayz webmaster@kappa.ro User-Agent: * Disallow: /include/ |
Spider-ul va indexa fara restrictii, aparand insa erori la citirea ultimului rand (care nu este un comentariu!).
In cazul in care nu aveti acces la directorul root al serverului, puteti sa folositi META-TAG-ul ‘Robots’ in cadrul fiecarei pagini din site. Acest meta-tag va ‘spune’ spider-ilor daca sa indexeze sau nu pagina pe care o viziteaza. Robots trebuie plasat in sectiunea HEAD a fisierului HTML. Exista 4 directive care pot fi folosite cu ROBOTS: index, noindex, follow, nofollow. Index va introduce pagina vizitata in baza de date a motorului de cautare, noindex nu o va indexa, follow va urmari link-urile din pagina, nofollow se va rezuma decat la pagina in cauza. Aceste directive pot fi folosite doua cate doua : index, follow (indexeaza si urmeaza link-urile din pagina), index, nofollow (indexeaza doar pagina vizitata), noindex, follow (nu indexa, dar urmeaza link-urile din pagina), noindex, nofollow (nici o actiune).
Astfel, pentru ca spiderii sa va indexeze o anumita pagina si sa urmeaze link-urile din aceasta (atentie, link-urile din java-script-uri nu sunt luate in consideratie !) codul ar trebui sa arate astfel :
CODE |
<html> <head> <Meta Name="ROBOTS" CONTENT="NOINDEX,NOFOLLOW"> //alte meta-tag-uri si titlul paginii </head> <body> //Sectiunea body a paginii </body> <html> |
Folosirea directivei all este echivalenta cu index, follow, iar folosirea directivei none este echivalenta cu noindex, nofollow.
Desi ar parea normal ca toti spider-ii sa aiba predefinite directivele Index, Follow, Inktomi are ca directive predefinite Index, Nofollow.
Tag-ul Robots nu este CASE-Sensitive (poate fi scris fie cu caractere mari, fie cu litere mici).
Fisier-ul Robots.txt si meta-tag-ul Robots nu sunt singurele metode de a ‘tine departe’ un spider sau chiar o adresa IP de un anumit site. Puteti folosi script-uri Cgi-Perl, fisierul .htaccess, sa folositi pagina de exludere a site-urilor de la Google sau chiar sa provocati o bannare, prin folosirea excesiva a unor cuvinte cheie care nu sunt prezente in paginile site-ului.
-Va urma-
menthoru'
21 Jan 2004, 06:33 PM
Mersi Mihai, desi stiam de chestia asta cate ceva, informatiile tale imi sunt de real folos. 10x man.
Mersi pentru informatie.
Intrebare
De unde se poate lua toata lista cu spider?
Si daca ii pui pe toti in robots.txt marimea fisierului nu influenteaza negativ?
Bine scriu eu 10 spideri in robots.txt dar sunt sigur ca mai sunt atunci care e rezolvarea?
Eu cred ca e mai bine de dat acees la toti siderii si pentru cei care vrei sa inchizi accesul sai mai scrii odata cu restrictii asa ceva va merge?
Si ce se poate de facut cu .htaccess ?
Mihai
3 Mar 2004, 10:18 PM
O lista de
User-Agents poate fi gasita la
http://www.psychedelix.com/agents.htmlQUOTE |
Si daca ii pui pe toti in robots.txt marimea fisierului nu influenteaza negativ? |
Nu.
QUOTE |
Bine scriu eu 10 spideri in robots.txt dar sunt sigur ca mai sunt atunci care e rezolvarea? |
In general 'Disallow' pentru cei care consuma trafic fara sens.
QUOTE |
Eu cred ca e mai bine de dat acees la toti siderii si pentru cei care vrei sa inchizi accesul sai mai scrii odata cu restrictii asa ceva va merge? |
Nu, nu merge.
QUOTE |
Si ce se poate de facut cu .htaccess ? |
.htaccess nu prea are legatura cu robots.txt.
In curand voi publica un tutorial pentru
.htacces!
Mihai
13 Jun 2004, 09:16 PM
Microsoft a introdus pentru motorul sau de cautare o noua sintaxa pentru fisierul Robots.txt
Astfel, spider-ul msnbot recunoaste comanda Crawl-Delay - aceasta reprezentand timpul (in secunde) pe care trebuie sa-l astepte spider-ul inainte de a citi o alta pagina de pe server.
Exemplu:
CODE |
User-Agent: msnbot Crawl-Delay: 10 |
In acest caz, spiderul intervalul de asteptare inainte de a vizita o noua pagina pe server este de 10 secunde.
O comanda foarte utila, mai ales pentru site-urile foarte vizitate, comanda introdusa pentru prima data pentru crawler-ul Inktomi.