Заботливый search cgi. Как отключить индексирование чтобы Windows не тормозил. Западная и японская анимация

Иногда случается так, что вы хотите скачать свободно распространяемый музыкальный альбом 2007 года, выпущенный исполнителем, которого знает три с половиной человека. Вы находите торрент-файл, запускаете его, загрузка доходит до 14,7% и… всё. Проходят дни и недели, а загрузка стоит на месте. Вы начинаете искать альбом в Google, рыщете по форумам и наконец находите ссылки на какие-нибудь файлообменники, но они уже давно не работают.

Такое происходит всё чаще и чаще - правообладатели постоянно закрывают полезные ресурсы. И если популярный контент найти по-прежнему не проблема, отыскать какой-нибудь телевизионный сериал семилетней давности на испанском языке может быть крайне трудно.

Что бы вам ни понадобилось в интернете, есть ряд способов это отыскать. Мы предлагаем все нижеперечисленные варианты исключительно для ознакомления с контентом, но ни в коем случае не для воровства.

Usenet

Usenet - распределённая сеть серверов, между которыми синхронизируются данные. Структура Usenet напоминает гибрид форума и электронной почты. Пользователи могут подключаться к специальным группам (Newsgroups), что-то в них читать или писать. Как и в случае с почтой, у сообщений есть тема, которая помогает определить тему группы. Сегодня Usenet используется по большей части для обмена файлами.

До 2008 года крупные провайдеры Usenet хранили файлы лишь 100–150 дней, однако затем файлы стали храниться вечно. Более мелкие провайдеры оставляют контент на 1 000 и более дней, чего зачастую тоже достаточно.

Примерно в середине 2001 года Usenet стали замечать правообладатели, из-за чего провайдерам пришлось удалять защищённый авторским правом контент. Но энтузиасты быстро нашли обходной путь: они стали давать файлам запутанные названия, защищать архивы паролями и добавлять их на специальные сайты, к которым можно получить доступ только по приглашению.

В России о существовании Usenet почти никто не знает, чего не скажешь о странах, где власти усердно борются с пиратством. В отличие от протокола BitTorrent, в Usenet нельзя определить IP-адрес пользователя без помощи провайдера сервиса или поставщика интернет-услуг.

Как подключиться к Usenet

В большинстве случаев бесплатно подключиться не выйдет. Придётся довольствоваться либо малым временем хранения файлов, либо низкой скоростью, либо доступом только к текстовым группам.

Провайдеры предлагают два типа платного доступа: ежемесячную подписку с неограниченным объёмом загружаемых данных или неограниченные по времени тарифы с лимитированным трафиком. Второй вариант - для тех, кому лишь иногда требуется что-то скачать. Крупнейшие поставщики таких услуг - Altopia , Giganews , Eweka , NewsHosting , Astraweb .

Теперь нужно понять, где брать NZB-файлы с метаинформацией - что-то вроде торрент-файлов. Для этого используются специальные поисковые движки - индексаторы.

Индексаторы

Публичные индексаторы полны спама и , но они всё ещё годятся для поиска файлов, загруженных пять или более лет назад. Вот некоторые из них:

Бесплатные индексаторы, требующие регистрации, больше подходят для поиска новых файлов. Они хорошо структурированы, у контента есть не только названия, но и описания с картинками. Можно попробовать следующие:

Также существуют индексаторы только для определённых типов контента. Например, anizb подойдёт поклонникам аниме, а albumsindex - тем, кто ищет музыку.

Скачивание из Usenet

В качестве примера возьмём «Фрейзер Парк» (The FP) - малоизвестный фильм 2011 года, вариант которого в разрешении 1080p отыскать практически невозможно. Нужно найти NZB-файл и запустить его через программу вроде NZBGet или SABnzbd .

Как качать через IRC

Вам потребуется IRC-клиент. Подойдёт почти любой - подавляющее большинство поддерживает DCC. Подключитесь к интересующему вас серверу и начинайте качать.

Крупнейшие серверы с книгами:

  • irc.undernet.org, комната #bookz;
  • irc.irchighway.net, комната #ebooks.

Фильмы:

  • irc.abjects.net, комната #moviegods;
  • irc.abjects.net, комната #beast-xdcc.

Западная и японская анимация:

  • irc.rizon.net, комната #news;
  • irc.xertion.org, комната #cartoon-world.

Для поиска файлов можно использовать команды!find или @find. Бот отправит результаты в виде личного сообщения. Если возможно, отдавайте предпочтение команде @search - она запускает специального бота, который предоставляет результаты поиска в виде одного файла, а не огромного потока текста.

Попробуем скачать «Как музыка стала свободной» (How Music Got Free) - книгу о музыкальной индустрии, написанную Стивеном Уиттом (Stephen Witt).


medium.com

Бот отреагировал на запрос @search и отправил результаты в виде ZIP-файла по DCC.

medium.com

Отправляем запрос на скачивание.

medium.com

И принимаем файл.


medium.com

Если вы нашли файл с помощью индексатора, то вам не нужно искать его на канале. Просто отправьте боту запрос на загрузку, используя команду с сайта индексатора.

DC++

