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

В таких случаях сайт можно временно перевести в режим технического обслуживания. Посетители увидят специальную страницу, а после окончания работ сайт снова станет доступен.

Есть несколько способов сделать это в WordPress.

Самый простой способ — файл .maintenance

WordPress умеет включать режим технического обслуживания самостоятельно. Именно этот механизм используется, например, во время обновления самого WordPress.

Для этого в корне вашего сайта создайте файл .maintenance, а внутри файла укажите:

<?php $upgrading = time(); ?>

После этого сайт автоматически перейдёт в режим технического обслуживания, а посетители увидят стандартное сообщение о том, что сайт временно недоступен.

Важно: стандартный механизм WordPress рассчитан прежде всего на короткие технические операции. WordPress проверяет время, записанное в $upgrading, и считает режим обслуживания завершённым через 10 минут.

Поэтому для длительных работ лучше использовать другой способ.

Как оставить доступ в админку во время работ

Если вам нужно оставить доступ в админку, обычного .maintenance уже недостаточно.

В корне сайта можно создать файл со следующим содержимым:

<?php

function is_user_logged_in() {
    $loggedin = false;
    foreach ( (array) $_COOKIE as $cookie => $value ) {
        if ( stristr($cookie, 'wordpress_logged_in_') )
        $loggedin = true;
    }
    return $loggedin;
}

if ( !stristr($_SERVER['REQUEST_URI'], '/wp-admin/') && !stristr($_SERVER['REQUEST_URI'], '/wp-login.php') && !is_user_logged_in() ) $upgrading = time();

?>

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

Такой вариант удобен, если вы занимаетесь сайтом самостоятельно и хотите сразу проверять результат своих изменений.

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

Режим реконструкции в Clearfy Pro

В Clearfy Pro есть готовая настройка для этой задачи — «Сайт на реконструкции».

Она находится в разделе «Модули». Достаточно включить тумблер «Включить режим реконструкции».

Как закрыть сайт на техническое обслуживание WordPress

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

При этом пользователи с уровнем доступа Редактор также могут продолжать просматривать сайт. Это удобно, когда над проектом работает несколько человек и нужно проверять моментально изменения.

Ещё один важный момент — страница реконструкции отдаёт HTTP-статус 503 Service Unavailable. Это сообщает поисковым системам и системам мониторинга, что сайт недоступен временно, а не удалён или перемещён навсегда.

Для режима технического обслуживания это правильный вариант: сам WordPress при штатном maintenance mode также использует ответ 503 и заголовок Retry-After.

Почему важно отдавать ответ 503

Сервер должен сообщить поисковым системам, что недоступность временная. Для этого используется HTTP-статус 503 Service Unavailable.

Это отличается, например, от обычного 404, который означает, что страницы не существует. 503 говорит о другом: сайт сейчас временно недоступен, но его содержимое никуда не делось.

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

Не забудьте про кеширование

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

Кеш может отдавать посетителю сохранённую версию страницы, не обращаясь к WordPress и поэтому не показывая заглушку.

В этом случае проверьте кеш:

  • плагина кеширования;
  • хостинга;
  • CDN, например Cloudflare;
  • серверного кеширования.

После включения и после отключения режима реконструкции кеш может потребоваться очистить.

Как отключить техническое обслуживание

После окончания работ не забудьте вернуть сайт в обычный режим.

Если использовали свой файл или .maintenance , их нужно удалить из корня сайта.

Если использовали Clearfy Pro, достаточно вернуться в раздел Модули > Сайт на реконструкции и выключить тумблер «Включить режим реконструкции».

Что выбрать

Если нужно быстро закрыть сайт на несколько минут во время технических работ, достаточно стандартного механизма WordPress.

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

А после завершения работ достаточно отключить режим — и сайт снова доступен всем посетителям.