Если вы когда-либо интересовались, как ускорить свой сайт на WordPress, вы, наверное, слышали о «кешировании». Обычно речь идет о кешировании страниц, когда плагин сохраняет готовую HTML-копию страницы. Но существует другой, более глубокий уровень кеширования, который работает до того, как эта HTML-страница вообще будет создана. Речь об OPcache.

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

 

Как работает PHP без OPcache? (медленный путь)

Когда пользователь заходит на ваш сайт, веб-сервер (например, Nginx) передает запрос PHP-обработчику, о котором мы говорили в статье о FastCGI и PHP-FPM. Чтобы выполнить index.php, PHP делает 4 шага:

  1. Чтение: Читает .php файл с диска.
  2. Лексический анализ: Разбирает текстовый код на «слова» (токены).
  3. Компиляция: Превращает эти токены в машинно-понятный «байт-код», который называется Opcodes (опкоды).
  4. Исполнение: Выполняет эти опкоды.

На сайте WordPress при каждой загрузке страницы загружаются десятки файлов (ядро, тема, плагины). И этот 4-этапный процесс происходит для каждого файла при каждом запросе. Это огромная, бесполезная работа.

 

Как работает PHP с включенным OPcache? (быстрый путь)

OPcache — это расширение PHP, которое сохраняет уже скомпилированные опкоды в общей памяти.

Когда поступает первый запрос:

  1. Чтение -> Анализ -> Компиляция -> Сохранение опкодов в память -> Исполнение.

Когда поступает второй и все последующие запросы:

  1. Получение опкодов из памяти -> Исполнение.

Мы пропускаем три из четырех шагов! PHP больше не тратит время на чтение файлов с диска и их компиляцию. Он мгновенно берет готовый «рецепт» из памяти. Это драматически снижает нагрузку на процессор и ускоряет время генерации страницы (TTFB).

 

Почему OPcache — это «маст-хэв» для WordPress?

OPcache — это не то же самое, что плагины кеширования страниц (WP-Rocket, W3 Total Cache). Они работают на разных уровнях:

  • OPcache: Ускоряет генерацию страницы (работу самого PHP).
  • Кеш страниц: Сохраняет уже сгенерированную HTML-страницу.

Они не заменяют, а идеально дополняют друг друга. Даже когда вам нужно сбросить кеш страниц, OPcache продолжает работать, и страница сгенерируется намного быстрее. Для админ-панели WordPress, которая обычно не кешируется, OPcache — это просто спасение.

  • 🚀 Значительно ускоряет работу CMS (WordPress, Joomla, Drupal).
  • 📉 Снижает нагрузку на CPU вашего VPS.
  • ⚡ Улучшает показатель TTFB, что важно для SEO.

 

Практика: как настроить OPcache в php.ini

В большинстве современных версий PHP, OPcache уже встроен и включен по умолчанию. Но его настройки «из коробки» не всегда оптимальны. Нам нужно найти наш файл php.ini. (Если вы не знаете, где он, вспомните нашу статью об установке PHP).

Откройте php.ini и найдите секцию [opcache]. Вот рекомендуемые настройки, которые я использую:

; Включаем OPcache
opcache.enable=1
; Включаем OPcache для консольных скриптов
opcache.enable_cli=1
; Выделяем 128 МБ памяти под кеш опкодов
opcache.memory_consumption=128
; Сколько файлов можем хранить в кеше (подберите под свой проект)
opcache.max_accelerated_files=10000
; Включаем проверку актуальности файлов
opcache.validate_timestamps=1
; Как часто проверять файлы на изменения (в секундах)
opcache.revalidate_freq=5

 

Важно: настройки для Production vs Development

Настройки выше идеально подходят для разработки (Development), так как opcache.revalidate_freq=5 заставляет PHP проверять файлы на изменения каждые 5 секунд. Вы можете редактировать код и сразу видеть изменения.

Для боевого сервера (Production), где код не меняется ежеминутно, я рекомендую установить opcache.revalidate_freq=60 (или даже выключить opcache.validate_timestamps=0). Это даст максимальную производительность, так как PHP вообще не будет обращаться к диску для проверки файлов. Но помните: после обновления плагинов или темы вам придется перезапустить PHP-FPM, чтобы сбросить кеш.

 

Как проверить, что OPcache работает?

Это очень просто. Создайте в корне вашего сайта файл info.php со следующим содержимым:

<?php
phpinfo();
?>

Откройте этот файл в браузере (https://your-site.com/info.php) и нажмите Ctrl+F, чтобы найти «OPcache». Вы должны увидеть целый блок, посвященный этому расширению. Главная строка — opcache.enable, которая должна стоять в позиции «On«. И/или значение «Up and Running» должно быть для строки «Opcode Caching«.

Вы также увидите статистику: количество «hits» (попаданий в кеш) и «misses» (промахов). На рабочем сайте процент попаданий должен быть очень высоким (99%+).

Важно: Не забудьте удалить файл info.php после проверки, так как он раскрывает много информации о вашем сервере.

 

Вывод: бесплатное ускорение, которое уже у вас есть

По моему мнению, запускать WordPress-сайт без включенного OPcache в 2025 году — это просто преступление против производительности. Это встроенный в PHP механизм, который не стоит вам ничего, но дает мгновенный и существенный прирост скорости.

Проверьте настройки своего сервера. Убедитесь, что OPcache не просто включен, а оптимально настроен. Это тот самый «легкий» тюнинг, который превращает ваш сайт из просто рабочего в действительно быстрый.

 

Дополнительное улучшение: использовать еще и Varnish-кэширование. Varnish берет обработанную страницу OPcache, отдает ее посетителю и сохраняет копию у себя в кэше для следующих посетителей. Если готовая страница есть в кэше Varnish: он мгновенно отдает ее и все, — дальше запрос не идет. Результат: посетители получают ответ мгновенно. Нагрузка на веб-сервер, PHP и базу данных равна нулю для закэшированных страниц. Подробнее о технологии в нашем обзоре Varnish.

 

Recent Posts

Что такое XML: невидимый инструмент для вашего сайта и SEO 📄

Когда мы говорим о веб-разработке, первое, что приходит на ум — это HTML и CSS.…

1 день ago

Что такое качественный контент 📝 и как его распознать?

В мире SEO есть фраза, которую повторяют так часто, что она уже стала клише: "Content…

2 дня ago

Как зарегистрировать торговую марку в Украине ⚖️ | Пошаговая инструкция

Создание бизнеса — это как рождение ребенка. Вы вкладываете в него душу, время и деньги.…

3 дня ago

Что такое FastCGI и PHP-FPM 🚀 | Как работает современный PHP

Когда вы только начинаете работать с PHP, кажется, что все просто: вы пишете код, веб-сервер…

4 дня ago

Установка PHP 8 на Windows 💻 | Пошаговая инструкция

Многие начинающие разработчики на Windows начинают свой путь с пакетов типа XAMPP, WampServer или Laragon.…

5 дней ago

Как создать кастомную страницу регистрации WordPress — без плагинов

Когда вы устанавливаете WordPress, он любезно предоставляет вам стандартную страницу регистрации по адресу wp-login.php?action=register. Она…

2 недели ago