В DC-сети все коммуникации осуществляются через сервер, называемый хабом. В ней можно искать конкретные типы файлов: аудио, видео, архивы, документы, образы дисков.

Делиться файлами в DC++ очень просто: достаточно поставить галочку напротив папки, к которой вы хотите предоставить общий доступ. За счёт этого можно отыскать что-то совершенно невообразимое - что-то, о чём вы сами уже давно забыли, но что может кому-то внезапно пригодиться.

Как качать через DC++

Подойдёт любой клиент. Для Windows лучшим вариантом является FlylinkDC++ . Пользователи Linux могут выбирать между и AirDC++ Web .

Поиск и загрузка реализованы удобно: введите запрос, выберите тип контента, нажмите «Искать» и два раза щёлкните по результату, чтобы скачать файл. Также можно просмотреть список всех открытых пользователем файлов и загрузить все файлы из выбранной папки. Для этого нужно правой кнопкой мыши щёлкнуть по поисковому результату и выбрать соответствующий пункт.


medium.com

Если что-то не нашли, попробуйте позже. Зачастую люди включают DC-клиент только когда им самим нужно что-то загрузить.

Индексаторы

Встроенный поиск находит только файлы в списках пользователей, находящихся в онлайн-режиме. Чтобы отыскать редкий контент, вам понадобится индексатор.

Единственный известный вариант - spacelib.dlinkddns.com , а также его зеркало dcpoisk.no-ip.org . Результаты представлены в виде magnet-ссылок, при нажатии на которые файлы сразу начинают скачиваться через DC-клиент. Стоит учитывать, что порой индексатор долгое время недоступен - иногда до двух месяцев.

eDonkey2000 (ed2k), Kad

Как и DC++, ed2k - протокол децентрализованной передачи данных с централизованным хабом для поиска и соединения пользователей друг с другом. В eDonkey2000 можно найти почти то же самое, что и в DC++: старые сериалы с разной озвучкой, музыку, программы, игры, старые , а также книги по математике и биологии. Впрочем, есть здесь и новые релизы.

Недавно мне потребовалось установить у себя поисковый движок для индексирования HTML страничек. Остановился я на mnoGoSearch. В процессе чтения документации я выписывал некоторые моменты, которые могут пригодиться впоследствии, чтобы не пришлось заново копаться в мануалах. В результате получилось что-то вроде небольшой шпаргалки. На случай, если вдруг она кому-нибудь пригодится, выкладываю ее сюда.

indexer -E create - создает все необходимые таблицы в базе данных (предполагается, что сама база данных уже создана).

indexer -E blob - создает индекс по всей проиндексированной информации (необходимо выполнять каждый раз после запуска indexer, если используется способ хранения blob, иначе поиск будет осуществляться только по старой информации, находящейся в базе данных, для которой был ранее выполнен indexer -E blob).

indexer -E wordstat - создает индекс по всем обнаруженным словам. search.cgi использует его при включенной опции Suggest. Если включить данную опцию, то, если поиск не дает результатов, search.cgi будет предлагать варианты правильного написания запроса на случай, если пользователь допустил ошибку.

Документы индексируются только тогда, когда считаются устаревшими. Период устаревания задается опцией Period, которая может быть указана к конфиге несколько раз перед каждым определением URL, который надо индексировать. Если необходимо переиндексировать все документы, игнорируя эту инструкцию, то следует запустить indexer -a.

Indexer имеет ключи -t, -g, -u, -s, -y для ограничения работы только с чатью базы ссылок. -t соответсвует ограничению по тэгу, -g соответсвует ограничению по категории, -u - ограничение по части URL (поддерживаются шаблоны SQL LIKE с символами % и _), -s - ограничение по HTTP статусу документа, -y - ограничения по Content-Type. Все ограничения для одного и того же ключа объединяются опрератором ИЛИ, а группы разных ключей - оператором И.

Чтобы очистить всю базу данных, следует использовать команду indexer -C. Также можно удалить только часть базы, используя ключи указания подсекций -t, -g, -u, -s, -y.

Статистика базы данных для SQL серверов

Если запустить indexer -S, то он выведет статистику базы данных, включающую общее число документов и число устаревших документов для каждого статуса. Ключи указания подсекций также действуют для этой команды.

Значения кода статуса:

  • 0 - новый (еще ни разу не индексированный) документ
  • Если статус не 0, он равен коду HTTP ответа, некоторые коды ответов HTTP:
  • 200 - "OK" (url успешно проиндексирован)
  • 301 - "Moved Permanently" (переадресован на другой URL)
  • 302 - "Moved Temporarily" (переадресован на другой URL)
  • 303 - "See Other" (переадресован на другой URL)
  • 304 - "Not modified" (url не модифицирован со времени предыдущего индексирования)
  • 401 - "Authorization required" (нужен login/password для этого документа)
  • 403 - "Forbidden" (нет доступа к этому документу)
  • 404 - "Not found" (указаный документ не существует)
  • 500 - "Internal Server Error" (ошибка в cgi, и т.д.)
  • 503 - "Service Unavailable" (Хост недоступен, таймаут соединения)
  • 504 - "Gateway Timeout" (таймаут при получении документа)
