OPcache (раньше "Zend Optimizer+") — официальный кеш bytecode PHP. PHP при каждом вызове скрипта парсит его в bytecode и запускает. Эта компиляция повторяется на каждом запросе и занимает много времени. OPcache сохраняет результат компиляции в RAM и сразу запускает в следующих запросах — это сильно ускоряет сайт.
Что даёт OPcache
Без OPcache: чтение файлов, парсинг, синтаксис, генерация bytecode, выполнение — ~50-200 мс. С OPcache: 5-20 мс (в 10 раз быстрее). В WordPress загрузка падает с 800 мс до 200 мс. На крупных сайтах эффект ещё больше.
Настройка
OPcache есть в PHP 5.5+, но дефолты консервативны. В .user.ini или php.ini:
opcache.enable = 1
opcache.memory_consumption = 256
opcache.interned_strings_buffer = 16
opcache.max_accelerated_files = 10000
opcache.validate_timestamps = 1
opcache.revalidate_freq = 60
opcache.fast_shutdown = 1
memory_consumption — RAM для OPcache (МБ). WordPress 128-256, крупный e-commerce 256-512. max_accelerated_files — Composer-проекты 20000-30000.
validate_timestamps и revalidate_freq — когда проверять изменения файлов. Production — revalidate_freq = 60, dev — validate_timestamps = 0 или revalidate_freq = 0.
Проверка статуса
opcache_get_status(). На практике удобнее GUI — OPcache GUI (rlerdorf/opcache-status от создателя PHP Расмуса Лердорфа).
Cache busting
После правки кода если показывается старая версия — очистите кеш: opcache_reset() или перезапуск PHP-FPM. В cPanel обычно есть "Reset OPcache".
Практика Sayt.uz
В дефолтных тарифах OPcache включён и оптимизирован: 256M RAM, 30000 max files. Клиенты могут менять через .user.ini. WordPress с OPcache работает в 3-5 раз быстрее — LCP с 800 мс до 200 мс. Совет: включите OPcache и следите — это бесплатно, но сильно улучшает UX.