- Файл robots.txt і стандарт винятків для роботів
- Директива User-agent
- Директива Disallow
- Директива Allow (неофіційна)
- Sitemap (неофіційна)
- Директива Host (тільки Яндекс)
- інші директиви
- Роботи, директиви robots.txt і індекс пошукових систем
- Чому Google додає в індекс сторінки, заборонені в robots.txt?
- Індекс Google + некоректний robots.txt = дубль
- Приклади robots.txt для WordPress
- Перш ніж змінювати свій robots.txt ...
- У двох словах про те, що закривати в robots.txt
При кожному зверненні до сайту пошукові роботи насамперед шукають і зчитують файл robots.txt. У ньому записані спеціальні директиви, що керують поведінкою робота. Приховану небезпеку для будь-якого сайту може нести як відсутність цього файлу, так і його некоректна настройка. Пропоную детальніше вивчити питання настройки robots.txt взагалі і для CMS WordPress зокрема, а також звернути увагу на часті помилки.
Файл robots.txt і стандарт винятків для роботів
Всі пошукові системи розуміють інструкції, написані в спеціальному файлі згідно стандарту винятків для роботів . З цією метою використовується звичайний текстовий файл з назвою robots.txt, розташований в кореневому каталозі сайту. При коректному розміщенні вміст цього файлу можна подивитися на будь-якому сайті просто дописав після адреси домену /robots.txt. наприклад, http://avovkdesign.com/robots.txt .
Інструкції для роботів дозволяють забороняти до сканування файли / каталоги / сторінки, обмежувати частоту доступу до сайту, вказувати дзеркало і XML карту. Кожну інструкцію пишуть з нового рядка в наступному форматі:
[Директива]: [значення]
Весь список директив розбивають на секції (записи), розділяючи їх одним або декількома пустими рядками. Нову секцію починають з однієї або декількох інструкцій User-agent. Запис повинен містити як мінімум одну директиву User-agent і одну Disallow.
Текст після символу # (решітка) вважається коментарем і ігнорується пошуковими роботами.
до змісту ↑
Директива User-agent
User-agent - перша директива в секції, повідомляє імена роботів, для яких призначені наступні за нею правила. Зірочка в значенні позначає будь-яке ім'я, дозволяється тільки одна секція з інструкціями для всіх роботів. приклад:
# Інструкції для всіх роботів User-agent: * ... # інструкції для роботів Яндекса User-agent: Yandex ... # інструкції для роботів Google User-agent: Googlebot ... до змісту ↑
Директива Disallow
Disallow - основна директива, яка забороняє сканування URL / файлів / каталогів, імена яких повністю або частково збігаються із зазначеними після двокрапки.
Просунуті пошукові роботи на кшталт Яндекса і Google розуміють спецсимвол * (зірочка), що позначає будь-яку послідовність символів. Підстановку не бажано використовувати в секції для всіх роботів.
Приклади директиви Disallow:
# Пусте значення дозволяє індексувати всі User-agent: * Disallow: # забороняє сканувати весь сайт User-agent: * Disallow: / # забороняє до сканування всі файли і / або каталоги, що починаються з символів 'wp-' User-agent: * Disallow : / wp- # забороняє сканувати файли page-1.php, page-vasya.php, page-news-345.php # замість * може зустрічатися будь-яка послідовність символів User-agent: * Disallow: /page-*.php до змісту ↑
Директива Allow (неофіційна)
Allow дозволяє сканування вказаних ресурсів. Офіційно цієї директиви нету в стандарті винятків для роботів, тому не бажано використовувати її в секції для всіх роботів (User-agent: *). Відмінний приклад використання - дозволити до сканування ресурси з каталогу, який раніше заборонений до індексації директивою Disallow:
# Забороняє сканувати ресурси починаються з / catalog # але дозволяє сканувати сторінку /catalog/page.html User-agent: Yandex Disallow: / catalog Allow: /catalog/page.html до змісту ↑
Sitemap (неофіційна)
Sitemap - директива, яка вказує адресу карти сайту в форматі XML. Ця директива так само не описана в стандарті винятків і підтримується не всіма роботами (працює для Яндекс, Google, Ask, Bing і Yahoo). Можна вказувати одну або кілька карт - все буде враховано. Може використовуватися без User-agent після порожнього рядка. приклад:
# Одна або кілька карт в форматі XML, вказується повний URL Sitemap: http://sitename.com/sitemap.xml Sitemap: http://sitename.com/sitemap-1.xml до змісту ↑
Директива Host (тільки Яндекс)
Host - директива для робота Яндекс, яка вказує основне дзеркало сайту. Питання про дзеркала детальніше можна вивчити в довідці Яндекса . Цю інструкцію можна вказувати як в секції для роботів Яндекса, так і окремим записом без User-agent (інструкція міжсекційна і в будь-якому випадку буде врахована Яндексом, а решта роботи її проігнорують). Якщо в одному файлі Host вказано кілька разів, то буде врахована тільки перша. приклади:
# Вказуємо головне дзеркало в секції для Яндекса User-agent: Yandex Disallow: Host: sitename.com # головне дзеркало для сайту з SSL сертифікатом User-agent: Yandex Disallow: Host: https://sitename.com # або окремо без User- agent після порожнього рядка Host: sitename.com до змісту ↑
інші директиви
Роботи Яндекса також розуміють директиви Crawl-delay і Clean-param . Детальніше про їх використання читайте в довідковій документації.
до змісту ↑
Роботи, директиви robots.txt і індекс пошукових систем
Раніше пошукові роботи слідували директивам robots.txt і не додавали в індекс «заборонених» там ресурсів.
Сьогодні все інакше. Якщо Яндекс слухняно виключить з індексу адреси, заборонені в файлі Роботс, то Google надійде зовсім інакше. Він обов'язково додасть їх індекс, але в результатах пошуку буде стояти напис «Опис веб-сторінки недоступно через обмеження у файлі robots.txt».
до змісту ↑Чому Google додає в індекс сторінки, заборонені в robots.txt?
Відповідь криється в маленькій хитрості гугла. Якщо уважно прочитати довідку для вебмастера, то все стає більш ніж зрозуміло:
Google безсоромно повідомляє, що директиви в robots.txt є рекомендацією , А не прямими командами до дії.
Це означає, що робот директиви враховує, але надходить все-таки по-своєму. І він може додати в індекс сторінку, заборонену в robots.txt, якщо зустріне на неї посилання.
Додавання адреси в robots.txt не гарантує виключення його з індексу пошукової системи Google.
до змісту ↑
Індекс Google + некоректний robots.txt = дубль
Практично кожне керівництво в мережі говорить про те, що закриття сторінок в robots.txt забороняє їх індексацію.
Раніше так і було. Але ми вже знаємо, що для Google така схема сьогодні не працює. А що ще гірше - кожен пішов таким рекомендаціям робить величезну помилку - закриті URL потрапляють в індекс і позначаються як дублі, відсоток дубльованого контенту стає дедалі більше і рано чи пізно сайт карається фільтром Панда.
Google пропонує два дійсно робочих варіанти для виключення з індексу ресурсів веб-сайту:
- закриття паролем (застосовується для файлів на зразок .doc, .pdf, .xls та інших)
- додавання метатега robots з атрибутом noindex в <head> (застосовується для веб-сторінок): <meta name = "robots" content = "noindex, nofollow">
Головне, що потрібно врахувати:
Якщо на веб-сторінку додати зазначений вище мета-тег, який забороняє індексацію, і додатково заборонити сканування цієї-ж сторінки в robots.txt, то робот Google не зможе прочитати мета-тег з забороною і додасть сторінку в індекс!
(тому він і пише в результатах пошуку, що опис обмежена в robots.txt)
Детальніше про цю проблему можна почитати в довідці Google . А рішення тут одне - відкривати доступ в robots.txt і налаштовувати заборона на індексацію сторінок метатегах (або паролем, якщо мова про файлах).
Приклади robots.txt для WordPress
Якщо уважно ознайомитися з попереднім розділом, то стає зрозуміло, що сьогодні не варто практикувати надмірний заборона адрес в robots.txt, принаймні для Google. Управляти індексацією сторінок краще через метатег robots.
Ось самий банальний і при цьому абсолютно правильний robots.txt для WordPress:
User-agent: * Disallow: Host: sitename.com
Здивовані? Ще б! Все геніальне просто 🙂 На західних ресурсах, де немає Яндекса, рекомендації щодо складання robots.txt для WordPress зводяться до двох перших рядках, як це показали автори WordPress SEO by Yoast .
Правильно налаштований SEO-плагін подбає про канонічні посиланнях і метатеге robots зі значенням noindex, а сторінки адмінки під паролем і не потребують заборону індексації (винятком можуть бути тільки сторінки входу і реєстрації на сайту - переконайтеся, що на них є meta тег robots зі значенням noindex). Карту сайту правильніше додати вручну в вебмайстрів пошукової системи і заодно простежити, щоб вона була коректно прочитана. Залишилося єдине і важливе для рунета - вказати головне дзеркало для Яндекса.
Ще один варіант, підійде для менш сміливих:
User-agent: * Disallow: / wp-admin Host: sitename.com Sitemap: http://sitename.com/sitemam.xml
У першій секції забороняється індексація для всіх роботів каталогу wp-admin і його вмісту. В останніх двох рядках вказані дзеркало сайту для робота Яндекса і карта сайту.
до змісту ↑Перш ніж змінювати свій robots.txt ...
Якщо прийняли рішення про зміну директив в robots.txt, то спочатку подбайте про три речі:
- Переконайтеся, що в корені вашого сайту немає додаткових файлів або каталогів, вміст яких варто приховати від сканування (це можуть бути особисті файли або медіаресурси);
- Увімкніть канонічні посилання в своєму SEO-плагін (це виключить з індексу URL c параметрами запиту на кшталт http://sitename.com/index.php?s=word)
- Налаштуйте висновок метатега robots зі значенням noindex на сторінках, які хочете приховати від індексації (для WordPress це архіви за датою, мітці, автору і сторінки пагінацію). Зробити це можна для частини сторінок в настройках SEO-плагінів (в All In One SEO неповні настройки). Або спеціальним кодом вивести самостійно: / * ========================================== ================================ * Додаємо свій <META name = "robots" content = "noindex, nofollow"> * ================================================= ========================= * / function my_meta_noindex () {if (// is_archive () OR // будь-які сторінки архівів - за місяць, за рік, за рубрикою, по авторам // is_category () OR // архіви рубрик is_author () OR // архіви статей за автором is_time () OR // архіви статей за часом is_date () OR // архіви статей по будь-яким дат is_day ( ) OR // архіви статей по днях is_month () OR // архіви статей по місяцях is_year () OR // архіви статей по роках is_tag () OR // архіви статей за тегами is_tax () OR // архіви татів для користувальницької таксономії is_post_type_archive () OR // архіви для призначеного для користувача типу записи // is_front_page () OR // статична головна сторінка // is_home () OR // головна сторінка блогу з останніми записами // is_singular () OR // будь-які типи записів - поодинокі пости, сторінки, вкладення і т.д. // is_single () OR // будь-який одиночний пост будь-якого типу постів (крім вкладень і Сторінок) // is_page () OR // будь-яка одиночна Сторінка ( "Сторінки" в адмінці) is_attachment () OR // кожна сторінка вкладення is_paged () OR // все і будь-які сторінки пагінацію is_search () // сторінки результатів пошуку по сайту) {echo "". '<meta name = "robots" content = "noindex, nofollow" />'."\n "; }} Add_action ( 'wp_head', 'my_meta_noindex', 3); / * ================================================ ========================== * /
У рядках, що починаються з // метатег НЕ буде виводиться (в кожному рядку описано для якої сторінки призначене правило). Додаючи або видаляючи на початку рядка два слеша, можна контролювати буде виводитися мета-тег Роботс чи ні на певній групі сторінок.
У двох словах про те, що закривати в robots.txt
З налаштуванням файлу Роботс і індексацією сторінок потрібно запам'ятати два важливих моменти, які ставлять все на свої місця:
Використовуйте файл robots.txt, щоб управляти доступом до файлів і каталогів сервера. Файл robots.txt грає роль електронного знака «Вхід заборонений: приватна територія»
Використовуйте метатег robots, щоб зміст не з'являлося в результатах пошуку. Якщо на сторінці є мета-тег robots з атрибутом noindex, більшість роботів виключає всю сторінку з результатів пошуку, навіть якщо на неї посилаються інші сторінки.
Txt?Txt?
Php?