Модул 3 · 3.3
robots.txt: какво да блокирате и какво не
Модул 3: Техническата основа на една страница · Време за четене: 13 минути
Цел на урока: След този урок ще можете да четете и пишете robots.txt, сами да изчислявате дали даден адрес е разрешен за Googlebot, да обяснявате какво се случва при липсващ или недостъпен файл, и ще знаете защо robots.txt не е защита и не е noindex.
Основни понятия: robots.txt (RFC 9309), crawler, група, User-agent, Disallow, Allow, най-дълго съвпадение, еднаква дължина (Allow печели), * и $, Sitemap:, статус код на robots.txt (4xx, 5xx), 500 KiB, 24 часа кеш, не е защита, не е noindex, AI crawlers (Google-Extended, GPTBot)
Табела на входната врата
robots.txt е обикновен текстов файл в основната папка на Вашия сайт, винаги на един и същ адрес: https://www.example.com/robots.txt. Коректният crawler (урок 1.2) първо изисква този файл и прочита кои части от сайта не трябва да посещава. Това е табела на входната врата, а не ключалка: Googlebot и Bingbot я спазват, но злонамереният робот просто прочита табелата и продължава напред.
От 2022 г. протоколът е официален интернет стандарт: RFC 9309. Освен това Google описва точно как Googlebot чете файла. В този урок използваме и двата източника.
Няколко постоянни правила:
- Файлът се намира в основната папка на хоста. robots.txt в
/blog/robots.txtне се чете. - Той важи само за този хост, този протокол и този порт.
https://www.example.com/robots.txtне важи заhttps://shop.example.com/; той се нуждае от собствен файл. - Това е обикновен текст в UTF-8.
Как е изграден файлът
User-agent: *
Disallow: /kolichka/
Disallow: /zapisi
Allow: /zapisi/idei
User-agent: Googlebot
Disallow: /chernovi/
Sitemap: https://www.example.com/sitemap.xmlФайлът се състои от групи. Една група започва с един или повече редове User-agent:, последвани от правилата Disallow: (не посещавай) и Allow: (посещавай). Пътят след Disallow: е началото на адрес: Disallow: /zapisi блокира /zapisi, /zapisi?q=rozi и също /zapisiarhiv, защото всички започват с /zapisi.
Редът Sitemap: не принадлежи към никоя група и казва къде се намира Вашата карта на сайта (урок 3.4). Google изисква пълен адрес с https:// и име на хоста.
Disallow: без път не блокира нищо. Disallow: / блокира всичко.
Коя група важи?
Crawler-ът избира една група: тази с най-конкретното име, което му подхожда. Така Googlebot следва групата User-agent: Googlebot, ако тя съществува, и тогава напълно пренебрегва групата *. В примера по-горе Googlebot следователно може да влиза в /kolichka/: това правило е само в групата *. Това е една от най-честите грешки: който създава отделна група за Googlebot, трябва да повтори там всички правила, които важат и за Google.
Името не е чувствително към главни и малки букви (googlebot = Googlebot). Ако има две групи за един и същ crawler, Google ги обединява.
Кое правило печели?
В рамките на групата един адрес може да попада под няколко правила. Тогава важи следното:
- Печели най-дългото съвпадащо правило (най-конкретният път).
- Ако
AllowиDisallowса точно еднакво дълги, печелиAllow. Google нарича това "най-малко ограничаващото правило".
Два знака имат специално значение:
| Знак | Значение | Пример | Засяга | Не засяга |
|---|---|---|---|---|
* | нула или повече произволни знака | Disallow: /*?sesiya= | /rozi?sesiya=12 | /rozi?tsvyat=cherven |
$ | край на адреса | Disallow: /*.pdf$ | /folder.pdf | /folder.pdf?v=2 |
Примерно изчисление с групата * от по-горе, за crawler-а Bingbot (който няма собствена група):
| Адрес | Съвпадащи правила | Резултат |
|---|---|---|
/kolichka/ | Disallow: /kolichka/ | не е разрешено |
/zapisi/idei | Disallow: /zapisi (7 знака) и Allow: /zapisi/idei (12) | разрешено: най-дългото печели |
/zapisi?q=rozi | Disallow: /zapisi | не е разрешено |
/bulchinski-buketi | няма | разрешено |
/robots.txt | (винаги) | разрешено: самият robots.txt винаги е позволен |
Ако файлът липсва или сървърът засича
Какво прави Google зависи от статус кода, с който Вашият сървър отговаря на /robots.txt:
| Отговор | Какво прави Google |
|---|---|
| 200 (намерен) | Прочита правилата |
| Пренасочване (301, 302) | Следва поне пет стъпки; след това Google го третира като 404 |
| 4xx, например 404 или 403 (с изключение на 429) | Сякаш няма robots.txt: всичко е разрешено |
| 5xx или няма връзка | През първите 12 часа Google не обхожда сайта и опитва отново; след това до 30 дни използва последната добра версия от кеша. Ако проблемът продължи, докато сайтът иначе работи, Google действа така, сякаш няма robots.txt |
Следователно липсващият robots.txt не е проблем: тогава всичко е разрешено. robots.txt, който връща сървърна грешка, обаче е проблем: тогава Google временно спира обхождането. RFC 9309 е още по-строг: при недостъпен файл crawler-ът трябва да приеме, че всичко е забранено.
Освен това:
- Google чете най-много 500 KiB; всичко след това се пренебрегва.
- Google обикновено пази robots.txt в кеша до 24 часа. Следователно една промяна не действа веднага. В Search Console в Настройки ще намерите отчета за robots.txt: коя версия Google е изтеглил последно, с грешки и предупреждения, и бутон за повторно изтегляне.
- Google разпознава само
User-agent,Allow,DisallowиSitemap. Правила катоCrawl-delayилиNoindexGooglebot пренебрегва.
Какво robots.txt не прави
Не е защита
Всеки може да прочете Вашия robots.txt, включително и злонамерените. Правило Disallow: /beheer-oud/ всъщност посочва къде има нещо интересно. Самият RFC 9309 казва: правилата не са форма на защита на достъпа. Истинското ограничаване става с парола или като накарате сървъра да отказва достъп, например с .htaccess (вижте Прочетете още).
Не е noindex
Това е най-важният урок. robots.txt управлява обхождането, а не индексирането (урок 1.3). Google пише буквално, че robots.txt не е начин да държите страница извън Google. Ако други сайтове сочат към блокиран адрес, адресът все пак може да се появи в резултатите от търсенето, само без описание.
Ако искате да държите страница извън резултатите от търсенето, използвайте noindex (в <meta name="robots"> или в HTTP заглавието X-Robots-Tag) или поставете страницата зад парола. И внимавайте за класическия капан: ако поставите страница с noindex и в robots.txt на Disallow, Google не може да посети страницата и следователно никога няма да прочете noindex.
Не блокирайте части, от които Google се нуждае
Не блокирайте папки със stylesheets, скриптове или изображения, които са нужни на страницата Ви, за да се показва правилно. Google разглежда страницата Ви така, както го прави браузърът; без тези файлове Google разбира страницата по-зле.
AI crawlers
Все повече компании събират уеб страници за изкуствен интелект. Към някои от тях можете да се обърнете чрез robots.txt:
Google-Extendedне е отделен робот, а име в robots.txt, с което посочвате дали Google може да използва съдържанието Ви за обучение на моделите Gemini и за grounding. Google пише, че това не влияе на включването или позицията Ви в Google Търсене.GPTBotна OpenAI събира страници, които могат да се използват за обучение на модели.OAI-SearchBotе за функцията за търсене на ChatGPT: ако го блокирате, сайтът Ви няма да се появява в отговорите от търсене на ChatGPT.
User-agent: GPTBot
Disallow: /Дали искате това, е избор, а не техническа необходимост. Ако по невнимание блокирате робот за търсене (Googlebot, Bingbot, OAI-SearchBot), ще бъдете намирани по-трудно там.
На практика: къде се намира Вашият robots.txt?
- AI Builder на WebOké при публикуване сам създава robots.txt с
User-agent: *,Allow: /и редSitemap:. Ако зададете сайта да не се индексира или ако е безплатна демо версия, там стоиDisallow: /. - WordPress създава виртуален robots.txt с препратка към картата на сайта. Ако сами поставите файл
robots.txtв уеб папката, той има предимство. - Собствен сайт в хостинг пакет: поставяте
robots.txtв уеб папката (при DirectAdminpublic_html) чрез File Manager или FTP.
При други доставчици работи по подобен начин: файлът винаги трябва да е достъпен на /robots.txt на Вашия хост.
Обобщение
- robots.txt се намира на
/robots.txtна всеки хост и казва на коректните crawlers какво не трябва да посещават. - Crawler-ът следва една група (най-конкретното име, иначе
*). В рамките на групата печели най-дългото правило; при еднаква дължина печелиAllow. - 404 означава "всичко е разрешено", сървърната грешка кара Google временно да спре обхождането. Google чете 500 KiB и кешира до 24 часа.
- robots.txt не е защита и не е noindex. Не блокирайте страница с
noindexв robots.txt. - AI crawlers като
GPTBotи иметоGoogle-Extendedможете да управлявате отделно, без последици за Google Търсене.
Тест
Задача
Задача A3.3: Проверка на Вашия robots.txt. Въведете своя домейн, а до него три адреса от собствения си сайт (например началната страница, продуктова страница и количката или страницата за търсене), като за всеки адрес посочите очакването си: може ли Googlebot да го обхожда, да или не? Програмата изтегля Вашия robots.txt, проверява статус кода, размера, групите и реда Sitemap: и изчислява за всеки адрес какво е разрешено за Googlebot според правилата от този урок. Вярно ли е Вашето очакване? Нямате собствен сайт? Използвайте www.wikipedia.org.
Прочетете още
Стъпките в тези статии важат за панелите на WebOké; при други доставчици работи по подобен начин.
- Ръководство за DirectAdmin 11.1: Отваряне на File Manager: директориите във Вашия пакет
- Блокиране на файлове чрез .htaccess, например plugin-googlemap2-proxy.php
- Ръководство за DirectAdmin 11.4: Показване и редактиране на скрити файлове като .htaccess
- Google Search Central, Как Google тълкува robots.txt: https://developers.google.com/search/docs/crawling-indexing/robots/robots_txt
- Google Search Central, Въведение в robots.txt: https://developers.google.com/search/docs/crawling-indexing/robots/intro
- RFC 9309, Robots Exclusion Protocol: https://www.rfc-editor.org/rfc/rfc9309.html
- Google, Преглед на crawlers (Google-Extended): https://developers.google.com/crawling/docs/crawlers-fetchers/google-common-crawlers
- OpenAI, Преглед на crawlers (GPTBot, OAI-SearchBot): https://developers.openai.com/api/docs/bots
- Как да премахнете страница от Google: robots.txt или noindex?
- Да бъдете намерени онлайн 1.3: Sitemap и robots.txt в AI Builder
- Да бъдете намерени онлайн 1.4: Sitemap и robots.txt в WordPress и във Вашия собствен сайт
- Безплатен курс по WordPress 9.2: Видимост в търсачките: основите
