Новый глюк WordPress

Анатолий Кузнецов
Анатолий Кузнецов
SEO-оптимизатор с 20-летним стажем. Автор блога hozyindachi.ru о продвижении и доработке сайтов.

Новый глюк WordPress

Сайт на WordPress ломается редко, но всегда не вовремя: в пятницу вечером, в разгар сезона или ровно тогда, когда поисковый робот собрался переобходить каталог. За двадцать лет в SEO я разгребал такие аварии сотни раз и давно понял главное — паника вредит больше самого сбоя. Владелец начинает наугад отключать плагины, ставить «плагин для ускорения», а потом заливать бэкап недельной давности поверх свежих заказов. Между тем девять из десяти поломок WordPress укладываются в короткий список типовых, и каждая диагностируется за пятнадцать минут, если знать, куда смотреть. Ниже — разбор этих ситуаций: как понять, что произошло, что делать по шагам, чем это грозит позициям и как настроить всё так, чтобы следующий сбой стоил вам десяти минут вместо трёх дней.

Почему сбой WordPress — это в первую очередь SEO-проблема

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

Код ответа Что означает Как реагирует поиск Что делать
200 с пустой страницей Сервер отвечает «всё хорошо», но контента нет Худший вариант: страница может быть переиндексирована как пустая и выпасть Срочно чинить или переводить сайт на 503
500 Внутренняя ошибка сервера Робот повторит попытку, при затяжной ошибке начнёт исключать страницы Смотреть лог ошибок, чинить
503 с указанием времени повтора Временно недоступен, техработы Правильная реакция: робот подождёт и вернётся Ставить осознанно на время работ
404 на живых страницах Слетели постоянные ссылки Массовое выпадение из индекса за несколько недель Пересохранить настройки ссылок, проверить .htaccess
Таймаут, нет ответа Сервер перегружен или упал Обход резко замедляется Проверить хостинг, ресурсы, атаку

Отсюда правило, которое стоит запомнить до того, как что-то сломается: при плановых работах сайт закрывается кодом 503 с заголовком времени повтора, а не заглушкой, отдающей 200. Разница в том, что в первом случае поиск считает это паузой, во втором — считает, что вы заменили весь сайт одной страницей «Идут технические работы».

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

Белый экран и «на сайте возникла критическая ошибка»

Самый пугающий сбой: вместо сайта пустая страница либо короткая надпись про критическую ошибку. Причина почти всегда одна — фатальная ошибка PHP в плагине, теме или ядре, после которой выполнение скрипта прерывается.

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

Если письма нет, включается ручная диагностика. В файле wp-config.php временно включается отладка: константа WP_DEBUG в значение true, WP_DEBUG_LOG в true, а WP_DEBUG_DISPLAY обязательно в false, чтобы ошибки писались в файл wp-content/debug.log, а не показывались посетителям. Открываете лог — там имя файла и номер строки. Дальше два типовых сценария: если виноват плагин, папка этого плагина переименовывается через файловый менеджер хостинга или FTP, и сайт оживает; если виновата тема, в базе в таблице опций меняется активная тема на стандартную.

Третья по частоте причина — нехватка памяти. В логе это выглядит как сообщение об исчерпании допустимого объёма. Лечится увеличением лимита в wp-config.php до 256M и разговором с хостингом, если лимит не поднимается.

Чего делать нельзя: удалять папку плагина вместо переименования (потеряете настройки), править файлы ядра и «чинить» ошибку установкой ещё одного плагина.

Ошибка установления соединения с базой данных

Вторая классика. Сообщение говорит буквально то, что написано: PHP не смог подключиться к базе. Причин три.

Первая — сменились доступы. Такое бывает после переезда, смены пароля в панели хостинга или восстановления из бэкапа. Проверяются четыре значения в wp-config.php: имя базы, пользователь, пароль и хост. Последний чаще всего localhost, но у ряда хостеров это отдельный адрес сервера базы.

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

Третья — повреждённые таблицы. Признак: сайт работает, но отдельные разделы пустые или админка ругается. Лечится включением константы WP_ALLOW_REPAIR и запуском встроенной страницы восстановления, после чего константу обязательно убирают — иначе страница остаётся доступной всем.

