Режим обслуживания WordPress – устранение неполадок и настройка

Страница режима обслуживания WordPress – то, что временно отображается посетителям, когда вы проводите апдейт своего сайта: обновляете плагины, темы или ядро WP. Нужно это для того, чтобы сайт не выглядел сломанным в процессе исправления файлов.

Однако с этой возможностью есть несколько проблем.

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

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

Режим обслуживания WordPress

Режим обслуживания WordPress – небольшая возможность, встроенная в ядро и представленная в версии WordPress 3.0. Всякий раз, когда вы обновляете плагин, тему или ядро WordPress, вашим посетителям будет выводиться следующее сообщение, пока не будут завершены операции обновления.

«Сайт временно недоступен по причине планового технического обслуживания. Загляните через несколько минут». Или по-английски:

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

По умолчанию WordPress возвращает HTTP-код состояния 503 (сервис недоступен) в режиме обслуживания. Это сообщает поисковым системам, что вы работаете над страницей или что-то пошло не так, а потому робот вернется позже. Такой ответ важен для SEO, поскольку ваше ранжирование в таком случае не пострадает.

Сайт WordPress завис в режиме обслуживания

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

Как избежать зависания в режиме обслуживания

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

Не обновляйте страницу и не покидайте ее в процессе апдейта

Наиболее популярная причина зависания сайта в режиме обслуживания – обновление или закрытие страницы в процессе апдейта.

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

Не обновляйте все плагины разом

Что приводит к конфликту? Часто конфликты возникают, когда пользователь очень быстро вручную нажимает «update now» для огромного количества плагинов. WordPress по умолчанию обрабатывает все обновления по порядку, но если соединение зависнет хотя бы на миллисекунду, у вас может возникнуть внезапный конфликт, который вызовет зависание в режиме обслуживания.

Чтобы этого не произошло, вы можете выбрать фильтр Update Available, после чего щелкнуть по Update в меню массовых действий. Далее жмем Apply. Это запустит обновления по порядку, и у вас будет меньше шансов столкнуться с конфликтами.

Обновляйте свои плагины и темы по мере выхода новых версий

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

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

Включайте автоматические обновления для плагинов

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

Как исправить зависание WordPress-сайта в режиме обслуживания

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

  1. Подключаемся к серверу по FTP.
  2. Переходим в корень сайта WordPress. В этой папке обычно содержится файл wp-config.php. Здесь вы можете найти файл .maintenance и удалить его.
  3. После удаления файла вы можете обновить свой сайт в браузере. В итоге сайт вернется в нормальное состояние. Рекомендуем дополнительно очистить кэш.

Расширение режима обслуживания WordPress

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

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

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

Ручное расширение режима обслуживания с помощью кода

Дефолтная страница обслуживания в WP не имеет настроек (она создается динамически), поэтому вам придется ее улучшать самостоятельно, чтобы она отвечала вашему бренду. Вот небольшие советы по созданию своей страницы.

Вам необходимо создать файл maintenance.php и поместить в папку /wp-content/. Затем вы можете стилизовать его с помощью CSS. Или даже разработать целую страницу с нуля.

Соответственно, когда вы обновляете ядро WordPress, темы или плагины, на вашем сайте будет использоваться новая страница обслуживания. Проверка этого файла уже прописана в load.php, расположенном в /wp-includes/. Выглядит она так:

if ( file_exists( WP_CONTENT_DIR . '/maintenance.php' ) ) {
 require_once( WP_CONTENT_DIR . '/maintenance.php' );
die();
}

Используем плагин для режима обслуживания в WordPress

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

Coming Soon Page, Maintenance Mode & Landing Pages by SeedProd

Плагин Coming Soon Page, Maintenance Mode & Landing Pages by SeedProd разработан Джоном Тернером из SeedProd и был запущен в 2011 году. У него отличная репутация в сообществе WordPress. Плагин прекрасно поддерживается и подходит для создания страниц «coming soon» и страниц режима обслуживания.

У плагина есть платная и бесплатная версии.

Вы можете установить плагин по ссылке в каталоге WordPress.org. Среди его особенностей можно выделить следующее:

  • Работает с любой темой WordPress
  • Является адаптивным
  • Позволяет добавлять CSS/HTML
  • Поддержка мультисайтов, BuddyPress
  • Позволяет собирать email-адреса пользователей
WP Maintenance Mode

WP Maintenance Mode – один из самых загружаемых плагинов, связанных с режимом обслуживания в WordPress. Он является бесплатным и поддерживается командой Designmodo.

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

Установить плагин можно из каталога WordPress.org. Среди его особенностей можно выделить:

  • Возможность менять цвета, текст, фон.
  • Форма подписки, контактная форма, таймер.
  • Шаблоны посадочных страниц.
  • Работает с любой темой.
  • SEO-опции для ответов 503
  • Исключение URL-адресов из обслуживания
CMP – Coming Soon & Maintenance

Плагин CMP – Coming Soon & Maintenance удобен для управления режимом обслуживания в WordPress.

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

