Як налаштувати robots.txt: синтаксис, приклади та типові помилки
SEOAudit8 хв читання
Файл robots.txt лежить у корені сайту й підказує сканерам пошукових систем, які адреси їм можна відвідувати. Налаштувати його можна за кілька хвилин, але помилка в одному рядку здатна закрити від сканування весь сайт. Тому файл варто писати свідомо й перевіряти після кожної зміни.
Нижче: як влаштований синтаксис за стандартом RFC 9309, за яким правилом сканер обирає між Allow і Disallow, чому Disallow не видаляє сторінку з індексу, які помилки трапляються найчастіше та як швидко перевірити свій файл. Окремо торкнемося правил для ШІ-краулерів.
Що таке robots.txt і де він має лежати
Robots Exclusion Protocol описаний у стандарті RFC 9309. Файл це звичайний текст у кодуванні UTF-8, який віддається за адресою /robots.txt у корені хоста. Для кожного поєднання протоколу, домену й порту діє власний файл: https://example.com/robots.txt не керує піддоменом blog.example.com, а той, у свою чергу, потребує свого файлу.
Файл складається з груп. Кожна група починається з одного або кількох рядків User-agent, після яких ідуть правила Allow і Disallow. Назви директив не залежать від регістру, а ось шляхи залежать: /Admin/ і /admin/ це різні адреси.
Пам'ятайте про два обмеження. По-перше, robots.txt це прохання, а не захист: коректні сканери його виконують, але файл публічний, і будь-хто бачить, що ви в ньому перелічили. Ховати там адреси з чутливими даними не можна, для цього потрібна авторизація (про суміжні налаштування безпеки читайте в статті про заголовки безпеки та SEO). По-друге, Google зчитує лише перші 500 KiB файлу, решта ігнорується, тож великий список правил краще скоротити шаблонами.
Мінімально коректний файл, який нічого не забороняє й підказує адресу карти сайту:
User-agent: *
Disallow:
Sitemap: https://example.com/sitemap.xmlПорожнє значення після Disallow: означає, що заборон немає. Якщо файлу немає взагалі і сервер повертає 404, пошукові системи вважають, що обмежень також немає.
Синтаксис і приклад робочого файлу
Типовий сайт має публічну частину, яку треба сканувати, і службові розділи, які сканувати немає сенсу: кошик, особистий кабінет, внутрішній пошук. Приклад для такого сайту:
User-agent: *
Disallow: /cart/
Disallow: /account/
Disallow: /search
Allow: /account/login
Sitemap: https://example.com/sitemap.xmlРозберемо рядки. User-agent: * означає «усі сканери, для яких немає окремої групи». Disallow: /cart/ закриває всі адреси, що починаються з /cart/. Allow: /account/login робить виняток для сторінки входу всередині закритого розділу. Рядок Sitemap не належить до групи, його можна ставити будь-де у файлі, але адреса має бути абсолютною. Про саму карту сайту, її вимоги й помилки докладно в посібнику про sitemap.xml.
Шаблони * і $
Стандарт допускає два спецсимволи. Зірочка замінює будь-яку послідовність символів, знак долара фіксує кінець адреси:
User-agent: *
Disallow: /*?sessionid=
Disallow: /*.pdf$Перше правило закриває адреси з параметром sessionid у рядку запиту, друге ‒ усі адреси, що закінчуються на .pdf. Без знака $ друге правило зачепило б також /file.pdf?download=1.
Окремі групи для окремих ботів
Якщо для сканера є група з його назвою, він читає лише її і ігнорує групу *. Тому, додаючи окрему групу для Googlebot, скопіюйте в неї всі потрібні правила із загальної групи.
Яке правило спрацює: найдовший збіг і рівність Allow та Disallow
Коли під адресу підходить кілька правил, сканер вибирає те, що має найдовший шлях. Якщо довжини однакові, виграє Allow, тобто менш обмежувальне правило. Так працює Google і так розуміє файл сканер SEOAudit.
| Правило | Адреса /shop/sale/item |
|---|---|
Disallow: /shop/ | закрита |
Disallow: /shop/ і Allow: /shop/sale/ | відкрита, бо Allow довше |
Disallow: /shop/sale/ і Allow: /shop/sale/ | відкрита, довжини рівні, виграє Allow |
Розбіжності між пошуковими системами в дрібницях можливі, тому для критичних розділів не покладайтеся на хитрі поєднання правил. Простий файл з кількома зрозумілими рядками надійніший за тонке налаштування, яке ніхто не пам'ятає.
Окремо про Crawl-delay. Google цю директиву ігнорує, а швидкість сканування керується автоматично. Деякі інші системи її враховують, але для більшості сайтів вона зайва.
Ще одна деталь: обробка помилок. Якщо /robots.txt повертає 404, обмежень немає. Якщо ж сервер відповідає помилкою 5xx, Google може призупинити сканування сайту, доки файл знову не стане доступним. Тож нестабільний robots.txt це не дрібниця, а ризик для всього сайту. Докладніше про поведінку Google описано в документації Search Central.
Disallow не видаляє сторінку з індексу
Найпоширеніше хибне уявлення: «закрию сторінку в robots.txt, і вона зникне з Google». Це не так. Disallow забороняє сканувати сторінку, але не забороняє її індексувати. Якщо на закриту адресу ведуть посилання з інших сторінок, пошукова система може показати її в результатах без опису, бо вміст вона прочитати не змогла.
Є й зворотний наслідок. Якщо ви закриваєте сторінку в robots.txt і водночас ставите на ній noindex, сканер ніколи не побачить цей тег, бо не відкриє сторінку. Директиву noindex усередині самого robots.txt Google перестав підтримувати у 2019 році, тож покладатися на неї не можна.
Щоб прибрати сторінку з індексу, зробіть так:
- Залиште сторінку доступною для сканування.
- Додайте мета-тег robots зі значенням
noindex(приклад нижче) у розділі head або заголовокX-Robots-Tag: noindexу відповідь сервера (для PDF та інших файлів без HTML підійде саме заголовок). - Дочекайтеся, поки сканер повторно відвідає сторінку, і лише потім за потреби закривайте її в robots.txt.
<meta name="robots" content="noindex">Більше про те, як це описує сама пошукова система, є в розділі про блокування індексації. Сканер SEOAudit окремо повідомляє про конфлікт між robots.txt і директивою noindex, адже саме така комбінація зазвичай свідчить про помилку. Схожу плутанину створюють і неправильні canonical-адреси: це інший механізм, який не замінює ні robots.txt, ні noindex.
Типові помилки robots.txt
Більшість проблем повторюється від сайту до сайту. Ось ті, що трапляються найчастіше.
Залишок від стейджингу
На тестовому середовищі файл часто закривають повністю:
User-agent: *
Disallow: /Якщо цей файл переїжджає на бойовий сайт разом із релізом, сканування припиняється. Це класична помилка запуску, і саме тому перевірка robots.txt входить до кожного чекліста технічного SEO. Сканер SEOAudit позначає такий файл як закриття всього сайту.
Закриті стилі, скрипти й зображення
Правила на кшталт Disallow: /assets/ або Disallow: /static/ заважають Googlebot відобразити сторінку так, як її бачить відвідувач. Сторінка може здаватися порожньою або зламаною. Не закривайте ресурси, потрібні для відображення. Сканер повідомляє, коли такі файли заборонені.
Заборона самої сторінки, яку треба індексувати
Широке правило, наприклад Disallow: /blog, закриває і /blog/, і /blog-archive, бо збіг іде за початком шляху. Перевіряйте, що саме потрапляє під шаблон. Сканер перевіряє, чи заборонена сторінка, яку ви аналізуєте.
Інші помилки
- Файл лежить не в корені (наприклад, у
/files/robots.txt): його не буде прочитано. - Відсутній рядок
Sitemapабо в ньому відносна адреса. Сканер повідомляє, якщо карту сайту не оголошено у файлі. - Невірний регістр у шляху:
/Admin/не закриває/admin/. - Пробіли й коментарі в незвичних місцях, зайві BOM-символи, які не всі парсери терплять.
- HTML-сторінка замість файлу: якщо сервер віддає сторінку 404 з кодом 200, це «м'який 404». Сканер SEOAudit такі відповіді на запит
/robots.txtігнорує і не вважає їх правилами.
robots.txt і ШІ-краулери
Окремі компанії оголошують власні назви краулерів, і їх можна дозволяти або забороняти через ту саму групу User-agent. Приклади токенів: GPTBot, ClaudeBot, PerplexityBot та Google-Extended. Конкретні назви й призначення кожного краулера описує його власник, тому перед додаванням правила звіряйтеся з актуальною документацією компанії.
Приклад групи, яка закриває один краулер і не чіпає решту:
User-agent: GPTBot
Disallow: /
User-agent: *
Disallow: /cart/Рішення про блокування це бізнесове, а не технічне. Закриваючи ШІ-краулерів, ви можете зменшити шанси потрапити у відповіді таких систем; відкриваючи, надаєте їм доступ до текстів. Єдиної правильної відповіді немає, важливо ухвалити його свідомо й не заблокувати нічого випадково широким правилом.
Що саме перевіряє сканер. Він повідомляє, якщо у robots.txt закриті пошукові ШІ-боти. Боти для навчання моделей у цьому звіті не враховуються. Сканер читає правила файлу, але не оцінює кожного ШІ-краулера окремо за повним переліком. Деталі про видимість у ШІ-пошуку читайте на сторінці перевірки готовності до ШІ-пошуку.
Як перевірити robots.txt
Перевірка займає кілька хвилин і не потребує спеціальних інструментів.
- Відкрийте файл у браузері. Перейдіть на
https://ваш-домен/robots.txt. Має відкритися простий текст, а не сторінка сайту й не помилка. - Подивіться код відповіді. У терміналі виконайте
curl -i https://example.com/robots.txt. Очікуваний статус 200 і типtext/plain. Статус 5xx потрібно виправити негайно. - Огляньте звіт у Google Search Console. Розділ зі звітом про robots.txt показує, який файл Google отримав, коли його читали й чи були помилки розбору.
- Перевірте ключові адреси. Візьміть головну, кілька категорій, статтю й сторінку, яку навмисно закрито, і переконайтеся, що результат відповідає задуму.
- Запустіть сканер. Безкоштовний сканер прочитає файл, застосує правила до адреси, яку ви перевіряєте, і покаже, чи є конфлікти, закриті ресурси та оголошена карта сайту.
Сканер пасивний: він відкриває вказану адресу й кілька публічних допоміжних файлів, а не обходить весь сайт. Тому він не замінює повну перевірку всіх розділів. Загальну картину, куди входить і robots.txt, показує SEO-аудит сайту, а питання захисту розглядає перевірка безпеки.
Хороший robots.txt короткий, зрозумілий і перевірений після кожної зміни. Закривайте лише те, що справді не потрібне пошуковим системам, не плутайте заборону сканування з видаленням з індексу й не забувайте про рядок Sitemap. Щоб побачити, як ваш файл читає сканер, запустіть безкоштовну перевірку сайту.
Часті запитання
- Чи обов'язково мати файл robots.txt?
Ні. Якщо файлу немає і сервер повертає 404, пошукові системи вважають, що обмежень немає. Проте файл корисний: у ньому можна закрити службові розділи й оголосити адресу карти сайту. Головне, щоб він не повертав помилку 5xx, бо тоді Google може призупинити сканування.
- Чи прибере Disallow сторінку з результатів пошуку?
Не обов'язково. Disallow забороняє лише сканування. Якщо на закриту адресу є посилання з інших сторінок, вона може залишитися в індексі без опису. Щоб прибрати сторінку, залиште її доступною й додайте noindex у мета-тег або заголовок X-Robots-Tag.
- Чи можна ховати в robots.txt приватні розділи?
Ні. Файл публічний, і кожен може його прочитати, тож список закритих адрес навпаки підказує, де шукати. Приватні дані захищайте авторизацією на сервері, а robots.txt використовуйте лише для керування скануванням.
- Як зрозуміти, що я випадково закрив весь сайт?
Відкрийте /robots.txt і пошукайте рядок Disallow: / у групі User-agent: *. Також перегляньте звіт про robots.txt у Google Search Console. Сканер SEOAudit позначає файл, який закриває сайт повністю, і сторінку, заборонену для перевірюваної адреси.