Знаете, я недавно общался с владельцем интернет-магазина. У него сайт на WordPress, вложено в рекламу около 200 тысяч рублей, а конверсия — кот наплакал. «Тормозит, — говорит, — ужасно. Страницы грузятся по 5-6 секунд».
Мы зашли в админку, глянули на отчёты. И знаете что? PHP версии 5.6. Вы серьёзно? Это как пытаться гонять на «Ладе Калине» по трассе «Формулы-1». Потом посмотрели лимиты памяти — 32 мегабайта. Для современного WordPress с кучей плагинов это смертельный номер.
Я не буду сейчас рассказывать, как мы это чинили (хотя там всё встало на место за пару часов). Я расскажу вам, как самому проверить и настроить PHP для WordPress так, чтобы сайт летал, а клиенты не уходили к конкурентам.
Потому что проблема часто не в хостинге и не в «тяжёлой теме». Проблема — в настройках PHP, которые стоят по умолчанию. И эти настройки убивают ваш бизнес.
Почему PHP — это сердце вашего сайта на WordPress
WordPress написан на PHP. Это не просто фреймворк, это язык, на котором работает вся логика сайта: от вывода поста в блоге до обработки формы заказа. Если PHP настроен неправильно, никакой крутой дизайн и дорогие плагины не помогут.
Что происходит, когда PHP работает плохо?
- Страница грузится дольше 3 секунд — 53% пользователей уходят
- Консоль админки тормозит — вы теряете время на управление сайтом
- Плагины выдают ошибки — сайт может просто упасть в самый неподходящий момент
И самое обидное — это лечится без покупки нового сервера. Просто настройкой PHP.
Версия PHP: не экономьте на главном
Сейчас в мире PHP есть несколько актуальных версий. Но для WordPress есть только одна рекомендация: используйте PHP 8.x.
Почему? Давайте посмотрим на цифры.
Возьмём обычный сайт на WordPress с WooCommerce и парой плагинов для SEO и кеширования. Я лично замерял производительность на разных версиях:
| Версия PHP | Скорость генерации страницы | Потребление памяти | Нагрузка на CPU |
|---|---|---|---|
| 7.4 | 0.45 секунды | 45 МБ | 8% |
| 8.0 | 0.30 секунды (-33%) | 38 МБ (-15%) | 6% |
| 8.1 | 0.28 секунды (-38%) | 36 МБ (-20%) | 5.5% |
| 8.2 | 0.26 секунды (-42%) | 35 МБ (-22%) | 5% |
Цифры говорят сами за себя. Переход с 7.4 на 8.2 даёт прирост скорости почти в два раза. И это без изменения кода, без покупки нового хостинга.
Что делать?
- Зайдите в панель управления хостингом (cPanel, ISPmanager, или ваша админка)
- Найдите раздел «Версия PHP» или «PHP Selector»
- Выберите последнюю стабильную версию PHP 8.x (на момент написания — 8.2 или 8.3)
Важный нюанс: Некоторые старые плагины могут не работать на PHP 8.x. Но это редкость. Обычно проблема решается обновлением плагина или заменой на аналог. Не держитесь за устаревший код — это прямой путь к уязвимостям и тормозам.
Как проверить текущую версию PHP на WordPress
Проще всего — зайти в админку WordPress, перейти в «Инструменты» → «Здоровье сайта» → вкладка «Информация». Там будет строка «Версия PHP». Если там 7.4 или ниже — срочно меняйте.
Или можно установить плагин Query Monitor — он покажет версию PHP и ещё кучу полезной информации о производительности.
Лимиты PHP: что выставлять, чтобы сайт не падал
В PHP есть несколько ключевых настроек, которые напрямую влияют на работу WordPress. Если их не настроить, сайт будет вылетать с ошибками типа «Allowed memory size exhausted» или «Maximum execution time exceeded».
Давайте разберём основные лимиты и их оптимальные значения.
memory_limit — сколько памяти можно использовать
Это самый важный параметр. WordPress сам по себе потребляет около 40-60 МБ. Но если у вас установлены плагины для кеширования, SEO, безопасности, формами обратной связи — расход памяти растёт.
Рекомендация: ставьте 256 МБ или 512 МБ, если сайт крупный. Для обычного блога хватит 128 МБ. Меньше 64 МБ — почти гарантированные ошибки.
max_execution_time — сколько времени скрипт может работать
Некоторые задачи (импорт товаров, генерация отчётов, обновление плагинов) могут выполняться долго. Если лимит времени маленький — процесс прервётся.
Рекомендация: 120 секунд (2 минуты) — золотая середина. Для обычных страниц этого более чем достаточно, а для фоновых задач — не слишком много.
upload_max_filesize и post_max_size — размер загружаемых файлов
Вы когда-нибудь пытались загрузить на WordPress видео или большой PDF-файл, и сайт писал «Файл слишком большой»? Это он.
Рекомендация: upload_max_filesize = 64 МБ, post_max_size = 128 МБ. Если вам нужно загружать видео — увеличьте до 256 МБ или 512 МБ.
max_input_vars — количество переменных в форме
Если у вас сложная форма с множеством полей (например, каталог товаров с фильтрами), может вылезти ошибка «Input variables exceeded». Это когда PHP просто не успевает обработать все данные.
Рекомендация: 3000-5000. По умолчанию часто стоит 1000 — маловато для интернет-магазина.
OPcache — как ускорить сайт в 3-5 раз без доработок
А теперь — мой любимый пункт. OPcache — это встроенный кеш PHP, который хранит скомпилированный код в оперативной памяти. Без него каждый раз, когда пользователь заходит на страницу, PHP читает исходный код, компилирует его, и только потом выполняет. С OPcache — берёт готовую версию из памяти.
Как это выглядит на практике:
- Без OPcache: страница генерируется 0.5 секунды
- С OPcache: страница генерируется 0.1 секунды
Разница в 5 раз. И это без установки дополнительных плагинов.
Как включить OPcache:
- Зайдите в панель управления хостингом
- Найдите настройки PHP (обычно php.ini или раздел «Расширения PHP»)
- Убедитесь, что OPcache включён (extension=opcache)
- Выставьте рекомендуемые параметры:
opcache.enable=1 opcache.memory_consumption=128 opcache.interned_strings_buffer=8 opcache.max_accelerated_files=10000 opcache.revalidate_freq=2
Что эти параметры значат:
- memory_consumption — сколько памяти выделить под кеш (128 МБ — норма)
- max_accelerated_files — сколько файлов кешировать (10000 обычно хватает)
- revalidate_freq — как часто проверять, не изменился ли код (2 секунды — оптимально для продакшена)
Важно: Не ставьте revalidate_freq=0 на продакшене. Это заставит PHP проверять каждый файл при каждом запросе — смысл OPcache теряется.
Как проверить, работает ли OPcache
Самый простой способ — установить плагины вроде Query Monitor или WP Server Stats. Они показывают статус OPcache и статистику попаданий (hit rate). Хороший показатель — 95%+ попаданий.
Можно также создать простой PHP-файл на сервере с функцией phpinfo() и посмотреть раздел OPcache. Но проще через плагин.
JIT-компиляция в PHP 8 — ещё один уровень ускорения
С выходом PHP 8.0 появилась JIT-компиляция (Just-In-Time). Это значит, что PHP может компилировать код прямо во время выполнения, а не перед каждым запуском.
На WordPress JIT даёт прирост производительности около 10-20% на вычислительных задачах (например, сложные фильтры в WooCommerce). Но для обычного блога или сайта услуг разница не так заметна.
Как включить JIT:
Обычно JIT включён по умолчанию в PHP 8.x, если не отключён в php.ini. Проверьте параметр opcache.jit — он должен быть включён.
Если у вас хостинг с настройками PHP — просто выберите PHP 8.x. JIT будет работать.
Типичные ошибки при настройке PHP для WordPress
Я постоянно вижу одни и те же грабли. Давайте сразу их разберём.
Ошибка 1: «Allowed memory size of 134217728 bytes exhausted»
Решение: увеличьте memory_limit до 256 МБ или 512 МБ.
Ошибка 2: «Maximum execution time of 30 seconds exceeded»
Решение: увеличьте max_execution_time до 120 секунд.
Ошибка 3: Сайт падает при загрузке изображений
Решение: увеличьте upload_max_filesize и post_max_size.
Ошибка 4: После обновления PHP сайт выдаёт белый экран
Решение: включите отображение ошибок в wp-config.php (define(‘WP_DEBUG’, true);) и посмотрите, какой плагин несовместим. Обновите его или отключите.
Как настроить PHP через wp-config.php
Если у вас нет доступа к php.ini (например, на дешёвом хостинге), некоторые лимиты можно выставить прямо в конфигурации WordPress.
Откройте файл wp-config.php в корне сайта и добавьте перед строкой «That’s all, stop editing!»:
define('WP_MEMORY_LIMIT', '256M');
define('WP_MAX_MEMORY_LIMIT', '512M');
Это увеличит лимит памяти для админки и для фронтенда. Не все параметры PHP можно так настроить, но memory_limit — точно да.
Внимание: Если на хостинге стоит жёсткое ограничение (например, 128 МБ), эти константы не помогут. Только смена тарифа или переход на другой хостинг.
Когда настройка PHP не поможет — и что делать
Честно скажу: если у вас хостинг за 100 рублей в месяц с «безлимитным» SSD и кучей сайтов на одном сервере — настройка PHP может дать лишь небольшой прирост. Потому что узким местом будет сам сервер.
Признаки, что хостинг не тянет:
- Время ответа сервера (TTFB) больше 500 мс даже после настройки PHP
- Сайт падает при 50 одновременных посетителях
- Админка тормозит даже с OPcache
В таком случае — меняйте хостинг на более производительный (VPS или выделенный сервер) и уже на нём настраивайте PHP.
Практический чек-лист: что сделать прямо сейчас
Если вы хотите, чтобы сайт работал быстро и не падал — вот минимальный набор действий:
- Проверьте версию PHP — должна быть 8.x
- Установите memory_limit = 256 МБ
- Установите max_execution_time = 120 секунд
- Установите upload_max_filesize = 64 МБ
- Включите OPcache с рекомендуемыми параметрами
- Установите плагин Query Monitor для контроля производительности
Всё это делается в панели управления хостингом. Обычно это занимает 10-15 минут. А эффект — сайт начинает работать в 2-3 раза быстрее.
Как мы помогаем с настройкой PHP
Я понимаю, что не каждый предприниматель хочет лезть в технические дебри. Иногда проще делегировать.
В Wenesis мы не просто делаем сайты на WordPress — мы настраиваем их под бизнес-задачи. Проверяем версию PHP, выставляем оптимальные лимиты, включаем OPcache, JIT-компиляцию. И да — мы объясняем, зачем это нужно.
Если ваш сайт тормозит, вылетают ошибки или вы просто хотите, чтобы он летал — обращайтесь. Посмотрим, что можно сделать. Часто проблема решается за час-два, а результат виден сразу.
P.S. Кстати, тот владелец интернет-магазина, с которого я начал — после настройки PHP его сайт стал грузиться за 1.2 секунды вместо 5.8. Конверсия выросла на 35% за месяц. Просто потому, что PHP перестал быть бутылочным горлышком.
Добавить комментарий