Правильний robots.txt і закриття сторінок від індексації

  1. Файл robots.txt і стандарт винятків для роботів
  2. Директива User-agent
  3. Директива Disallow
  4. Директива Allow (неофіційна)
  5. Sitemap (неофіційна)
  6. Директива Host (тільки Яндекс)
  7. інші директиви
  8. Роботи, директиви robots.txt і індекс пошукових систем
  9. Чому Google додає в індекс сторінки, заборонені в robots.txt?
  10. Індекс Google + некоректний robots.txt = дубль
  11. Приклади robots.txt для WordPress
  12. Перш ніж змінювати свій robots.txt ...
  13. У двох словах про те, що закривати в robots.txt

При кожному зверненні до сайту пошукові роботи насамперед шукають і зчитують файл robots.txt. У ньому записані спеціальні директиви, що керують поведінкою робота. Приховану небезпеку для будь-якого сайту може нести як відсутність цього файлу, так і його некоректна настройка. Пропоную детальніше вивчити питання настройки robots.txt взагалі і для CMS WordPress зокрема, а також звернути увагу на часті помилки.

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 пропонує два дійсно робочих варіанти для виключення з індексу ресурсів веб-сайту:

  1. закриття паролем (застосовується для файлів на зразок .doc, .pdf, .xls та інших)
  2. додавання метатега 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, то спочатку подбайте про три речі:

  1. Переконайтеся, що в корені вашого сайту немає додаткових файлів або каталогів, вміст яких варто приховати від сканування (це можуть бути особисті файли або медіаресурси);
  2. Увімкніть канонічні посилання в своєму SEO-плагін (це виключить з індексу URL c параметрами запиту на кшталт http://sitename.com/index.php?s=word)
  3. Налаштуйте висновок метатега 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?