Каждому из владельцев сайтов периодически приходится проводить какие-то технические работы по настройке, профилактике и обновлению своих сайтов, и блоггеры – не исключение, движок WordPress’а меняется довольно часто. :) Однако, казалось бы, такое простое действие, хранит в себе скрытую угрозу. Какую же? Представьте, что вы, ничего не подозревая, копируете обновленные файлы или переносите что-то куда-то и в этот момент ваш сайт вздумал посетить его величество бот. И что он может получить? Как минимум 404  File Not Found ошибку, как максимум 500 Internal Server Error. В ответ на такое «неуважение» бот может «обидеться» и занести страницу в «черный список», что в конечном итоге может привести к потери ее позиции в результатах поиска, а в случае, если этот бот Google, то и потери pagerank’а. Не очень хорошая перспектива, не так ли?

А что, если взять и каким-нибудь способом сообщить поисковому роботу, что сайт в данный момент немного не работоспособен и «попросить» бота зайти попозже? И к счастью такой способ есть!

Вот, что говорится на блоге Google Webmaster Central:

Если мой сайт находится на техническом обслуживании, как я могу сообщить Googl’у о том, что ему следует зайти на сайт позже, чтобы проиндексировать страницу, которая в данный момент недоступна?

Вы должны скофигурировать свой веб-сервер так, чтобы он обрабатывал ошибку 503 Service Temporarily Unavailable, т.е. возвращал код 503 вместо обычного 200. Это даст понять Googlebot’у, что сервер в принципе рабочий и он может зайти на страницу позже.

Для настройки сервера можно воспользоваться файлом .htaccess, чтобы отдать Googlebot’у и/или другим ботам заголовок 503 Service Temporarily Unavailable или создать некоторый программный код. В дополнение необходимо передать заголовок Retry-After для указания временного интервала, по истечении которого, роботу стоит посетить страницу.

Что такое 503 Service Temporarily Unavailable

Сервер в данный момент недоступен для обработки запроса вследствие перегрузки или технических работ на нем. Подразумевается, что это временное явление, которое завершится через определенное время. Время может быть указано посредствоv заголовка Retry-After. Если заголовок Retry-After не указан, то клиент вынужден будет рассматривать ответ сервера как ошибку 500  Internal Server Error.

Что такое Retry-After

Заголовок ответа Retry-After может использоваться совместно с ответом a 503 Service Temporarily Unavailable, чтобы указать как долго запрашиваемый сервис будет недоступен для клиента. Этот заголовок может быть использован с любым 3xx (Redirect) ответом для указания минимального времени, которое клиенту необходимо будет подождать прежде, чем выполнить перенаправление. Значение этого параметра может задаваться как в формате HTTP-даты или же как целое количество секунд.

Примеры:

Retry-After: Fri, 31 Dec 1999 23:59:59 GMT
Retry-After: 120

Отсылаем 503 ошибку только Googlebot’у

В файл .htaccess вносим следующие строки:

Options +FollowSymLinks
RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_USER_AGENT} ^.*(Googlebot|Googlebot|Mediapartners|Adsbot|Feedfetcher)-?(Google|Image)? [NC]
# or RewriteCond %{HTTP_USER_AGENT} ^.*google.* [NC]
RewriteRule .* /503.php

Отсылаем 503 ошибку роботам, а людям страницу об ошибке

Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_USER_AGENT} ^.*(Googlebot|Googlebot|Mediapartners|Adsbot|Feedfetcher)-?(Google|Image)? [NC]
RewriteCond %{REQUEST_URI} !^/503\.php [NC]
RewriteRule .* /503.php

RewriteCond %{REMOTE_HOST} !^XXX\.XXX\.XXX\.XXX
RewriteCond %{REQUEST_URI} !^/404\.php [NC]
RewriteRule .* /under-development-explain.html [R=302,L]

Ниже приведен пример, как реализовать обработку ошибки 503 с помощью языка программирования (в данном случае PHP):

ob_start();
header('HTTP/1.1 503 Service Temporarily Unavailable');
header('Status: 503 Service Temporarily Unavailable');
header('Retry-After: 3600');
header('X-Powered-By:');
?>

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>503 Service Temporarily Unavailable</title>
</head><body>
<h1>Сайт временно недоступен</h1>
<p>Сайт временно недоступен в связи с техническими работами, проводимыми на сервере.
Пожалуйста посетите наш сайт позже.</p>
</body></html>

Надеюсь, теперь ваши блоги станут немного защищенные.


Вы прочитали статью и она Вам понравилась?
Подпишитесь на обновления!

Pаспечатать эту статью Pаспечатать эту статью