Код ответа HTTP 401 обозначает, что документ защищён паролем. Можно использовать команду AuthBasic в indexer.conf для указания login:password для URL.

Проверка ссылок (только для SQL серверов)

Будучи запущенным с ключом -I, indexer показывает пары URL и страница, ссылающаяся на него. Это полезно для поиска битых ссылок на страницах. Также можно использовать ключи ограничений подсекций для этого режима. Например, indexer -I -s 404 покажет адреса всех ненайденных документов вместе с адресами страниц, содержащими ссылки на эти документы.

Параллельное индексирование (только для SQL серверов)

Пользователи MySQL и PostgreSQL могут запускать несколько indexer"ов одновременно с одним и тем же файлом конфигурации indexer.conf. Indexer использует механизм блокировки MySQL и PostgreSQL для избежания двойного индексирования одних и тех же документов разными одновременно работающими indexer"ами. Параллельное индексирование может работать некорректно с остальными поддерживаемыми SQL серверами. Также можно использовать многопоточную версию indexer c любым SQL сервером, поддерживающим параллельные соединения с базой. Многопоточная версия использует свой собственный механизм блокировки.

Не рекомендуется использовать одну и ту же базу с различными файлами конфигурации indexer.conf! Один процесс может добавлять некоторые документы в базу, в то время как другой - удалять эти же документы, и оба могут работать без остановки.

С другой стороны, можно запускать несколько indexer"ов c различными файлами конфигурации и различными базами для любого поддерживаемого SQL сервера.

Реакция на коды HTTP-ответа

Для описания использован псевдо-язык:

  • 200 OK
  • 1. Если указан ключ -m ("force reindex"), то переход к 4. 2. Сравнение новой и старой, сохраненной в БД, контрольных сумм документа 3. Если контрольные суммы равны, то next_index_time = Now() + Period, переход к 7 4. Разбор документа, создание списка слов, добавление в БД новых гипертекстовых ссылок 5. Удаление старого списка слов и секций из БД 6. Вставка нового списка слов и секций 7. Конец
  • 304 Not Modified
  • 1. next_index_time = now() + Period 2. Конец
  • 301 Moved Permanently
  • 302 Moved Temporarily
  • 303 See Other
  • 1. Удаление слов данного документа из БД 2. next_index_time = Now() + Period 3. Добавление в БД URL из заголовка Location: 4. Конец
  • 300 Multiple Choices
  • 305 Use Proxy (proxy redirect)
  • 400 Bad Request
  • 401 Unauthorized
  • 402 Payment Required
  • 403 Forbidden
  • 404 Not found
  • 405 Method Not Allowed
  • 406 Not Acceptable
  • 407 Proxy Authentication Required
  • 408 Request Timeout
  • 409 Conflict
  • 410 Gone
  • 411 Length Required
  • 412 Precondition Failed
  • 413 Request Entity Too Large
  • 414 Request-URI Too Long
  • 415 Unsupported Media Type
  • 500 Internal Server Error
  • 501 Not Implemented
  • 502 Bad Gateway
  • 505 Protocol Version Not Supported
  • 1. Удаление из БД слов документа 2. next_index_time=Now()+Period 3. Конец
  • 503 Service Unavailable
  • 504 Gateway Timeout
  • 1. next_index_time=Now()+Period 2. Конец
Поддержка Content-Encoding

Поисковый движок mnoGoSearch поддерживает сжатие HTTP запросов и ответов (Content encoding). Сжатие запросов и ответов http-сервера позволяет значительно улучшить производительность обработки http-запросов за счет уменьшения объёма передаваемых данных.

Использование сжатия http-запросов позволяет уменьшить трафик в два и более раз.

В спецификации HTTP 1.1 (RFC 2616) определены четыре метода кодирования содержимого ответов сервера: gzip, deflate, compress, и identity.

Если включена поддержка Content-encoding, indexer шлёт http-серверу заголовок Accept-Encoding: gzip,deflate,compress.

Если http-сервер поддерживает любой из методов кодирования gzip, deflate or compress он шлёт ответ, закодированый этим методом.

Для сборки mnoGoSearch с поддержкой сжатия HTTP-запросов, необходимо наличие библиотеки zlib.

Чтобы включить поддержку Content encoding, необходимо сконфигурировать mnoGoSearch с указанием следующего ключа:
./configure --with-zlib

Булев поиск

Для задания сложных запросов, можно строить булевы запросы поиска. Для этого необходимо в поисковой форме указать режим поиска bool.

MnoGoSearch понимает следующие булевы операторы:

& - логическое И. Например, mysql & odbc. mnoGoSearch будет искать URL, содержащие оба слова "mysql" и "odbc". Также можно использовать знак + для этого оператора.

| - логическое ИЛИ. Например, mysql | odbc. mnoGoSearch будет искать URL, содержащие или слово "mysql" или слово "odbc".

~ - логическое НЕ. Например, mysql & ~odbc. mnoGoSearch будет искать URL, содержащие слово "mysql" и в тоже время не содержащие слово "odbc". Внимание! ~ всего лишь исключает некоторые документы из результата поиска. Запрос "~odbc" ничего не найдёт!

