Seo Форум

Поисковая оптимизация => Базовая поисковая оптимизация => Тема начата: Владимир75 от 02-12-2016, 13:44:15

Название: Ошибки, часто встречающиеся в файле robots.txt
Отправлено: Владимир75 от 02-12-2016, 13:44:15

   Непосредственно ошибки
1.   Перепутанные инструкции
2.   Указание нескольких каталогов в одной инструкции Disallow
3.   Имя файла содержит заглавные буквы
4.   Использование файла robot.txt вместо robots.txt
5.   Пустая строка в User-agent
6.   Url в директиве Host
7.   Использование в Disallow символов подстановки
2.   Плохой стиль
1.   Комментарии на одной строке с инструкциями
2.   Редирект на страницу 404-й ошибки:
3.   Заглавные буквы – это плохой стиль
4.   Перечисление всех файлов
5.   Инструкции Allow не существует! [перевод устаревший]
6.   Использование дополнительных директив в секции *
7.   Отсутствие инструкции Disallow
8.   Отсутствие слешей при указании директории
9.   Неправильный http-заголовок
 


Непосредственно ошибки
Перепутанные инструкции
Одна из самых распространённых ошибок в robots.txt – перепутаные между собой инструкции. Например:
User-agent: /
Disallow: Yandex
Правильно писать вот так:
User-agent: Yandex
Disallow: /


Указание нескольких каталогов в одной инструкции Disallow
Многие владельцы сайтов пытаются поместить все запрещаемые к индексации каталоги в одну инструкцию Disallow.
Disallow: /css/ /cgi-bin/ /images/
Такая запись нарушает стандарт, и невозможно угадать, как ее обработают разные роботы. Некоторые могут «отбросить» пробелы и интерпретируют эту запись как «Disallow: /css/cgi-bin/images/». Некоторые могут использовать только первую или последнюю папки (/css/ или /images/ соответственно). Кто-то может просто отбросить непонятную инструкцию полностью.
Конечно, какие-то роботы могут обработать эту конструкцию именно так, как расчитывал веб-мастер, но расчитывать на это все же не стоит. Правильно надо писать так:
Disallow: /css/
Disallow: /cgi-bin/
Disallow: /images/


Имя файла содержит заглавные буквы
Файл должен называться robots.txt, а не Robots.txt или ROBOTS.TXT.


Использование файла robot.txt вместо robots.txt
Еще раз – файл должен называться robots.txt.


Пустая строка в User-agent
Так неправильно:
User-agent:
Disallow:
Так правильно:
User-agent: *
Disallow:

Url в директиве Host
Следует писать без аббревиатуры протокола передачи гипертекста, то есть без http:// и без закрывающего слеша /
Неправильно:
User-agent: Yandex
Disallow: /cgi-bin
Host: http://www.site.ru/
Правильно:
User-agent: Yandex
Disallow: /cgi-bin
Host: www.site.ru
Директива host Является корректной только для робота Яндекса


Использование в Disallow символов подстановки
Иногда хочется написать что-то вроде:
User-agent: *
Disallow: file*.html
для указания все файлов file1.html, file2.html, file3.html и т.д. Но нельзя, к сожалению (некоторые роботы поддерживают символы подстановки).


Плохой стиль
Комментарии на одной строке с инструкциями
По стандарту, такая запись вполне возможна:
Disallow: /cgi-bin/ #запрещаем роботам индексировать cgi-bin
В прошлом некоторые роботы не обрабатывали такие строки. Вероятно, сейчас ни у одной из основных поисковых систем уже нет такой проблемы, но стоит ли рисковать? Лучше помещать комментарии отдельно.


Редирект на страницу 404-й ошибки:
Довольно часто, на сайтах без файла robots.txt при запросе этого файла делается переадресация на другую страницу. Иногда такая переадресация происходит без отдачи статуса 404 Not Found. Пауку самому приходится разбираться, что он получил – robots.txt или обычный html-файл. Эта ситуация вряд ли создаст какие-то проблемы, но все-таки лучше всегда класть в корень сайта пустой файл robots.txt.


