Що таке robots.txt і для чого він потрібний?

#SEO 5 July 2018 Оцінити статтю

Файл robots.txt – це звичайний текстовий документ, в якому містяться рекомендації для пошукових роботів всіх типів щодо індексування вашого сайту: які сторінки та файли потрібно сканувати та додавати до індексу, а які ні. Зауважимо, що саме рекомендації, а не конкретні вказівки.

Оскільки це індексний файл (у краулерів прописано його розташування), то він повинен знаходитися в чітко вказаному місці – в кореневій папці сайту. Відкриватися повинен за такою адресою – http(s):site.com/robots. strong>txt, де http або https використовується залежно від того, на якому протоколі працює ваш сайт, а замість site. strong>com необхідно вставляти свій домен. Також обов’язковою умовою має бути кодування UTF-8, інакше він просто буде прочитаний з помилками або зовсім проігнорований.

Порада: щоб подивитися свій robots.txt, необхідно відкрити головну сторінку сайту й набрати в адресному рядку після неї robots.txt</ strong>.

Примітка: пошукова система Google також регламентує розмір файлу robots. Він не повинен бути більше 500 Кб.

За допомогою цього файлу можна виконати такі дії з вашим сайтом:

  1. Повністю закрити його в очах пошукача.
  2. Відкрити всі папки та файли для індексування.
  3. Обмежити сторінки для обходу роботом певними правилами.

Відповіді сервера під час сканування файлу robots.txt

Для чого використовується файл robots.txt?

Основною його функцією є налаштування індексованості сайту пошуковими краулерами. На сайті є сторінки, які не повинні потрапляти у видачу. Наприклад:

У разі якщо необхідні сторінки не будуть закриті від індексації, можуть постраждати ваші клієнти (розкриються персональні дані) і ви (в індекс потрапить купа дублів і сторінок для сміття, що понизить сайт при ранжируванні).

Примітка: сторінка, закрита в robots.txt, може також потрапити у видачу, оскільки він є рекомендаційним, а не обов’язковим до виконання (особливо це стосується Google).

Примітка: в деяких випадках сторінки потрібно закривати за допомогою інших способів – тегами meta robots</ strong> або x-robots (про це в інших статтях).

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: *  (Читається всіма роботами)

На даний момент є безліч різних роботів. Нижче надано список найпопулярніших із них на просторах СНД.

Директива 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, краулінговий робот за замовчуванням шукає в кореневій папці сайту (корені) файл під назвою 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 на прикладі сайту. Це буде своєрідний майстер-клас від нас.

Іванченко Сергій Керівник групи пошукового просування
схожі статті
підписатися:
LSI у 2022 році: від збору семантики до оптимізації сторінок
LSI у 2022 році: від збору семантики до оптимізації сторінок
# SEO
Як оцінити трафік конкурентів
Як оцінити трафік конкурентів
# SEO
Тренди пагінації
Тренди пагінації
# SEO
Коментарі