Здравствуйте, гость ( Вход | Регистрация )




 
Ответить в эту темуОткрыть новую тему
> Как краулеры поисковиков обрабатывают 503 ошибку на вашем сайте
aprika
сообщение 14.9.2018, 17:36
Сообщение #1


Админша
*******

Группа: Администратор
Сообщений: 13 748
Регистрация: 20.9.2006
Пользователь №: 1
Спасибо сказали: 318 раз(а)
Фуу сказали: 7 раз(а)




Репутация:   21  


Рано или поздно на сайте необходимо проводить технические работы, это может быть обновление движка, переделка структуры или просто модернизация ПО. Здесь возникает вопрос, как это сделать максимально безболезненно для SEO? Правильно в этом случае будет использовать 503 код статуса в http-заголовках отдаваемых страниц, который как раз и говорит, что “сервис временно недоступен, попробуйте позже”. Но как именно в этом случае ведут себя поисковые системы?

В идеале, роботы должны работать по интернет-стандартам, в которых описано:

Цитата
503 код статуса говорит о том, что сервис не может обработать запрос из-за временной перегрузки или внутренних работ. Если известна длительность работ, её можно указать в заголовке Retry-After. Если этого заголовка не будет, клиент может распознать ответ как 500 (внутренняя ошибка сервера).


Но здесь множество нюансов и вопросов. Например, страницы, которая отдает сейчас 503 код, могло раньше не быть в индексе, должен ли краулер обрабатывать их также, как и страницы, которые уже были в индексе? Через какое время недоступности можно выкидывать страницу из индекса? Должно ли оно измеряться часами-днями или же количеством дополнительных обращений? А что, если robots.txt будет отдавать 503 код статуса, стоит ли в этом случае индексировать сайт?

Вопросов много, ответов пока мало. Яндекс по 503 кодам статусов ничего не описывает, Google в 2011 дал пару рекомендаций из которых ясно лишь, что:

— Retry-After используется не как четкое правило, а как дополнительный сигнал для определения подходящего момента переиндексации URL.

— Продолжительная выдача 503 может расцениваться 410. Насколько продолжительная не комментируется.

В этой статье представлены результаты анализа логов экспериментального сайта для понимания процесса краулинга. Чуть позже также планируется опубликовать серию статей с детальным анализом каждого вопроса по 503 ошибкам.

Проведение исследования

Для понимания логики работы краулеров поисковиков было проведено небольшое исследование.

— Создана страничка на сайте, который часто посещают поисковые роботы
— Страничка отдает 503 код статуса, а также заголовок Retry-After с указанием роботам попробовать зайти на страницу через час.
Цитата
HTTP/1.1 503 Service Temporarily Unavailable
Retry-After: 3600

— На страничку в меню поставлена сквозная ссылка, чтобы роботы её быстрей заметили.
— Также была взята вторая, уже существующая в индексе страница, для которой проделаны аналогичные действия.
— 30 часов поисковики пытались получить доступ к этим страницам, вся информация записывалась в логи.

Результаты

Что же показали нам логи?

1. Яндекс пытается проиндексировать новую страницу каждые 30 минут.

Прикрепленное изображение

Несмотря на то, что мы попросили в Retry-After обратиться к сайту через час, Яндекс стучался к ней каждые пол часа (без исключений) и продолжает стучать до сих пор. Причем, первые 4 обращения с точностью до секунды, далее (на 9-ю попытку) время чуть сместилось, и Яндекс поместил URL в очередь краулинга на круглое время — стучался в 00 и 30 минут каждого часа.

2. Google экономит краулинговые бюджеты

В отличие от Яндекса, гугл обратился к новой странице за сутки всего 8 раз (Яндекс – 56). Время обращения гуглбота не имеет общих свойств, минимальный период обращения к экспериментируемой странице — 10 минут (правда с разных их серверов, возможно разные краулеры), среднее задержка между обращениями — 4-5 часов.

3. К старой странице Яндекс обращается намного реже

К существующей в базе Яндекса странице, для которой был настроен 503 код статуса, Яндекс обращался намного реже, всего 5 раз за сутки. Первое обращение через 5 минут, второе через 11 часов (с точностью до минуты), третье обращение через 8 часов, последующие примерно через 6 часов.

4. Google к старым страницам обращается чаще, игнорируя Retry-After

За сутки гугл стучал к старой странице около 45 раз через совершенно разные промежутки времени. Иногда наблюдается задержка между обращениями чуть больше часа, но также часто запросы шли через 10 минут с того же сервера.

Мои заключения

Анализа одного лога, конечно же, недостаточно для ответа на все вопросы, но пока что мои заключения будут следующими:

1. Поисковики обрабатывают 503 ошибку для существующих и несуществующих в своей базе страниц по-разному. Вероятно, здесь используются разные очереди (или краулеры) для индексации и переиндексации. Это же подтверждается разным IP серверов Яндекса, к новым страницам он стучался в основном с 141.8.142.86, к старым с 93.158.* и 178.154.*, у Google айпишники также не пересекаются для разных типов страниц.

2. Google учитывает время в Retry-After для новых страниц, но не учитывает для старых. Для страниц в индексе, должно быть, уже задан параметр, как часто они обновляются и когда нужно пересканировать в следующий раз. Это время переопределяет параметр в Retry-After.

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

4. Для проведения тех. работ в Яндексе нет смысла Retry-After ставить менее 4-5 часов.

5. Объяснение того, что Google обращается к старым страницам очень часто, игнорируя Retry-After, возможно в том, что он это делает разными краулерами, каждый со своим автономным расписанием. То есть, инструкции вы даете не вообще гуглу, а конкретному его серверу (или кластеру серверов), которых сотни под разные страны.

Сергей Кокшаров
devaka.ru


--------------------
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Цитировать в форуму быстрого ответаОтветить с цитированием данного сообщения
Поделиться с друзьями в соцсетях



Ответить в эту темуОткрыть новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


 
Текстовая версия Сейчас: 23.9.2018, 22:16