Заглавные буквы – это плохой стиль
USER-AGENT: GOOGLEBOT
DISALLOW:
Хотя по стандарту robots.txt и нечувствителен к регистру, часто к нему чувствительны имена файов и директорий. Кроме того, написание robots.txt сплошь заглавными буквами считается плохим стилем.
User-agent: googlebot
Disallow:


Перечисление всех файлов
Еще одной ошибкой является перечисление каждого файла в директории:
User-agent: *
Disallow: /AL/Alabama.html
Disallow: /AL/AR.html
Disallow: /Az/AZ.html
Disallow: /Az/bali.html
Disallow: /Az/bed-breakfast.html
Вместо этого можно просто закрыть от индексации директорию целиком:
User-agent: *
Disallow: /AL/
Disallow: /Az/


Инструкции Allow не существует! [перевод устаревший]
Примечание: Не существовало на момент перевода данного текста, сейчас эта инструкция поддерживаетcя и Гуглом, и Яндексом. Уточняйте по использованию для других роботов.
Нет инструкции Allow, есть только Disallow. Файл robots.txt ничего не разрешает, только запрещает!
Отдельные роботы (например googlebot) понимают директиву Allow
Так неправильно:
User-agent: Yandex
Disallow: /john/
Allow: /jane/
А вот так – правильно:
User-agent: Yandex
Disallow: /john/
Disallow:


Использование дополнительных директив в секции *
Некоторые роботы могут неправильно отреагировать на использование дополнительных директив. Это значит, что не стоит использовать дополнительные директивы в секции «*».
То есть рекомендуется создавать специальные секции для нестандартных директив, таких как «Host».
Так неправильно:
User-agent: *
Disallow: /css/
Host: www.example.com
А вот так – правильно:
User-agent: *
Disallow: /css/
User-agent: Yandex
Disallow: /css/
Host: www.example.com


Отсутствие инструкции Disallow
Даже если мы хотим просто использовать дополнительную директиву и не хотим ничего запрещать, лучше всего указать пустой Disallow. По стандарту интрукция Disallow является обязательной, и робот может «неправильно вас понять».
Так неправильно:
User-agent: Yandex
Host: www.example.com
Так правильно:
User-agent: Yandex
Disallow:
Host: www.example.com
Обсуждение этого вопроса на Searchengines.ru


Отсутствие слешей при указании директории
Как в этом случае поступит робот?
User-agent: Yandex
Disallow: john
По стандарту, он не будет индексировать файл с именем “john” и директорию с именем “john”. Для указания только директории надо писать так:
User-agent: Yandex
Disallow: /john/


Неправильный http-заголовок
Сервер должен возвращать в HTTP-заголовке для robots.txt «Content-Type: text/plain» а, например, не «Content-Type: text/html». Неправильный заголовок может привести к тому, что некоторые роботы не обработают файл.
Название: Re: Ошибки, часто встречающиеся в файле robots.txt
Отправлено: inkanus.gray от 02-12-2016, 14:00:09
Директива host Является корректной только для робота Яндекса

Директива host также поддерживается поисковиком mail.ru:
https://help.mail.ru/webmaster/indexing/robots.txt/rules/host (https://help.mail.ru/webmaster/indexing/robots.txt/rules/host)

Он не такой удобный, как поисковые гиганты, но в Рунете почему-то третий по популярности, поэтому его существование тоже нужно учитывать.
Название: Re: Ошибки, часто встречающиеся в файле robots.txt
Отправлено: Владимир75 от 02-12-2016, 14:03:51
Директива host также поддерживается поисковиком mail.ru:
https://help.mail.ru/webmaster/indexing/robots.txt/rules/host (https://help.mail.ru/webmaster/indexing/robots.txt/rules/host)