Важно: пока висит эта ошибка, сайт отдаёт 500-й код, и робот это видит. Если починка займёт больше часа, имеет смысл вручную поставить заглушку с 503.

Конфликты плагинов: как найти виновника за двадцать минут

Средний сайт живёт с двадцатью-тридцатью плагинами от разных авторов. Рано или поздно два из них начинают спорить: ломается вёрстка, перестаёт отправляться форма, пропадает кнопка в редакторе, сайт замедляется вдвое.

Метод поиска всегда один — деление пополам. Отключаете половину плагинов: если проблема ушла, виновник в отключенной половине, если осталась — в оставшейся. Делите дальше. Двадцать плагинов проверяются за пять итераций.

Главное условие: делать это надо не на живом сайте. Правильный порядок — поднять копию на тестовом поддомене или локально, воспроизвести сбой там и там же искать. Если копии нет и приходится работать на боевом, выбирайте ночное время и используйте режим отладки, при котором изменения видны только вам.

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

Сайт сломался после обновления

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

Мой порядок: сначала полный бэкап файлов и базы, потом обновление на тестовой копии, проверка ключевых сценариев (главная, категория, карточка, форма заявки, оформление заказа, вход в админку), и только затем обновление боевого сайта. Плагины обновляются по одному, а не все разом: тогда виновник очевиден сразу.

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

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

Взлом: как понять и что делать

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

Признаки, по которым это обнаруживается:

  • В Вебмастере или Search Console появилось сообщение о вредоносном коде или о резком росте числа страниц.
  • В поиске по вашему домену находятся страницы, которых вы не создавали, часто на другую тематику.
  • Сайт нормально открывается с компьютера, но перенаправляет на посторонний ресурс с телефона или при переходе из поиска.
  • В админке появился пользователь с правами администратора, которого вы не заводили.
  • Резко выросла нагрузка на хостинг, письма с сайта уходят в спам.
  • В файлах есть свежие даты изменения там, где вы ничего не правили.

Порядок действий при подтверждённом взломе жёсткий. Закрываете сайт заглушкой с кодом 503. Меняете все пароли: админка WordPress, панель хостинга, FTP, база данных. Снимаете полную копию заражённого сайта отдельно — она понадобится, чтобы понять точку входа. Восстанавливаете из заведомо чистого бэкапа, сделанного до заражения; если такого нет — переустанавливаете ядро и все плагины заново, оставляя только базу и папку загрузок. Обязательно проверяете список пользователей, файл .htaccess, папку загрузок на наличие PHP-файлов (их там быть не должно) и запланированные задания.

После чистки — обязательный шаг, о котором забывают: сообщить поисковым системам о том, что проблема устранена, через соответствующий раздел Вебмастера и Search Console, и проследить за индексацией. Мусорные страницы, которые успели попасть в индекс, отдаются с кодом 410, чтобы их выкинули быстрее.

Лечение взлома у специалиста стоит в 2026 году от 5 000 до 30 000 рублей в зависимости от глубины заражения. Профилактика — заметно дешевле.

Медленная админка и медленный сайт

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

Админка тормозит, когда раздулись служебные таблицы: ревизии записей (по умолчанию их число не ограничено), автозагружаемые опции, логи плагинов, спам в комментариях, таблица метаданных. Лечится ограничением ревизий в wp-config.php, чисткой таблиц и удалением плагинов, которые пишут в базу свою статистику.

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

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

Диагностика по симптому

Симптом Вероятная причина Первое действие
Белый экран целиком Фатальная ошибка PHP, нехватка памяти Почта администратора, затем debug.log
Сайт работает, админка — белая Плагин, активный только в админке Переименовать папку plugins целиком
Ошибка соединения с базой Доступы, перегрузка, битые таблицы Проверить данные в wp-config.php
Все внутренние страницы отдают 404 Слетели постоянные ссылки или .htaccess Пересохранить настройки постоянных ссылок
Редирект на чужой сайт с телефона Взлом, вредоносный код Закрыть сайт, менять пароли, чистить
Не отправляются формы Конфликт плагинов, кэш, почтовые настройки Отключить кэш, проверить отправку письма
Изображения не загружаются в медиатеку Права на папку загрузок, лимит на размер файла Проверить права 755 и лимиты PHP
Сайт лёг после обновления PHP Устаревший плагин или тема Вернуть прежнюю версию PHP, обновить код
Периодические падения в часы пик Нехватка ресурсов тарифа Смотреть статистику нагрузки у хостера
Резкий рост страниц в индексе Дорвеи после взлома или дубли фильтров Проверить выдачу по домену, затем файлы

