Файл robots.txt – це звичайний текстовий документ, в якому містяться рекомендації для пошукових роботів всіх типів щодо індексування вашого сайту: які сторінки та файли потрібно сканувати та додавати до індексу, а які ні. Зауважимо, що саме рекомендації, а не конкретні вказівки.
Оскільки це індексний файл (у краулерів прописано його розташування), то він повинен знаходитися в чітко вказаному місці – в кореневій папці сайту. Відкриватися повинен за такою адресою – http(s):site.com/robots. strong>txt, де http або https використовується залежно від того, на якому протоколі працює ваш сайт, а замість site. strong>com необхідно вставляти свій домен. Також обов’язковою умовою має бути кодування UTF-8, інакше він просто буде прочитаний з помилками або зовсім проігнорований.
Порада: щоб подивитися свій robots.txt, необхідно відкрити головну сторінку сайту й набрати в адресному рядку після неї robots.txt</ strong>.
Примітка: пошукова система Google також регламентує розмір файлу robots. Він не повинен бути більше 500 Кб.
За допомогою цього файлу можна виконати такі дії з вашим сайтом:
- Повністю закрити його в очах пошукача.
- Відкрити всі папки та файли для індексування.
- Обмежити сторінки для обходу роботом певними правилами.
Відповіді сервера під час сканування файлу robots.txt
- 2xx – файл знайдено та інформація отримана.
- 3хх – пошуковий робот переадресований на іншу адресу. Так може відбуватися не більше 5 разів, або доки він не отримає іншу відповідь сервера. В іншому разі це вважається відповіддю 4ххх.
- 4хх – за такої відповіді сервера робот вважає, що весь вміст сайту можна сканувати.
- 5хх – цей код говорить про проблеми з боку сервера, тому сканування забороняється і робот буде постійно звертатися на сайт, доки не отримати відмінну від 5хх відповідь сервера.
Для чого використовується файл robots.txt?
Основною його функцією є налаштування індексованості сайту пошуковими краулерами. На сайті є сторінки, які не повинні потрапляти у видачу. Наприклад:
- особисті дані;
- сторінки фільтрації;
- сторінки динамічного пошуку;
- дзеркала сайту.
У разі якщо необхідні сторінки не будуть закриті від індексації, можуть постраждати ваші клієнти (розкриються персональні дані) і ви (в індекс потрапить купа дублів і сторінок для сміття, що понизить сайт при ранжируванні).
Примітка: сторінка, закрита в robots.txt, може також потрапити у видачу, оскільки він є рекомендаційним, а не обов’язковим до виконання (особливо це стосується Google).
Примітка: в деяких випадках сторінки потрібно закривати за допомогою інших способів – тегами meta robots</ strong> або x-robots (про це в інших статтях).
Оформлення файлу robots.txt (синтаксис) і директиви
Примітка: команди, що застосовані в цьому файлі, називаються директивами.
Всі команди в файлі оформляються однаково: спочатку йде назва директиви й двокрапка (між ними не потрібен пробіл), далі пробіл, а після нього пишеться сам параметр. Виглядає це так:
Директива: параметр
Для роботи обов’язковими є всього 2 команди – це User Agent і Disallow. Якщо хоч одна з них відсутня, буде вибиватися помилка при верифікації.
Директива User-agent
Ця команда показує, для якого робота пишеться даний блок команд. Знайшовши своє ім’я, робот зчитуватиме всі команди до наступної директиви user-agent.
User-agent: Yandex
Disallow: /papka/
Disallow: /papka1/
Disallow: /papka2/
Allow: /photo/
User-agent: Googlebot
У самому верху без прогалин попереду та перед двокрапкою пишеться:
User-agent:
І далі пишеться ім’я того робота, котрим призначений даний блок директив. Наприклад, у нас основний робот Яндекса, тоді має виглядати так.
User-agent: Yandex (Читається тільки ботами Яндекса)
Якщо вам потрібно прописати команди для всіх роботів відразу, тоді використовуємо символ *.
User-agent: * (Читається всіма роботами)
На даний момент є безліч різних роботів. Нижче надано список найпопулярніших із них на просторах СНД.
- Googlebot-News — здійснює пошук новин;
- Mediapartners-Google — бот сервісу AdSense;
- AdsBot-Google — перевіряє якість цільової сторінки;
- Googlebot-Image— для картинок;
- Googlebot-Video — для відео;
- Googlebot-Mobile— для мобільної версії;
- YandexMetrika — робот Яндекс.Метрики;
- YandexMedia —індексує мультимедійні дані;
- YaDirectFetcher — робот Яндекс.Директа;
- YandexImages — завантажувач Яндекс.Малюнок;
- YandexDirectDyn — для генерації динамічних банерів;
- YandexBlogs — робот для індексації постів і коментарів на блогах;
- YandexMarket— робот Яндекс.Маркета;
- YandexNews — робот Яндекс.Новин;
- YandexDirect —робот для завантаження контенту сторінок партнерів мережі для уточнення тематик;
- YandexPagechecker — валідатор мікророзмітки Яндекса;
- YandexCalendar — робот Яндекс.Календаря.
Директива Disallow
Ця директива забороняє індексувати файли та сторінки, які підпадають під дію вказаного параметра. Синтаксис написання такий самий, як і у user-agent.
Наприклад, на сайті є папка з ім’ям users з файлами з даними користувача, та її потрібно закрити від індексації. Тоді пишемо так:
Disallow: /users/
Так ми закрили від індексації папку /users/ і весь вміст у ній.
Примітка: для вказівки параметрів не потрібно прописувати сам домен. Наприклад, пишемо не Disallow: site.ru/users/, а Disallow: /users/.
Директива Allow
За допомогою цієї директиви ми можемо відкривати необхідні для індексації сторінки та файли.
Наприклад, у папці users (про неї ми писали вище) є папка images, в якій є картинки, необхідні для індексації. Тому нам необхідно прописати наступний рядок:
Allow: /users/images/
Зрештою ми отримуємо:
User-agent: * Команда вказана для всіх краулерів
Disallow: /users/ Закриває папку users і всі файли
Allow: /users/images/ Відкриває вкладену папку images і всі вкладені файли
Пріоретизація вказівок
Якщо є конфлікт між Disallow та Allow, до виконання буде обраний той, у якого довжина параметра після двокрапки більша.
Наприклад:
Disallow: /users/
Allow: /users/images/
По суті, перша команда Disallow повинна закрити й папку images теж, але оскільки після двокрапки в першої директиви 7 символів, а у другої 14 символів, то пріоритетною буде директива Allow.
Якщо директиви повністю однакові, то пріоритет буде відданий тій, яка знаходиться нижче. Наприклад, при використанні такої послідовності папка users буде відкрита:
Disallow: /users/
Allow: /users/
Host або якесь дзеркало головне
За допомогою команди Host ми показуємо пошукову систему, яка з версій сайту є основною. Ця команда читається лише краулерами Яндекса. Синтаксис написання в неї такий самий, як і в інших.
Наприклад:
Host: site.ua
Якщо ваш сайт працює за незахищеним протоколом http, тоді вказувати його явно не потрібно. Тобто ви просто пишете домен сайту
Host: site.ua
Якщо основне дзеркало сайту працює за захищеним протоколом https, тоді його потрібно вказувати явно.
Host: https://site.ru</ em>
Якщо у файлі не вказана директива Host, пошуковик сам вибере основне дзеркало.
Директива Sitemap або які сторінки важливі до індексації
Ця директива показує, де знаходиться і як називається файл зі списком усіх URL сторінок сайтів, які необхідно додати в індекс. Також при правильній генерації картки сайту робот зможе чітко розуміти пріоритетність сторінок, дату їхнього останнього оновлення та додавання.
Sitemap: http://site.ru/sitemap.xml
У цій директиві шлях до файлу картки сайту повинен вказуватися повністю разом із протоколом і за цих умов не важливо, це http або https.
Якщо в файлі немає директиви Sitemap, краулінговий робот за замовчуванням шукає в кореневій папці сайту (корені) файл під назвою sitemap.xml. Якщо його немає, то сторінки на сайті проходять рандомно, враховуючи директиви в роботсі.
Кирилічні домени в Host та Sitemap
Для сайтів з кириличним доменом у директивах Sitemap та Host необхідно писати не кириличними символами домен сайту чи папки, а так званим PUNNY-code.
Для того щоб його отримати, потрібно просто скопіювати урл сайту з адресного рядка браузера.
Наприклад, у нас є сайт https://сайт.рф.
Тоді рядки мають виглядати так:
Host: https://xn--80aswg.xn--p1ai/
Sitemap: https://xn--80aswg.xn--p1ai/ sitemap.xml
Примітка: в такому ж вигляді потрібно додавати url сторінок у файлsitemap.xml.
Crawl-delay – «ручник» для робота
За допомогою цієї директиви ми можемо обмежувати час між зверненнями робота до сайту протягом одного сеансу. Зроблено це спеціально для сайтів, які працюють на дуже слабких серверах, і при заході робота ресурс починає зависати або віддає 5хх відповідь сервера.
Синтаксис написання виглядає так:
Crawl-delay: 3
де 3 – це час за секунди між зверненнями бота до сайту.
Самі пошукові системи рекомендують використовувати цю директиву лише в крайніх випадках.
Директива Clean-param або не дай дублям життя
За допомогою даної директиви можна вказати сторінки з параметрами get (перебувають у url після знака питання), на яких можливе дублювання контенту. Вказується загальний текст в урлі та загальний у динамічній частині адреси.
Наприклад, у нас є 5 урлів для однієї сторінки з різними сортуваннями. Хоча товари та текст повністю однакові.
site.ru/catalog/phone?sort=price_min
site.ru/catalog/phone?sort=price_max
site.ru/catalog/phone?sort=name_a
site.ru/catalog/phone?sort=name_z
site.ru/catalog/phone?sort=nalichie
Для приховання дублів необхідно прописати наступний рядок
Clean-param: sort /catalog/phone
де sort – це щось загальне для get параметра, а /catalog/phone – загальне в статичній частині урла.
Примітка: але ми не рекомендуємо користуватися саме таким способом, оскільки сторінки все одно можуть потрапити у видачу, бо роботс має рекомендаційний характер.
Спеціальні символи *,$,#
Для спрощення складання файлу та прискорення інтерпретації машинами інформації з файлу використовуються спеціальні символи.
Всіх під один гребінець
Перший і найважливіший символ – це * (сніжинка). Вона означає, що замість неї можна підставити будь-яку кількість символів.
У загальному розумінні це виглядає так:
1 * 1 = 121, 1 * 1 = 1234567891 і т.д.
Як це застосувати в нашому випадку?
Наприклад, у нас є наступні сторінки:
site.ru/catalog/123
site.ru/catalog/111
site.ru/catalog/12
site.ru/catalog/23
site.ru/catalog/231
site.ru/catalog/2789
І нам потрібно закрити від індексації site.ru/catalog/123, site.ru/catalog/111, site.ru/catalog/12, але водночас не закрити site.ru/catalog/23, site.ru/catalog/231 , site.ru/catalog/2789.
Можна, звичайно, зробити так:
User-agent: *
Disallow: /catalog/123
Disallow: /catalog/111
Disallow: /catalog/12
Але в 2 рази коротше буде так:
User-agent: *
Disallow: /catalog/1*
Також це можна використовувати для відкриття всіх файлів однакового формату в одній папці.
Наприклад, у папці catalog лежать файли з розширенням php, rar, pdf і jpg, і нам потрібно відкрити останні, а все інше закрити. Зробити це можна так.
Приклад:
User-agent: *
Disallow: /catalog/
Allow: /catalog/*.jpg
Дуже важлива примітка: наприкінці будь-якого параметра в директиві робот за замовчуванням ставить зірочку. Наприклад, шматок з прикладу вище краулер бачить як:
User-agent: *
Disallow: /catalog/*
Allow: /catalog/*.jpg*
Не забувайте про це.
Стоп рядок або знак «баксу» – $
Символ $ означає закінчення рядка. Він скасовує зірочку в кінці параметра. Як це розуміє робот? У нас є в папці catalog 2 типи файлів з розширенням jpg і jp, і нам потрібно відкрити до індексації другі, але заборонити перші. Зробити це можна так:
User-agent: *
Disallow: /catalog/
Allow: /catalog/*.jp$
Якби $ там не було, тоді індексувалися б усі файли, не лише з jp.
Трохи поезії з #
Зазвичай знак “решітка” в файлі robots.txt використовується для додавання коментарів. Робот не читає символів, що стоять від цього символу праворуч, і одразу переходить на наступний рядок.
User-agent: *
#Відкрив цей блок директив для всіх роботів
Disallow: /catalog/
#Закрив від індексації папку catalog
Allow: /catalog/*.jp$
#Відкрив для індексації файли з розширенням jp
Тому коментарі НЕ МОЖНА розміщувати зліва від директив в одному рядку.
#Відкрив для індексації файли з розширенням jp Allow: /catalog/*.jp$</ em>
Допускається коменти розміщувати праворуч від директиви та параметра
Allow: /catalog/*.jp$ #Відкрив для індексації файли з розширенням jp
Ідеальний файл robots.txt
User-agent: * #Є обов’язкова директива
Disallow: # Є обов’язкова директива
Host: http://site.ru</ em> #Вказано основне дзеркало сайту
Sitemap:http://site. ru/sitemap.xml #Є посилання на файл з url всіх сторінок сайту</em >
Висновок
З цього всього виходить те, що при складанні індексного файлу robots.txt потрібно бути гранично уважним, адже одне неправильне рішення – і з позиціями сайту можна попрощатися. Сайт просто випаде з видачі.
У наступній статті читайте про те, як правильно налаштувати robots.txt на прикладі сайту. Це буде своєрідний майстер-клас від нас.