Он не такой удобный, как поисковые гиганты, но в Рунете почему-то третий по популярности, поэтому его существование тоже нужно учитывать.
Дело в том что, Mail.ru использует базу яндекса))), он конечно пытаеться по своему ранжировать, но выдача не сильно отличаеться от яшиной...
Название: Re: Ошибки, часто встречающиеся в файле robots.txt
Отправлено: inkanus.gray от 02-12-2016, 14:51:34
Дело в том что, Mail.ru использует базу яндекса

Точно? А зачем ему тогда свои боты, которые ходят по сайтам?

По моим наблюдениям отличается не только ранжирование, но и сниппеты (другая обработка тега description, микроразметки вроде хлебных крошек и т. п.).

Может быть, информация о базе Яндекса устарела?
Название: Re: Ошибки, часто встречающиеся в файле robots.txt
Отправлено: Владимир75 от 02-12-2016, 14:58:39
Сниппеты  здесь причём, мы про роботы говорим, не устарела.
Название: Re: Ошибки, часто встречающиеся в файле robots.txt
Отправлено: inkanus.gray от 02-12-2016, 16:57:12
При том, что несколько лет назад поисковик Mail.ru действительно использовал поочерёдно то базу Яндекса, то базу Гугла, а теперь перешёл на собственный индексатор.

Сходу гуглится несколько статей. Например, такая: http://rusfusion.ru/articles.php?article_id=119

Теперь у Mail.ru собственные боты, так что сведения об использовании базы Яндекса устарели на три года.

P.S. Вот ещё заметка трёхлетней давности: http://searchengines.guru/showthread.php?t=815174
Название: Re: Ошибки, часто встречающиеся в файле robots.txt
Отправлено: Владимир75 от 02-12-2016, 18:27:59
Правильно боты, кто будет ходить по базам, не отдали же свои алгоритмы ранжирования яндекс и гугл, а серваки и базы это отдельно, в 2010 или в 2011 в Казахстане приняли закон, по которому казахские сайты должны были лежать на казахских серваках, в конечном итоге гугл не стал размещать серваки на территории казахстана, а просто оплатил штраф(50 или 80млн.баксов), почему оплатил, так потому-что на много дешевле вышло, у мэйла просто не хватит денег на такое количество серверов, что-бы база была актуальной, что-то они и делают, что это боты их ходят по базам яндекса, вебмастер свой есть и выдача не много отличаеться. И хватит здесь флудить, тема о роботсе)))
Название: Re: Ошибки, часто встречающиеся в файле robots.txt
Отправлено: inkanus.gray от 02-12-2016, 20:33:19
А я и пишу о роботсе. Написал это к тому, что директиву Host: нужно размещать не только в секции User-Agent: Yandex, но и в секции User-Agent: Mail.RU_Bot. Бота с таким юзерагентом лично видел в логах.

P.S. Если есть возражения, больше здесь флудить не буду, а создам отдельную тему про этот поисковик.
Название: Re: Ошибки, часто встречающиеся в файле robots.txt
Отправлено: warlord от 08-12-2016, 06:41:24
а что делать с host если сайт на https? прописывать host: https://www.site.ru или оставлять как есть www.site.ru?
Название: Re: Ошибки, часто встречающиеся в файле robots.txt
Отправлено: quTG от 08-12-2016, 09:21:51
а что делать с host если сайт на https? прописывать host: https://www.site.ru или оставлять как есть www.site.ru?

Протокол в директиве не пишется все равно. Склейка http и https происходит автоматически. Чтобы повлиять на нее, можно переклеить зеркала на разных протоколах в Вебмастере
Название: Re: Ошибки, часто встречающиеся в файле robots.txt
Отправлено: Shokoladnet от 08-12-2016, 10:44:11
а что делать с host если сайт на https? прописывать host: https://www.site.ru или оставлять как есть www.site.ru?

Яндекс в этом случае рекомендует прописывать так:  https://www.site.ru

Но видела недавно аудит по сайту, выполненный известной компанией, так они пишут без протокола.