Возможности плагина:

  • Три темы в комплекте + дополнительные премиум-темы
  • Доступ к стоковым фото.
  • Настраиваемая форма подписки для сбора email
  • Интеграция Google-шрифтов
  • Загрузка вашего логотипа или фона.
  • Превью URL, которым можно делиться с клиентами.
  • Редирект на альтернативный сайт.
  • Возможность задавать коды ответа для поисковых систем
  • Поддержка Гугл-аналитики

 

Slim Maintenance Mode

Slim Maintenance Mode – плагин, позволяющий быстро создавать страницы обслуживания. Просто активируйте плагин, чтобы только администраторы могли видеть фронтенд.

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

Некоторые из его дополнительных особенностей:

  • Маленький, простой, легкий.
  • Не нужно думать о дополнительных настройках.
  • Работает с любой темой.
  • Сообщение в бэкенде, напоминающее, что вы работаете в режиме обслуживания.
  • 503 ответ для поисковых систем
  • Не конфликтует с популярными плагинами кэширования.
WP Maintenance

Плагин WP Maintenance – еще одно прекрасное решение для задания режима обслуживания.

Он включает в себя следующие настройки и опции кастомизации:

  • Выбор цветов и шрифтов для страницы обслуживания.
  • Загрузка логотипа или изображения, а также возможность добавления слайдера.
  • Таймер обратного отсчета.
  • Ссылка на социальные сети и Google Analytics
  • Доступ по пользовательской роли

 

Minimal Coming Soon & Maintenance Mode

Плагин Minimal Coming Soon & Maintenance Mode был разработан командой Web Factory. У них более 5 плагинов в репозитории WordPress.org.

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

  • Работает с любой темой.
  • Можно менять любые видимые элементы: цвет фона, изображения, шрифты.
  • Превью режима обслуживания перед активацией.
  • Достойная поддержка плагинов кэширования.
  • Работает с произвольными URL для входа в админку
  • Видимость режима только для незарегистрированных пользователей
  • Поддержка Google Analytics
  • Поддержка Google-шрифтов

Своя страница обслуживания WordPress

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

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

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

Как включить/выключить режим обслуживания в WordPress

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

Делается это двумя способами: с помощью кода или с помощью плагинов.

Как вручную включить режим обслуживания в WordPress с помощью кода

Вы можете включить режим обслуживания в WordPress вручную с помощью кода, размещенного в файле functions.php.

// Activate WordPress Maintenance Mode
function wp_maintenance_mode(){

            if(!current_user_can('edit_themes') || !is_user_logged_in()){

            wp_die('<h1 style="color:red">Website under Maintenance</h1><br />We are performing scheduled maintenance. We will be back on-line shortly!');

            }

}
add_action('get_header', 'wp_maintenance_mode');

В итоге незарегистрированные пользователи будут видеть сообщение во фронтэнде. Администраторы по-прежнему смогут работать с консолью, поскольку в коде мы используем функцию is_user_logged_in().

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

Как вручную включить режим обслуживания с помощью плагинов

Вы можете включить режим обслуживания с помощью плагинов, перечисленных выше. К примеру:

  • В Coming Soon & Maintenance Mode by Seedprod вы можете включать и выключать режим обслуживания, настраивать техническую страницу, собирать email-адреса, чтобы пользователи знали, когда сайт будет включен.
  • В WP Maintenance Mode вы можете вручную активировать произвольную страницу обслуживания для пользователей, не являющихся администраторами.
  • В CMP – Coming Soon & Maintenance вы можете создать полностью кастомный режим обслуживания, используя отдельные темы.
  • В Slim Maintenance Mode вы можете просто активировать плагин, чтобы включить режим обслуживания.
  • В WP Maintenance вы можете создать страницу с таймером обратного отсчета и произвольными шрифтами и цветами. Также можно вручную включить режим обслуживания через интерфейс плагина.
  • В Minimal Coming Soon & Maintenance Mode вы можете создать кастомную страницу режима обслуживания, связать ее с аналитикой и включить ее вручную.

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

В каких случаях может потребоваться режим обслуживания в WordPress

В каких случаях может понадобиться режим обслуживания? В следующих:

  • Когда вы запускаете обновления плагинов, тем или ядра WordPress.
  • Когда вы загружаете новые версии своей темы или плагинов.
  • Когда вы работаете над кодом своего сайта (не рекомендуется редактировать код работающего сайта; для этого есть тестовые среды и песочницы).
  • Когда вы выполняете структурные изменения на своем сайте; к примеру, редактируете навигацию или переносите страницы.
  • Когда вы планируете запустить разрабатываемый сайт. В этом случае лучше использовать плагины со страницами Coming Soon.

Как можно видеть, режим обслуживания полезен во многих ситуациях – не только при обновлении компонентов WordPress.

Источник: kinsta.com

Блог про WordPress
Комментарии: 2
  1. Андрей

    Многого не знал. Спасибо!

    1. Дмитрий (автор)

      Всегда пожалуйста!

Добавить комментарий

Получать новые комментарии по электронной почте.