Бэкапы, восстановление и профилактика

Бэкап — единственная вещь, которая превращает катастрофу в неприятность. Требования к нему три: он должен делаться автоматически, храниться вне сервера сайта и хотя бы раз быть проверенным на восстановление. Копия, которую ни разу не разворачивали, — это не бэкап, а надежда.

Способ Стоимость в год, ₽ Глубина хранения Слабое место
Бэкап хостинга по умолчанию Входит в тариф Обычно 7–14 дней Лежит на том же сервере
Плагин резервного копирования 0–8 000 Настраивается Не работает, если сайт не открывается
Выгрузка в облако по расписанию 1 500–6 000 Месяцы Требует настройки
Копии на уровне сервера или VPS 6 000–30 000 Любая Нужен администратор
Ручная выгрузка перед изменениями Бесплатно Разовая Забывают сделать

Чеклист профилактики, который я оставляю клиентам:

  • Автоматический бэкап файлов и базы ежедневно, хранение вне сервера, глубина не меньше месяца.
  • Тестовая копия сайта на поддомене для обновлений и экспериментов.
  • Обновление ядра и плагинов раз в две недели, по одному, после бэкапа.
  • Ревизия плагинов раз в квартал: удалить неиспользуемые, заменить те, что не обновлялись больше года.
  • Двухфакторная аутентификация для администраторов, ограничение попыток входа, нестандартный логин вместо admin.
  • Отдельные учётные записи для сотрудников с ролью «Редактор», а не «Администратор».
  • Внешний мониторинг доступности с уведомлением на телефон.
  • Актуальная версия PHP и отслеживание уведомлений хостинга о её смене.
  • Запрет выполнения PHP в папке загрузок.
  • Ограничение числа ревизий записей и регулярная чистка служебных таблиц.
  • Раз в месяц — контроль числа страниц в индексе и сообщений в Вебмастере.

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

Коротко

  • При любых работах сайт закрывается кодом 503 с указанием времени повтора. Заглушка с кодом 200 — самый вредный для индексации вариант.
  • Час простоя проходит бесследно, сутки замедляют обход, несколько дней стоят позиций и недель восстановления.
  • Белый экран: сначала почта администратора с письмом о фатальной ошибке, затем debug.log с записью в файл, а не на экран.
  • Плагин отключают переименованием папки, а не удалением: настройки сохранятся.
  • Ошибка соединения с базой — это доступы в wp-config.php, перегрузка сервера или битые таблицы. Режим восстановления базы обязательно выключается после починки.
  • Виновник конфликта ищется делением пополам и только на тестовой копии. Два плагина с одной задачей не ставятся никогда.
  • Обновления: бэкап, тестовая копия, плагины по одному. Внезапный сбой без ваших действий — часто смена версии PHP хостером.
  • Признаки взлома: чужие страницы в выдаче по домену, редирект только с мобильных, новый администратор, рост нагрузки.
  • После чистки взлома обязательно уведомить поиск и отдать мусорные страницы с кодом 410. Лечение стоит 5 000–30 000 рублей.
  • Агрессивное кэширование ломает формы и корзины. После включения проверяйте, что заявки доходят.
  • Бэкап должен быть автоматическим, храниться вне сервера и хотя бы раз проверенным на восстановление.

Если нужно SEO-оптимизатор Анатолий Кузнецов — помогу вывести сайт в топ Яндекса и удержать позиции.

Увеличьте позиции и продажи вашего сайта

Профессиональное SEO-продвижение с гарантией результата. Выберите подходящую услугу:

Анатолий Кузнецов — SEO-оптимизатор

Остались вопросы по продвижению?

Меня зовут Анатолий Кузнецов, я SEO-оптимизатор с 20-летним стажем. Разберу ваш сайт, отвечу на вопросы и подскажу, что улучшить для роста позиций в Яндексе и Google.

Связаться со мной →

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

 Нажимая «оставить комментарий» вы принимаетеправила конфиденциальности 

Прокрутить вверх