() - оператор группирования для создания более сложных запросов поиска. Например, (mysql | msql) & ~postgres.

" - оператор выделения фраз. Например, "russian apache" & "web server". Также можно использовать знак " для этого оператора.

Для Microsoft обычное дело придумать классную фишку, которая призвана существенно улучшить комфортность работы за компьютером. А в итоге получается как всегда – существенное ухудшение условий труда 🙂 Так произошло и в случае с функцией индексации содержимого дисков, придуманной в Microsoft, дабы ускорить поиск информации.

Эта служба работает в фоне и постепенно сканирует файлы. Сбор всей информации занимает значительное время, но мы не должны этого замечать. НЕ ДОЛЖНЫ, но на практике, особенно при больших объёмах информации и подключении внешних дисков происходит процесс торможения всей системы, которому не видно конца. Процесс SearchFilterHost может запускаться через 5-10 минут после старта системы и нагрузить компьютер до предела, а для тех у кого ноутбук, эта проблема может быть особенно актуальной.

Как работает служба индексирования в Windows

Работает она следующим образом: сканируется файловая система и вся информация заносится в особую базу данных (индекс), а затем по этой базе производится поиск. В эту базу попадают имена и пути файлов, время создания, ключевые фразы содержимого (если это документ или html-страница), значения свойств документов и другие данные. Таким образом, при поиске стандартными средствами, например из меню «ПУСК», операционная система не перебирает все файлы, а просто обращается к базе данных.

Идёт время, мы ставим новые программы, скачиваем новые файлы, в систему добавляются новые типы файлов, подлежащие индексированию содержимого, и операционная система иногда слишком увлекается процессом индексирования, сильно замедляя работу. Это легко можно заметить, если вы ничего не делаете, а винчестер кряхтит без умолку, при этом в «Диспетчере задач» висит процесс searchfilterhost.exe, который жрёт 30-50% ресурсов процессора.

Можно конечно подождать, пока процесс закончится, но если прийдётся ждать 30-40 минут? Поэтому с этой проблемой лучше сразу разобраться. У нас есть три пути решения вопроса.

Завершить процесс SearchFilterHost и выключить службу индексирования совсем

Можно в диспетчере задач. В принципе, вариант неплохой, он добавит стабильности системе, увеличится свободное пространство на системном диске, тормоза связанные с индексацией пропадут. Лично я пользуюсь функцией поиска в файловом менеджере «Total Commander» и считаю его намного удобнее, чем стандартный поиск Windows 7/10. Если вы тоже пользуетесь сторонней программой, и что такое поиск по содержимому документов не слышали, то индексация просто не нужна. А если у вас или виртуальная машина то отключать индексацию даже рекомендуется. Делается это очень просто:


Приостановить службу индексирования

В Windows XP были специальные настройки системы индексирования, с помощью которых можно было понизить приоритет работы службы в пользу работающих программ. Но в Windows 7-10 такого нет, и мы можем только приостановить индексацию. Это можно сделать если процесс SearchFilterHost сильно мешает работать, но совсем выключать службу не хочется. Для этого введём в строке поиска меню «Пуск» слова «параметры индекс» и из результатов поиска выберем «Параметры индексирования».

В окошке параметров нажимаем «Пауза» и наслаждаемся комфортной работой 🙂

Отключить индексирование отдельных дисков

Можно не отключать службу вовсе, а отключить индексирование на отдельно взятых дисках. Для этого заходим в «Мой компьютер» и нажимаем правой кнопкой по нужному диску, например на котором много-много файлов, и выбираем «Свойства». В окне свойств снимаем галочку «Разрешить индексирование этого тома»

Надеюсь данная статья была интересной и полезной. Мы рассмотрели возможные проблемы с работой службы индексирования в Windows 7/8/10 и разобрались как победить ненасытный процесс SearchFilterHost. Вы также можете ещё больше упростить себе жизнь и , а в новых статьях я ещё не раз вернусь к вопросу оптимизации, поэтому советую подписаться на обновления блога и узнать новости первым.

Посмотрите как можно быстро снять футболку!

Файл robots.txt является одним из самых важных при оптимизации любого сайта. Его отсутствие может привести к высокой нагрузке на сайт со стороны поисковых роботов и медленной индексации и переиндексации, а неправильная настройка к тому, что сайт полностью пропадет из поиска или просто не будет проиндексирован. Следовательно, не будет искаться в Яндексе, Google и других поисковых системах. Давайте разберемся во всех нюансах правильной настройки robots.txt.

Для начала короткое видео, которое создаст общее представление о том, что такое файл robots.txt.

Как влияет robots.txt на индексацию сайта

Поисковые роботы будут индексировать ваш сайт независимо от наличия файла robots.txt. Если же такой файл существует, то роботы могут руководствоваться правилами, которые в этом файле прописываются. При этом некоторые роботы могут игнорировать те или иные правила, либо некоторые правила могут быть специфичными только для некоторых ботов. В частности, GoogleBot не использует директиву Host и Crawl-Delay, YandexNews с недавних пор стал игнорировать директиву Crawl-Delay, а YandexDirect и YandexVideoParser игнорируют более общие директивы в роботсе (но руководствуются теми, которые указаны специально для них).

