Правильний файл robots.txt для сайту

Файл robots.txt містить список директив, які дозволяють відривати або закривати доступ для пошукових систем до потрібних файлів, папок або посилань. Файл завантажується в директорію вашого сайту через ФТП або систему управління сайтом, приклад domain.com/robots.txt. Після вивантаження файлу на хостинг пошукові роботи самі виявлять його і просканують дані.
У цьому файлі, крім переліку сторінок для індексації, може бути вказана інша додаткова інформація, яку ми розглянемо далі.
Для чого потрібний файл robots.txt
Правильно вказані у файлі директиви дозволять:
- Налаштувати різні правила індексації для певних пошукових систем;
- Закрити серверні скрипти від влучення в індекс;
- Заборонити індексувати сторінки особистого кабінету, корзини, результатів пошуку, сторінки 404, URL з UTM мітками та інше;
- Вказати правила індексації зображень;
- Заборона читання копії сайту, наприклад, під час проведення А/В тестування.
Заборона на індексацію у файлі robots.txt не дає 100% гарантію, що ця інформація не потрапить до результатів пошуку. Особливо якщо на цю інформацію є зовнішні або внутрішні посилання.
Як створити robots.txt
Створити файл можна у будь-якому текстовому редакторі. Основні вимоги до файлу:
- кодування файлу UTF-8 (що включає коди символів ASCII);
- текстовий формат;
- розмір до 500 Кб;
- назви папок і файлів чутливі до регістру, наприклад /Folder/ і /folder/ - це одне й те саме;
- обов'язкова назва файлу robots.txt у нижньому регістрі
Доступні директиви у файлі robots.txt:
User-agent: визначає назву пошукового робота, до якого належать правила індексації. Вказується у файлі обов'язково. Символ * означає застосовність правил до всіх робіт без винятку. Назви пошукових роботів:
- Googlebot – основний пошуковий робот Google;
- Googlebot-Image - для картинок;
- Googlebot-News - новинний бот;
- Googlebot-Video - для відео;
- Mediapartners-Google – для сервісу AdSense;
- AdsBot-Google – для перевірки якості цільової сторінки;
- AdsBot-Google-Mobile-Apps – для мобільних додатків
- YandexBot – основний пошуковий робот Yandex;
- YandexImages - індексатор Яндекс.Картинок;
- YandexMetrika - робот Яндекс.Метрики;
- YandexMedia - робот, що індексує мультимедійні дані;
- YandexDirect - робот Яндекс.Директа;
- YandexFavicons – сканує фавікон сайтів;
- YandexBlogs - робот пошук по блогах, що індексує пости та коментарі;
- YandexMarket-робот Яндекс.Маркета;
- YandexNews - робот Яндекс.Новин;
- YandexPagechecker - валідатор мікророзмітки;
- YandexCalendar - робот Яндекс.Календаря;
- Bingbot – пошуковий робот системи Bing;
- Slurp - пошуковий робот системи Yahoo;
Disallow: вказує на заборону індексації файлу або папки щодо домену домену. Кожна папка або файл вказуються з нового рядка. Ця директива є обов'язковою.
Allow: дає дозвіл на індексацію вказаного файлу чи папки для певного пошукового робота. Може бути вказано після директив Disallow для їхнього перевизначення або уточнення доступу до певних розділів або файлів.
Sitemap: необов'язкова директива, яка вказуватиме розташування карти сайту sitemap.xml. Посилання на карту сайту має бути абсолютним.
Host: директива для пошукових систем Yandex і Mail.ru, яка вказує основне дзеркало сайту. Тут потрібно вказати доменне ім'я, яке потрібно проіндексувати, якщо сайт має аліаси. Якщо сайт працює за протоколом https, то до домену потрібно додати префікс https://domen.com.ua
Crawl-delay: необов'язкова і неофіційна директива, в якій вказується до секунд, через яке пошуковий робот повинен почати взаємодіяти з сайтом. Може вказати, якщо ваш сайт завантажується повільно або працює на повільному сервері. Ця директива не підтримується пошуковими системами Google і Baidu, і буде проігнорована. Для Google ви можете встановити Crawl rate в Google Search Console.
Пошукові системи Bing, Yandex та Yahoo підтримують цю директиву.
Значення вказується в секундах і може бути дрібним, приклади:
Crawl-delay: 5
Crawl-delay: 0.7
Clean-param: необов'язкова, але досить корисна директива для випадків, коли потрібно задати правила індексації сторінок з параметрами GET, наприклад, для сторінок фільтрації в інтернет-магазині, щоб уникнути появи дублів у пошуковій видачі. Ця директива підтримується Яндексом. Параметри, які потрібно очистити, розділяються символом &, або вказується назва параметра, починаючи з якого потрібно заборонити індексацію URL.
Для наочності розглянемо приклади на основі URL https://example.com/result/?minprice=1330&maxprice=73390&brand=autom
Clean-param: minprice /result/ #заборона на індексацію всього, що починається з minprice
Clean-param: brand /result/ #заборона на індексацію всього, що починається з brand
Clean-param: minprice&brand /result/ #заборона на індексацію minprice та brand
Якщо на сайті GET параметри можуть бути в різних розділах, можна вказати необхідну кількість таких директив, кожна з нового рядка.
Request-rate: не підтримується популярними пошуковими системами. Може бути використана, щоб повідомити, скільки сторінок можна проіндексувати за вказаний час. Наприклад:
Request-rage: 1/6 #не більше однієї сторінки за 6 секунд.
Visit-time: не підтримується популярними пошуковими системами. Вказує час індексації сайту. Наприклад:
Visit-time: 0530-1000 #сайт дозволено індексувати з 5:30 до 10:00 щоденно.
Доступні символи у файлі robots.txt
# - цей символ закоментує рядок, на початку якого він стоїть;
* будь-яка послідовність символів або будь-який пошуковий робот, якщо йдеться про директиву User-agent;
/ слідом можна закрити від індексації весь сайт у поєднанні з директивою Disallow;
$ - означає закінчення дії зірочки *. Наприклад:
Disallow: *html$ #заборонить індексацію всіх посилань, що закінчуються на html;
Disallow: /mypage/$ #закриє від індексації посилання https://domain.com/mypage/ , але дозволить індексацію будь-яких посилань виду https://domain.com/mypage/subpage
Приклади файлу robots.txt
Щоб заборонити індексацію всього сайту для всіх пошукових систем, наприклад, на час розробки, потрібно вказати наступне:
User-agent: *
Disallow: /
Заборонити індексацію розділу /catalog/ для Yandex та дозволити для Google
User-agent: Yandexbot
Disallow: /catalog/
User-agent: Googlebot
Allow: /catalog/
Закрити сканування одного файлу та одного URL:
User-agent: Googlebot-Image
Disallow: /uploads/image-1.jpg
User-agent: *
Disallow: /catalog/old-table.html
Закрити від індексації всі файли з розширенням txt у папці /files/ для всіх пошукових систем:
User-agent: *
Disallow: /files/*.txt$
Сайт відкритий для індексації всім пошуковим системам:
User-agent: *
Disallow:
Заборона доступу до сайту всім роботам, окрім Mediapartners-Google
User-agent: *
Disallow: /
User-agent: Mediapartners-Google
Allow: /
Приклад можливого файлу:
User-agent: *
Disallow: /administrator/
Disallow: /uploads/
Allow: /uploads/images/*.jpg
Allow: /uploads/icons/*.png
Disallow: /?*
Disallow: *sort=
User-agent: Yandex
Disallow: /administrator/
Disallow: /uploads/
Allow: /uploads/images/*.jpg
Allow: /uploads/icons/*.png
Disallow: /?*
Disallow: *sort=
Clean-Param: utm_source&utm_medium&utm_campain
Host: https://mywebsite.com
Sitemap: https://mywebsite.com/sitemap.xml
Перевірити готовий файл ви можете Яндекс.Вебмастере або в Центре Вебмастеров Google
Не закривайте у файлі індексацію скриптів, стилів, зображень, що беруть участь у формуванні зовнішнього вигляду, які відповідають за адаптацію сайту. Без доступу до цих файлів, пошукові системи не зможуть коректно сформувати загальне уявлення про ваш сайт та його зовнішній вигляд. Ви можете отримати в консолі веб-майстрів повідомлення про помилки в мобільній версії та інше.
Не використовуйте файл robots.txt, щоб сховати важливу інформацію. Будь-хто може через браузер відкрити цей файл і подивитися, які дані ви намагалися захистити від індексації. Для захисту інформації правильніше використовуватиме авторизацію користувачів на сайті.
За замовчуванням всі файли та папки на сайті доступні для індексації, якщо зворотне не вказано у файлі robots.txt. Сам файл або його відсутність ніяк не впливає на відображення та роботу сайту в браузері для відвідувача, але його наявність та коректне заповнення допоможуть у СЕО оптимізації, підкажуть пошуковим роботам, яка інформація має потрапити до індексу, а яка ні.