Так что я тоже в сомнениях, но разве Яндексу не виднее?))
Название: Re: Ошибки, часто встречающиеся в файле robots.txt
Отправлено: warlord от 08-12-2016, 10:51:11
Ну вот тоже по рекомендации Яндекса прописали с протоколом. И все равно в сомнениях, а стоит ли так делать...
Название: Re: Ошибки, часто встречающиеся в файле robots.txt
Отправлено: Надежда Хачатурова от 08-12-2016, 11:13:02
Отдельные роботы (например googlebot) понимают директиву Allow
Все верно. С помощью allow открываем заблoкированные ресурсы в запрещенных к сканированию папках для googlebot'ov.

Название: Re: Ошибки, часто встречающиеся в файле robots.txt
Отправлено: Иван Маслов от 08-12-2016, 11:29:55
Очень полезная инфа, спасибо Владимир!
Название: Re: Ошибки, часто встречающиеся в файле robots.txt
Отправлено: alex115 от 08-12-2016, 11:38:39
а что делать с host если сайт на https? прописывать host: https://www.site.ru или оставлять как есть www.site.ru?

Как написано в руководстве Яндекса по поводу директивы Host (см. https://yandex.ru/support/webmaster/controlling-robot/robots-txt.xml#host ):
"Директива Host должна содержать указание на протокол HTTPS, если зеркало доступно только по защищенному каналу (Host: https://myhost.ru)."
Название: Re: Ошибки, часто встречающиеся в файле robots.txt
Отправлено: beesyst от 08-12-2016, 16:18:44
1. Просьба объяснить, зачем указывать каждого бота, когда, по идее, можно указать:

User-agent: *

2. Можете точно указать по поводу host, если https:

Host: www.example.com (у меня так указано)
Host: https://www.example.com/
Host: https://www.example.com

3. Зачем указывать:

Crawl-delay: 4

4. Нужно ли указывать Sitemap? Если да, то как?

Спасибо.
Название: Re: Ошибки, часто встречающиеся в файле robots.txt
Отправлено: alex115 от 08-12-2016, 18:17:22
1. Просьба объяснить, зачем указывать каждого бота, когда, по идее, можно указать:

User-agent: *

Единственное объяснение, зачем нужен блок "User-agent: Yandex" - это то, что директиву Host могут понимать не все роботы. Эксперименты показали, что если правила для всех роботов одинаковы, то сайт великолепно себя чувствует с одним блоком "User-agent: *".

2. Можете точно указать по поводу host, если https:

Host: www.example.com (у меня так указано)
Host: https://www.example.com/
Host: https://www.example.com

У Яндекса написано (https://yandex.ru/support/webmaster/controlling-robot/robots-txt.xml#host ), что директива должны быть такая:
Host: https://www.example.com

Дополнительно можете посмотреть https://devaka.ru/articles/moving-to-https Раздел 3.

3. Зачем указывать:

Crawl-delay: 4

Crawl-delay обычно используют, если сервер перегружен. Тогда можно установить задержку, через сколько секунд грузить следующую страницу.

4. Нужно ли указывать Sitemap? Если да, то как?


Sitemap нужно указывать, причем всегда с укзазанием протокола (не важно http или https). Смотрите здесь: https://yandex.ru/support/webmaster/controlling-robot/robots-txt.xml#sitemap
Название: Re: Ошибки, часто встречающиеся в файле robots.txt
Отправлено: beesyst от 08-12-2016, 18:25:44
Благодарю.
Название: Re: Ошибки, часто встречающиеся в файле robots.txt
Отправлено: ClubTravels от 09-12-2016, 09:52:24
   Непосредственно ошибки

Url в директиве Host
Следует писать без аббревиатуры протокола передачи гипертекста, то есть без http:// и без закрывающего слеша /
Неправильно:
User-agent: Yandex
Disallow: /cgi-bin
Host: http://www.site.ru/
Правильно:
User-agent: Yandex
Disallow: /cgi-bin
Host: www.site.ru
Директива host Является корректной только для робота Яндекса

Т.е. вот так неправильно?
User-agent: *
---
---
Host: https://club-travels.ru

У меня https - основной, а http и www - зеркала

Название: Re: Ошибки, часто встречающиеся в файле robots.txt
Отправлено: alex115 от 09-12-2016, 10:40:10
Т.е. вот так неправильно?
User-agent: *
---
---
Host: https://club-travels.ru

У меня https - основной, а http и www - зеркала


У Яндекса написано, что протокол в директиве Host указывается только в том случае, если сайт работает по https. Так что все правильно.
Название: Re: Ошибки, часто встречающиеся в файле robots.txt
Отправлено: Владимир75 от 09-12-2016, 11:39:43
У Яндекса написано, что протокол в директиве Host указывается только в том случае, если сайт работает по https. Так что все правильно.

Да это с тех времён, когда в вебмастере яндекса можно, как в гугле вебмастере прописывать главное зеркало сайта, но яндекс тормозной поэтому прописывать не помешает.
Название: Re: Ошибки, часто встречающиеся в файле robots.txt
Отправлено: Skyer от 19-06-2017, 16:40:51
1. Из практики если сайт без http:// то указываю Host: site.com
2. Если сайт с https:// то указываю Host: https://site.com  в противном случае яндекс ругается на Host

Вопрос:
Кто-то разобрался как сделать чтобы гугл не ругался на параметр Clean-param: даже если он в блоке User-agent: Yandex
Название: Re: Ошибки, часто встречающиеся в файле robots.txt
Отправлено: alexis54 от 10-11-2017, 00:50:10
Есть еще один нюанс. который нигде не увидел - директива Sitemap. Если на сайте постоянно добавляется уникальный контент, то лучше НЕ добавлять в robots.txt ссылку на карту сайта.
Название: Re: Ошибки, часто встречающиеся в файле robots.txt
Отправлено: Владимир75 от 10-11-2017, 01:00:31
Есть еще один нюанс. который нигде не увидел - директива Sitemap. Если на сайте постоянно добавляется уникальный контент, то лучше НЕ добавлять в robots.txt ссылку на карту сайта.
Почему не добавлять, карта сайта может и автоматически обновлятся при размещении нового контента, как правило в любой cms есть такой плагин или модуль, который на автомате добавляет новый адрес в карту.
Название: Re: Ошибки, часто встречающиеся в файле robots.txt
Отправлено: kirkirkir от 25-12-2017, 16:07:04
Особенно важно для начинающих :D
Избыточное наполнение robots.txt. Начинающие вебмастера впечатляются статьями, где сказано, что все ненужное необходимо закрыть в robots.txt и начинают закрывать вообще все, кроме текста на строго определенных страницах. Это, мягко говоря, неверно.
Во-первых, существует рекомендация Google не закрывать скрипты, CSS и прочее, что может помешать боту увидеть сайт так же, как видит его пользователь.
Во-вторых, очень большое количество ошибок связано с тем, что закрывая одно, пользователь закрывает другое тоже. Безусловно, можно и нужно проверять доступность страницы и ее элементов.
Как вариант ошибки - путаница с последовательностью Allow и Disallow.
Лучше всего закрывать в robots.txt только очевидно ненужные боту вещи, вроде формы регистрации, страницы перенаправления ссылок и т.п., а от дубликатов избавляться с помощью canonical.
Обратите внимание, что то, что Вы поправили robots.txt совсем не обозначает, что Yandex- bot и Google-bot его сразу перечитают. Для ускорения этого процесса достаточно посмотреть на robots.txt, соответствующем разделе вебмастера.
Лучше всего для начала прогоните сайт через Лабрику ( labrika ), в техническом аудите будет видно- правильно ли настроен  robots, каноникал, есть ли редиректы, есть ли битые 404 страницы и т.д.


Название: Re: Ошибки, часто встречающиеся в файле robots.txt
Отправлено: Leonova от 30-08-2018, 14:07:21
Спасибо.
У меня было: "User-agent:", как оказалось, это не правильно... Сделала "User-agent: *"
Название: Re: Ошибки, часто встречающиеся в файле robots.txt
Отправлено: Андрейкерч от 04-04-2019, 16:39:53
Спасибо за информацию! Хотя бы по этому чек листу проведу проверку