Подробнее об исключениях:
Исключения Яндекса
Стандарт исключений для роботов (Википедия)

Максимальную нагрузку на сайт создают роботы, которые скачивают контент с вашего сайта. Следовательно, указывая, что именно индексировать, а что игнорировать, а также с какими временны́ми промежутками производить скачивание, вы можете, с одной стороны, значительно снизить нагрузку на сайт со стороны роботов, а с другой стороны, ускорить процесс скачивания, запретив обход ненужных страниц.

К таким ненужным страницам относятся скрипты ajax, json, отвечающие за всплывающие формы, баннеры, вывод каптчи и т.д., формы заказа и корзина со всеми шагами оформления покупки, функционал поиска, личный кабинет, админка.

Для большинства роботов также желательно отключить индексацию всех JS и CSS. Но для GoogleBot и Yandex такие файлы нужно оставить для индексирования, так как они используются поисковыми системами для анализа удобства сайта и его ранжирования (пруф Google , пруф Яндекс).

Директивы robots.txt

Директивы — это правила для роботов. Есть спецификация W3C от 30 января 1994 года и расширенный стандарт от 1996 года . Однако не все поисковые системы и роботы поддерживают те или иные директивы. В связи с этим для нас полезнее будет знать не стандарт, а то, как руководствуются теми или иными директивы основные роботы.

Давайте рассмотрим по порядку.

User-agent

Это самая главная директива, определяющая для каких роботов далее следуют правила.

Для всех роботов:
User-agent: *

Для конкретного бота:
User-agent: GoogleBot

Обратите внимание, что в robots.txt не важен регистр символов. Т.е. юзер-агент для гугла можно с таким же успехом записать соледующим образом:
user-agent: googlebot

Ниже приведена таблица основных юзер-агентов различных поисковых систем.

Бот Функция
Google
Googlebot основной индексирующий робот Google
Googlebot-News Google Новости
Googlebot-Image Google Картинки
Googlebot-Video видео
Mediapartners-Google
Mediapartners Google AdSense, Google Mobile AdSense
AdsBot-Google проверка качества целевой страницы
AdsBot-Google-Mobile-Apps Робот Google для приложений
Яндекс
YandexBot основной индексирующий робот Яндекса
YandexImages Яндекс.Картинки
YandexVideo Яндекс.Видео
YandexMedia мультимедийные данные
YandexBlogs робот поиска по блогам
YandexAddurl робот, обращающийся к странице при добавлении ее через форму «Добавить URL»
YandexFavicons робот, индексирующий пиктограммы сайтов (favicons)
YandexDirect Яндекс.Директ
YandexMetrika Яндекс.Метрика
YandexCatalog Яндекс.Каталог
YandexNews Яндекс.Новости
YandexImageResizer робот мобильных сервисов
Bing
Bingbot основной индексирующий робот Bing
Yahoo!
Slurp основной индексирующий робот Yahoo!
Mail.Ru
Mail.Ru основной индексирующий робот Mail.Ru
Rambler
StackRambler Ранее основной индексирующий робот Rambler. Однако с 23.06.11 Rambler перестает поддерживать собственную поисковую систему и теперь использует на своих сервисах технологию Яндекса. Более не актуально.

Disallow и Allow

Disallow закрывает от индексирования страницы и разделы сайта.
Allow принудительно открывает для индексирования страницы и разделы сайта.

Но здесь не все так просто.

Во-первых, нужно знать дополнительные операторы и понимать, как они используются — это *, $ и #.

* — это любое количество символов, в том числе и их отсутствие. При этом в конце строки звездочку можно не ставить, подразумевается, что она там находится по умолчанию.
$ — показывает, что символ перед ним должен быть последним.
# — комментарий, все что после этого символа в строке роботом не учитывается.

Примеры использования:

Disallow: *?s=
Disallow: /category/$

Во-вторых, нужно понимать, каким образом выполняются вложенные правила.
Помните, что порядок записи директив не важен. Наследование правил, что открыть или закрыть от индексации определяется по тому, какие директории указаны. Разберем на примере.

Allow: *.css
Disallow: /template/

http://site.ru/template/ — закрыто от индексирования
http://site.ru/template/style.css — закрыто от индексирования
http://site.ru/style.css — открыто для индексирования
http://site.ru/theme/style.css — открыто для индексирования

Если нужно, чтобы все файлы.css были открыты для индексирования придется это дополнительно прописать для каждой из закрытых папок. В нашем случае:

Allow: *.css
Allow: /template/*.css
Disallow: /template/

Повторюсь, порядок директив не важен.

Sitemap

Директива для указания пути к XML-файлу Sitemap. URL-адрес прописывается так же, как в адресной строке.

Например,

Sitemap: http://site.ru/sitemap.xml

Директива Sitemap указывается в любом месте файла robots.txt без привязки к конкретному user-agent. Можно указать несколько правил Sitemap.

Host

Директива для указания главного зеркала сайта (в большинстве случаев: с www или без www). Обратите внимание, что главное зеркало указывается БЕЗ http://, но С https://. Также если необходимо, то указывается порт.
Директива поддерживается только ботами Яндекса и Mail.Ru. Другими роботами, в частности GoogleBot, команда не будет учтена. Host прописывается только один раз!

Пример 1:
Host: site.ru

Пример 2:
Host: https://site.ru

Crawl-delay

Директива для установления интервала времени между скачиванием роботом страниц сайта. Поддерживается роботами Яндекса, Mail.Ru, Bing, Yahoo. Значение может устанавливаться в целых или дробных единицах (разделитель — точка), время в секундах.

Пример 1:
Crawl-delay: 3

Пример 2:
Crawl-delay: 0.5

Если сайт имеет небольшую нагрузку, то необходимости устанавливать такое правило нет. Однако если индексация страниц роботом приводит к тому, что сайт превышает лимиты или испытывает значительные нагрузки вплоть до перебоев работы сервера, то эта директива поможет снизить нагрузку.

Чем больше значение, тем меньше страниц робот загрузит за одну сессию. Оптимальное значение определяется индивидуально для каждого сайта. Лучше начинать с не очень больших значений — 0.1, 0.2, 0.5 — и постепенно их увеличивать. Для роботов поисковых систем, имеющих меньшее значение для результатов продвижения, таких как Mail.Ru, Bing и Yahoo можно изначально установить бо́льшие значения, чем для роботов Яндекса.

Clean-param

Это правило сообщает краулеру, что URL-адреса с указанными параметрами не нужно индексировать. Для правила указывается два аргумента: параметр и URL раздела. Директива поддерживается Яндексом.

Clean-param: author_id http://site.ru/articles/

Clean-param: author_id&sid http://site.ru/articles/

Clean-Param: utm_source&utm_medium&utm_campaign

Другие параметры

В расширенной спецификации robots.txt можно найти еще параметры Request-rate и Visit-time. Однако они на данный момент не поддерживаются ведущими поисковыми системами.

Смысл директив:
Request-rate: 1/5 — загружать не более одной страницы за пять секунд
Visit-time: 0600-0845 — загружать страницы только в промежуток с 6 утра до 8:45 по Гринвичу.

Закрывающий robots.txt

Если вам нужно настроить, чтобы ваш сайт НЕ индексировался поисковыми роботами, то вам нужно прописать следующие директивы:

User-agent: *
Disallow: /

Проверьте, чтобы на тестовых площадках вашего сайта были прописаны эти директивы.

Правильная настройка robots.txt

Для России и стран СНГ, где доля Яндекса ощутима, следует прописывать директивы для всех роботов и отдельно для Яндекса и Google.

Чтобы правильно настроить robots.txt воспользуйтесь следующим алгоритмом:

  1. Закройте от индексирования админку сайта
  2. Закройте от индексирования личный кабинет, авторизацию, регистрацию
  3. Закройте от индексирования корзину, формы заказа, данные по доставке и заказам
  4. Закройте от индексирования ajax, json-скрипты
  5. Закройте от индексирования папку cgi
  6. Закройте от индексирования плагины, темы оформления, js, css для всех роботов, кроме Яндекса и Google
  7. Закройте от индексирования функционал поиска
  8. Закройте от индексирования служебные разделы, которые не несут никакой ценности для сайта в поиске (ошибка 404, список авторов)
  9. Закройте от индексирования технические дубли страниц, а также страницы, на которых весь контент в том или ином виде продублирован с других страниц (календари, архивы, RSS)
  10. Закройте от индексирования страницы с параметрами фильтров, сортировки, сравнения
  11. Закройте от индексирования страницы с параметрами UTM-меток и сессий
  12. Проверьте, что проиндексировано Яндексом и Google с помощью параметра «site:» (в поисковой строке наберите «site:site.ru»). Если в поиске присутствуют страницы, которые также нужно закрыть от индексации, добавьте их в robots.txt
  13. Укажите Sitemap и Host
  14. По необходимости пропишите Crawl-Delay и Clean-Param
  15. Проверьте корректность robots.txt через инструменты Google и Яндекса (описано ниже)
  16. Через 2 недели перепроверьте, появились ли в поисковой выдаче новые страницы, которые не должны индексироваться. В случае необходимости повторить выше перечисленные шаги.

Пример robots.txt

# Пример файла robots.txt для настройки гипотетического сайта https://site.ru User-agent: * Disallow: /admin/ Disallow: /plugins/ Disallow: /search/ Disallow: /cart/ Disallow: */?s= Disallow: *sort= Disallow: *view= Disallow: *utm= Crawl-Delay: 5 User-agent: GoogleBot Disallow: /admin/ Disallow: /plugins/ Disallow: /search/ Disallow: /cart/ Disallow: */?s= Disallow: *sort= Disallow: *view= Disallow: *utm= Allow: /plugins/*.css Allow: /plugins/*.js Allow: /plugins/*.png Allow: /plugins/*.jpg Allow: /plugins/*.gif User-agent: Yandex Disallow: /admin/ Disallow: /plugins/ Disallow: /search/ Disallow: /cart/ Disallow: */?s= Disallow: *sort= Disallow: *view= Allow: /plugins/*.css Allow: /plugins/*.js Allow: /plugins/*.png Allow: /plugins/*.jpg Allow: /plugins/*.gif Clean-Param: utm_source&utm_medium&utm_campaign Crawl-Delay: 0.5 Sitemap: https://site.ru/sitemap.xml Host: https://site.ru

Как добавить и где находится robots.txt

После того как вы создали файл robots.txt, его необходимо разместить на вашем сайте по адресу site.ru/robots.txt — т.е. в корневом каталоге. Поисковый робот всегда обращается к файлу по URL /robots.txt

Как проверить robots.txt

Проверка robots.txt осуществляется по следующим ссылкам:

  • В Яндекс.Вебмастере — на вкладке Инструменты>Анализ robots.txt
  • В Google Search Console — на вкладке Сканирование>Инструмент проверки файла robots.txt

Типичные ошибки в robots.txt

В конце статьи приведу несколько типичных ошибок файла robots.txt

  • robots.txt отсутствует
  • в robots.txt сайт закрыт от индексирования (Disallow: /)
  • в файле присутствуют лишь самые основные директивы, нет детальной проработки файла
  • в файле не закрыты от индексирования страницы с UTM-метками и идентификаторами сессий
  • в файле указаны только директивы
    Allow: *.css
    Allow: *.js
    Allow: *.png
    Allow: *.jpg
    Allow: *.gif
    при этом файлы css, js, png, jpg, gif закрыты другими директивами в ряде директорий
  • директива Host прописана несколько раз
  • в Host не указан протокол https
  • путь к Sitemap указан неверно, либо указан неверный протокол или зеркало сайта

P.S.

P.S.2

Полезное видео от Яндекса (Внимание! Некоторые рекомендации подходят только для Яндекса).

Последовательно заполняйте все необходимые поля. По мере ваших указаний, Вы будете видеть наполнение вашего Robots.txt директивами. Ниже подробно описаны все директивы файла Robots.txt.

Пометьте , скопируйте и вставьте текст в текстовый редактор. Сохраните файл как "robots.txt" в корневой директории Вашего сайта.

Описание формата файла robots.txt

Файл robots.txt состоит из записей, каждая из которых состоит из двух полей: строки с названием клиентского приложения (user-agent), и одной или нескольких строк, начинающихся с директивы Disallow:

Директива ":" значение

Robots.txt должен создаваться в текстовом формате Unix. Большинство хороших текстовых редакторов уже умеют превращать символы перевода строки Windows в Unix. Либо ваш FTP-клиент должен уметь это делать. Для редактирования не пытайтесь пользоваться HTML-редактором, особенно таким, который не имеет текстового режима отображения кода.

Директива User-agent :

Для Рамблера: User-agent: StackRambler Для Яндекса: User-agent: Yandex Для Гугла: User-Agent: googlebot

Вы можете создать инструкцию для всех роботов:

User-agent: *

Директива Disallow :

Вторая часть записи состоит из строк Disallow . Эти строки - директивы (указания, команды) для данного робота. В каждой группе, вводимой строкой User-agent, должна быть хотя бы одна инструкция Disallow . Количество инструкций Disallow не ограничено.Они сообщают роботу какие файлы и/или каталоги роботу неразрешено индексировать. Вы можете запретить индексацию файла или каталога.

Следующая директива запрещает индексацию каталога /cgi-bin/:

Disallow: /cgi-bin/ Обратите внимание на / в конце названия директории! Чтобы запрещать посещение именно каталога "/dir" , инструкция должна иметь вид: "Disallow: /dir/" . А строка "Disallow: /dir" запрещает посещение всех страниц сервера, полное имя которых (от корня сервера) начинается с "/dir". Например: "/dir.html", "/dir/index.html", "/directory.html".

Записанная следующим образом директива запрещает индексацию файла index.htm находящегося в корне:

Disallow: /index.htm

Директиву Allow понимает только Яндекс.

User-agent: Yandex Allow: /cgi-bin Disallow: / # запрещает скачивать все, кроме страниц начинающихся с "/cgi-bin" Для остальных поисковиков вам придется перечислять все закрытые документы. Продумайте структуру сайта, чтобы закрытые для индексирования документы были собраны по возможности в одном месте.

Если директива Disallow будет пустой, это значит, что робот может индексировать ВСЕ файлы. Как минимум одна директива Disallow должна присутствовать для каждого поля User-agent , чтобы robots.txt считался верным. Полностью пустой robots.txt означает то же самое, как если бы его не было вообще.

Робот Рамблера понимает * как любой символ, поэтому инструкция Disallow: * означает запрещение индексации всего сайта.

Директивы Allow, Disallow без параметров. Отсутствие параметров у директив Allow , Disallow трактуется следующим образом: User-agent: Yandex Disallow: # тоже что и Allow: / User-agent: Yandex Allow: # тоже что и Disallow: /

Использование спецсимволов "*" и "$" .
При указании путей директив Allow-Disallow можно использовать спецсимволы "*" и "$", задавая, таким образом, определенные регулярные выражения. Спецсимвол "*" означает любую (в том числе пустую) последовательность символов. Примеры:

User-agent: Yandex Disallow: /cgi-bin/*.aspx # запрещает "/cgi-bin/example.aspx" и "/cgi-bin/private/test.aspx" Disallow: /*private # запрещает не только "/private", но и "/cgi-bin/private" Спецсимвол "$" .
По умолчанию к концу каждого правила, описанного в robots.txt, приписывается "*", например: User-agent: Yandex Disallow: /cgi-bin* # блокирует доступ к страницам начинающимся с "/cgi-bin" Disallow: /cgi-bin # то же самое чтобы отменить "*" на конце правила, можно использовать спецсимвол "$", например: User-agent: Yandex Disallow: /example$ # запрещает "/example", но не запрещает "/example.html" User-agent: Yandex Disallow: /example # запрещает и "/example", и "/example.html" User-agent: Yandex Disallow: /example$ # запрещает только "/example" Disallow: /example*$ # так же, как "Disallow: /example" запрещает и /example.html и /example

Директива Host .

Если ваш сайт имеет зеркала, специальный робот зеркальщик определит их и сформирует группу зеркал вашего сайта. В поиске будет участвовать только главное зеркало. Вы можете указать его при помощи robots.txt, используя директиву "Host", определив в качестве ее параметра имя главного зеркала. Директива "Host" не гарантирует выбор указанного главного зеркала, тем не менее, алгоритм при принятии решения учитывает ее с высоким приоритетом. Пример: #Если www.glavnoye-zerkalo.ru главное зеркало сайта, то robots.txt для #www.neglavnoye-zerkalo.ru выглядит так User-Agent: * Disallow: /forum Disallow: /cgi-bin Host: www.glavnoye-zerkalo.ru В целях совместимости с роботами, которые не полностью следуют стандарту при обработке robots.txt, директиву "Host" необходимо добавлять в группе, начинающейся с записи "User-Agent", непосредственно после директив "Disallow"("Allow"). Аргументом директивы "Host" является доменное имя с номером порта (80 по умолчанию), отделенным двоеточием. Параметр директивы Host обязан состоять из одного корректного имени хоста (т.е. соответствующего RFC 952 и не являющегося IP-адресом) и допустимого номера порта. Некорректно составленные строчки "Host:" игнорируются.

Примеры игнорируемых директив Host:

Host: www.myhost-.ru Host: www.-myhost.ru Host: www.myhost.ru:100000 Host: www.my_host.ru Host: .my-host.ru:8000 Host: my-host.ru. Host: my..host.ru Host: www.myhost.ru/ Host: www.myhost.ru:8080/ Host: 213.180.194.129 Host: www.firsthost.ru,www.secondhost.ru # в одной строке - один домен! Host: www.firsthost.ru www.secondhost.ru # в одной строке - один домен!! Host: экипаж-связь.рф # нужно использовать punycode

Директива Crawl-delay

Задает таймаут в секундах, с которым поисковый робот закачивает страницы с вашего сервера (Crawl-delay).

Если сервер сильно нагружен и не успевает отрабатывать запросы на закачку, воспользуйтесь директивой "Crawl-delay". Она позволяет задать поисковому роботу минимальный период времени (в секундах) между концом закачки одной страницы и началом закачки следующей. В целях совместимости с роботами, которые не полностью следуют стандарту при обработке robots.txt, директиву "Crawl-delay" необходимо добавлять в группе, начинающейся с записи "User-Agent", непосредственно после директив "Disallow" ("Allow").

Поисковый робот Яндекса поддерживает дробные значения Crawl-Delay, например, 0.5. Это не гарантирует, что поисковый робот будет заходить на ваш сайт каждые полсекунды, но дает роботу больше свободы и позволяет ускорить обход сайта.

User-agent: Yandex Crawl-delay: 2 # задает таймаут в 2 секунды User-agent: * Disallow: /search Crawl-delay: 4.5 # задает таймаут в 4.5 секунды

Директива Clean-param

Директива для исключения параметров из адресной строки. т.е. запросы содержащие такой параметр и не содержащие - будут считаться идентичными.

Пустые строки и комментарии

Пустые строки допускаются между группами инструкций, вводимыми User-agent .

Инструкция Disallow учитывается, только если она подчинена какой-либо строке User-agent - то есть если выше нее есть строка User-agent .

Любой текст от знака решетки " # " до конца строки считается комментарием и игнорируется.

Пример:

Следующий простой файл robots.txt запрещает индексацию всех страниц сайта всем роботам, кроме робота Рамблера, которому, наоборот, разрешена индексация всех страниц сайта.

# Инструкции для всех роботов User-agent: * Disallow: / # Инструкции для робота Рамблера User-agent: StackRambler Disallow:

Распространенные ошибки:

Перевернутый синтаксис: User-agent: / Disallow: StackRambler А должно быть так: User-agent: StackRambler Disallow: / Несколько директив Disallow в одной строке: Disallow: /css/ /cgi-bin/ /images/ Правильно так: Disallow: /css/ Disallow: /cgi-bin/ Disallow: /images/
    Примечания:
  1. Недопустимо наличие пустых переводов строки между директивами "User-agent" и "Disallow" ("Allow"), а также между самими "Disallow" ("Allow") директивами.
  2. В соответствии со стандартом перед каждой директивой "User-agent" рекомендуется вставлять пустой перевод строки.
Дополнительно