Гайд з Robots.txt: Кращі практики для SEO-оптимізації
Розкрийте потенціал robots.txt: дізнайтеся, як використовувати цей файл для блокування непотрібних URL-адрес та покращення SEO-стратегії вашого сайту.
Правильне налаштування файлу robots.txt є важливою складовою будь-якої SEO-стратегії. Помилки в цьому файлі можуть негативно вплинути на те, як пошукові системи сканують ваш сайт та як ваші сторінки відображаються в результатах пошуку. Натомість правильне налаштування дозволяє підвищити ефективність сканування та уникнути проблем з індексацією.
Нещодавно Google нагадав власникам сайтів про важливість використання robots.txt для блокування непотрібних сторінок, таких як сторінки додавання до кошика, входу в акаунт або оформлення замовлення. Але як правильно його налаштувати?
У цій статті ми розглянемо всі тонкощі правильного використання robots.txt.
Що таке robots.txt?
Файл robots.txt — це простий текстовий файл, який розміщується в кореневій директорії вашого сайту та вказує пошуковим роботам, які сторінки варто сканувати.
Нижче наведено коротку таблицю з основними директивами файлу robots.txt.
| Директива | Опис |
|---|---|
| User-agent | Вказує, для якого бота застосовуються правила. Символ * означає, що правила застосовуються до всіх ботів. |
| Disallow | Забороняє сканування вказаних URL-адрес. |
| Allow | Дозволяє сканування певних URL, навіть якщо батьківська директорія заблокована. |
| Sitemap | Вказує місцезнаходження XML-карти сайту, допомагаючи пошуковим системам її знайти. |
Нижче наведений приклад файлу robots.txt з ikea.com, який містить кілька правил.
Приклад файлу robots.txt з ikea.com
Важливо відзначити, що robots.txt не підтримує повноцінні регулярні вирази, але використовує два символи заміщення:
- Зірочка (*), яка відповідає 0 або більше послідовностей символів.
- Долар ($), який вказує на кінець URL.
Крім того, всі правила в файлі robots.txt чутливі до регістру, наприклад, “filter=” не дорівнює “Filter=.”
Пріоритетність правил у robots.txt
При налаштуванні robots.txt важливо розуміти, в якому порядку пошукові системи застосовують правила у разі конфліктів. Вони дотримуються двох основних принципів:
-
Найбільш специфічне правило. Правило, яке відповідає більшій кількості символів у URL, буде пріоритетним. Наприклад:
User-agent: *Disallow: /downloads/Allow: /downloads/free/У цьому випадку правило "Allow: /downloads/free/" є більш конкретним, ніж "Disallow: /downloads/", тому Google дозволить сканування підкаталогу "/downloads/free/", але заблокує решту.
-
Найменш обмежувальне правило. Якщо кілька правил однаково специфічні, наприклад:
User-agent: *Disallow: /downloads/Allow: /downloads/Google вибере менш обмежувальне правило, тобто дозволить доступ до "/downloads/."
Чому robots.txt важливий для SEO?
Блокування непотрібних сторінок за допомогою robots.txt допомагає Googlebot зосередитися на важливих розділах сайту, а також на нових сторінках. Це також зменшує витрати обчислювальних ресурсів, що сприяє підвищенню стійкості.
Уявіть, що у вас є інтернет-магазин із сотнями тисяч сторінок. Існують розділи, як-от сторінки з фільтрами, які можуть мати нескінченну кількість варіантів.
Ці сторінки не мають унікальної цінності, містять дубльований контент і можуть створювати нескінченний простір для сканування, витрачаючи ресурси вашого сервера та Googlebot.
Тут на допомогу приходить файл robots.txt, який запобігає скануванню таких сторінок пошуковими роботами.
Якщо цього не зробити, Google може спробувати сканувати нескінченну кількість URL з різними (інколи неіснуючими) значеннями пошукових параметрів, що призведе до стрибків у навантаженні та марнування бюджету на сканування.
Коли слід використовувати robots.txt
Основне правило: завжди задавайтесь питанням, чи мають певні сторінки реальну цінність для сканування та індексації пошуковими системами.
Відповідно до цього принципу, завжди слід блокувати:
-
URL-адреси з параметрами запитів, наприклад:
- Внутрішні сторінки пошуку.
- URL-адреси з фасетною навігацією, створені за допомогою фільтрів чи опцій сортування, якщо вони не є частиною структури URL або стратегії SEO.
- Дії, як-от додавання до списку бажань або кошика.
- Приватні розділи сайту, такі як сторінки для входу.
- JavaScript-файли, що не стосуються контенту або відображення сайту, наприклад, трекінгові скрипти.
- Блокування веб-скрейперів та чат-ботів на основі штучного інтелекту, щоб запобігти використанню вашого контенту для їх навчання.
Розглянемо детальніше, як використовувати robots.txt для кожного випадку.
1. Блокування внутрішніх сторінок пошуку
Найпоширеніший і важливий крок — блокування внутрішніх URL пошуку від сканування Google та іншими пошуковими системами, оскільки майже кожен сайт має внутрішній пошук.
На WordPress -сайтах це зазвичай параметр "s", і URL виглядає так:
https://www.example.com/?s=google
Гарі Іллайс із Google неодноразово застерігав від сканування подібних "action" URL-адрес, оскільки Googlebot може нескінченно сканувати їх, навіть неіснуючі сторінки з різними комбінаціями параметрів.
Ось приклад правила, яке можна використовувати в robots.txt, щоб заблокувати такі URL:
User-agent: *
Disallow: *s=*
-
Строка
User-agent: *вказує, що правило застосовується до всіх веб-сканерів, включаючи Googlebot, Bingbot тощо. -
Строка
Disallow: *s=*блокує всі URL, які містять параметр запиту "s=." Символ заміщення "*" означає, що він може відповідати будь-якій послідовності символів до або після "s=." Важливо: це правило чутливе до регістру, тому не блокує URL з "S=."
Приклад показує, як вебсайт значно зменшив сканування неіснуючих внутрішніх URL пошуку після їх блокування через robots.txt.
2. Блокування URL з фасетною навігацією
Фасетна навігація є невід'ємною частиною кожного інтернет-магазину. У деяких випадках вона може бути частиною SEO-стратегії для ранжування за загальними запитами.
Наприклад, сайт Zalando використовує URL фасетної навігації для вибору кольору, щоб ранжуватись за загальними продуктами, як-от "сіра футболка".
Однак у більшості випадків фасетні параметри використовуються лише для фільтрації товарів, створюючи безліч сторінок із дубльованим контентом.
Технічно ці параметри мало відрізняються від параметрів внутрішнього пошуку, хоча їх може бути кілька. Необхідно впевнитись, що всі вони заблоковані.
Наприклад, якщо у вас є фільтри з такими параметрами, як "sortby", "color" і "price", ви можете використовувати такі правила:
User-agent: *
Disallow: *sortby=*
Disallow: *color=*
Disallow: *price=*
Залежно від конкретної ситуації, може бути більше параметрів, які необхідно додати до цього списку.
Що стосується UTM-параметрів?
UTM-параметри використовуються для відстеження трафіку.
Як зазначив Джон Мюллер у своєму дописі на Reddit , не варто хвилюватися через URL-параметри, що ведуть на ваші сторінки з інших сайтів.
Джон Мюллер про UTM-параметриДжон Мюллер про UTM-параметри
Проте слід заблокувати будь-які випадкові параметри, які ви використовуєте всередині сайту, і уникати внутрішніх посилань на такі сторінки. Наприклад, не варто посилатися з ваших статей на сторінки пошуку з параметрами на кшталт "https://www.example.com/?s=google".
3. Блокування PDF-URL
Уявімо, що у вас є багато PDF-документів, таких як інструкції до продукції, брошури або файли для завантаження, і ви не хочете, щоб вони сканувалися пошуковими системами.
Ось просте правило для файлу robots.txt, яке заблокує доступ пошукових роботів до цих документів:
User-agent: *
Disallow: /*.pdf$
Ця строка повідомляє ботам не сканувати будь-які URL, що закінчуються на .pdf.
Використання символу
/*
дозволяє правилу відповідати будь-якому шляху на сайті. Тому будь-який URL, що закінчується на .pdf, буде заблоковано для сканування.
Якщо у вас WordPress-сайт і ви хочете заблокувати PDF-документи з каталогу завантажень, де ви їх розміщуєте через CMS, можна скористатися таким правилом:
User-agent: *
Disallow: /wp-content/uploads/*.pdf$
Allow: /wp-content/uploads/2024/09/allowed-document.pdf$
Тут є конфліктуючі правила. У разі конфлікту пріоритет має найбільш конкретне правило, тобто останній рядок гарантує, що лише файл "allowed-document.pdf" у папці "wp-content/uploads/2024/09/" буде дозволений для сканування.
4. Блокування директорії
Уявімо, що у вас є API-ендпоінт, де обробляються дані, які користувачі відправляють через форму. Ймовірно, ваша форма має атрибут
action
, як-от action="/form/submissions/".
Проблема в тому, що Google намагатиметься сканувати цей URL, що вам, скоріш за все, не потрібно. Ви можете заблокувати ці сторінки від сканування за допомогою такого правила:
User-agent: *
Disallow: /form/
Вказавши директорію в правилі Disallow, ви повідомляєте роботам не сканувати всі сторінки, що знаходяться під цією директорією, і немає потреби використовувати символ заміщення
*
, як у варіанті "/form/*".
Зауважте, що завжди слід використовувати відносні шляхи, а не абсолютні URL-адреси на кшталт "https://www.example.com/form/" у директивах Disallow та Allow.
Будьте обережні, щоб уникнути помилкових правил. Наприклад, використання
/form
без слеша наприкінці може також заблокувати сторінки на кшталт "/form-design-examples/", яку ви, можливо, хочете індексувати.
5. Блокування URL-адрес користувацьких акаунтів
Якщо у вас є інтернет-магазин, ймовірно, ви маєте директорії на зразок "/myaccount/", наприклад, "/myaccount/orders/" або "/myaccount/profile/".
Головна сторінка "/myaccount/" може бути сторінкою входу, яку ви хочете, щоб користувачі знаходили через пошук. Однак підсторінки можуть бути не потрібними для сканування Googlebot.
Ви можете використовувати правило Disallow у комбінації з Allow, щоб заблокувати всі сторінки під директорією "/myaccount/", крім самої сторінки "/myaccount/":
User-agent: *
Disallow: /myaccount/
Allow: /myaccount/$
Google, дотримуючись найбільш конкретного правила, заблокує все під директорією "/myaccount/", але дозволить сканування тільки сторінки "/myaccount/".
Ось інший приклад використання правил Disallow і Allow: якщо ваша сторінка пошуку знаходиться в директорії "/search/" і ви хочете, щоб вона індексувалася, але бажаєте заблокувати самі URL пошукових запитів:
User-agent: *
Disallow: /search/
Allow: /search/$
Таким чином, можна гнучко керувати тим, які сторінки повинні індексуватись, а які — залишатись прихованими від пошукових систем.
6. Блокування JavaScript-файлів, не пов'язаних із рендерингом
Кожен сайт використовує JavaScript, і чимало цих скриптів не мають стосунку до рендерингу контенту, як-от скрипти для відстеження або завантаження реклами через AdSense.
Googlebot може сканувати та відображати вміст сайту без цих скриптів. Тому їх блокування є безпечним і рекомендованим, оскільки це знижує кількість запитів і ресурси, необхідні для обробки цих файлів.
Ось приклад рядка для блокування JavaScript-файла з пікселями для відстеження:
User-agent: *
Disallow: /assets/js/pixels.js
7. Блокування AI-чатботів та веб-скрейперів
Багато власників сайтів турбуються, що їхній контент використовується для тренування моделей штучного інтелекту без їхньої згоди, тому вони прагнуть цьому запобігти.
#чатботи AI
User-agent: GPTBot
User-agent: ChatGPT-User
User-agent: Claude-Web
User-agent: ClaudeBot
User-agent: anthropic-ai
User-agent: cohere-ai
User-agent: Bytespider
User-agent: Google-Extended
User-Agent: PerplexityBot
User-agent: Applebot-Extended
User-agent: Diffbot
Disallow: /
#скрейпери
User-agent: Scrapy
User-agent: magpie-crawler
User-agent: CCBot
User-Agent: omgili
User-Agent: omgilibot
User-agent: Node/simplecrawler
Disallow: /
У цьому прикладі кожен бот має своє правило, і команда "Disallow: /" забороняє їм сканувати будь-яку частину сайту.
Окрім того, що це дозволяє уникнути використання вашого контенту для навчання AI, таке блокування допомагає знизити навантаження на сервер, мінімізуючи непотрібне сканування.
Щоб зрозуміти, які боти варто блокувати, можна перевірити журнали сервера й подивитися, які з них перевантажують ваші ресурси. Однак пам'ятайте, що robots.txt не захищає від несанкціонованого доступу.
8. Вказування URL-адреси карти сайту
Додавання URL карти сайту в файл robots.txt допомагає пошуковим системам легше знаходити всі важливі сторінки на вашому сайті. Це робиться за допомогою спеціального рядка, який вказує на розташування карти сайту. Ви можете вказати кілька карт сайтів, кожна з яких має бути на окремому рядку.
Sitemap: https://www.example.com/sitemap/articles.xml
Sitemap: https://www.example.com/sitemap/news.xml
Sitemap: https://www.example.com/sitemap/video.xml
На відміну від правил Allow або Disallow, які використовують відносні шляхи, директива Sitemap вимагає повного, абсолютного URL для вказання місця розташування карти сайту.
Переконайтеся, що URL-адреси карти сайту доступні для пошукових систем і мають правильний синтаксис, щоб уникнути помилок.
9. Використання директиви Crawl-Delay
Директива crawl-delay у файлі robots.txt задає кількість секунд, яку бот повинен зачекати перед тим, як сканувати наступну сторінку. Хоча Googlebot не підтримує директиву crawl-delay, інші боти можуть її враховувати.
Це допомагає запобігти перевантаженню сервера, контролюючи частоту сканування.
Наприклад, якщо ви хочете, щоб ClaudeBot сканував ваш контент для навчання AI, але при цьому не хочете перевантажувати сервер, можна встановити затримку між запитами:
User-agent: ClaudeBot
Crawl-delay: 60
Це інструкція для ClaudeBot зачекати 60 секунд між запитами при скануванні сайту.
Проте варто пам'ятати, що не всі AI-боти можуть враховувати цю директиву, і в такому випадку може знадобитися використання веб-файрвола для обмеження швидкості їх запитів.
Як усунути проблеми з robots.txt
Після того як ви створили файл robots.txt, важливо перевірити його на правильність синтаксису і переконатися, що ви випадково не заблокували важливі URL-адреси.
1. Валідатор robots.txt у Google Search Console
Після оновлення файлу robots.txt потрібно переконатися, що він не містить помилок і не блокує URL-адреси, які ви хочете, щоб сканував пошуковий робот. Це можуть бути ресурси, зображення або окремі розділи сайту.
Перейдіть до розділу Налаштування > robots.txt , і ви знайдете вбудований валідатор robots.txt.
2. Парсер robots.txt від Google
Це офіційний парсер від Google , який використовується в Search Console.
Він вимагає просунутих навичок для встановлення та запуску на локальному комп’ютері. Проте його використання дуже рекомендується, оскільки дозволяє перевіряти зміни у файлі robots.txt до того, як завантажувати його на сервер, забезпечуючи відповідність офіційному парсеру Google.
Централізоване управління robots.txt
Кожен домен і субдомен повинен мати власний файл robots.txt, оскільки Googlebot не враховує файл robots.txt з кореневого домену для субдоменів.
Це створює певні труднощі для сайтів із численними субдоменами, оскільки потрібно підтримувати кілька окремих файлів robots.txt.
Однак є можливість розмістити файл robots.txt на субдомені, наприклад, https://cdn.example.com/robots.txt, і налаштувати перенаправлення з https://www.example.com/robots.txt на цей файл.
Також можна зробити навпаки — розмістити файл лише на кореневому домені та налаштувати перенаправлення з субдоменів на кореневий домен.
Пошукові системи оброблятимуть перенаправлений файл так, ніби він знаходиться на кореневому домені. Такий підхід дозволяє централізовано керувати правилами robots.txt для головного домену та субдоменів.
Це робить оновлення та підтримку файлу значно ефективнішими. Інакше довелося б використовувати окремий файл robots.txt для кожного субдомену.
Висновок
Правильно оптимізований файл robots.txt є критично важливим для ефективного управління скануванням сайту. Він дозволяє пошуковим роботам, таким як Googlebot, зосередитися на важливих сторінках, замість того щоб витрачати ресурси на другорядні.
Також, блокування AI-ботів і скрейперів за допомогою robots.txt може суттєво знизити навантаження на сервер і зекономити обчислювальні ресурси.
Завжди перевіряйте зміни у файлі, щоб уникнути несподіваних проблем зі скануванням.
Водночас, хоча блокування непотрібних ресурсів через robots.txt може підвищити ефективність сканування, основними факторами, що впливають на бюджет сканування, є якісний контент і швидкість завантаження сторінок.