Skip to content

Latest commit

 

History

History
126 lines (84 loc) · 7.86 KB

File metadata and controls

126 lines (84 loc) · 7.86 KB
title Кэширование WordPress
description Виды кэширования в WordPress: плагины, браузерный кэш, объектный кэш и серверный кэш — как выбрать и настроить.

Кэширование — самый быстрый способ ускорить WordPress. Для немедленного эффекта установите W3 Total Cache, WP Super Cache или Cache Enabler.

Подробнее об общих принципах оптимизации — Оптимизация WordPress.

Плагины кэширования

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

В связке с системным кэшем уровня Varnish эффективность многократно возрастает.

Популярные плагины:

Если на сайте много динамического контента, настройка кэширования сложнее. Ищите по запросу «WordPress cache plugin» актуальные решения.

Браузерный кэш

Браузерный кэш снижает количество запросов к серверу за счёт хранения статических файлов (изображения, CSS, JS) на компьютере посетителя.

Механизм работы:

  • Сервер отправляет заголовки Cache-Control (особенно max-age) и Expires
  • Браузер проверяет Entity Tags (ETag) вместо повторной загрузки
  • Сервер отвечает 304 Not Modified вместо 200 OK с телом файла

Результат — меньше трафика и быстрее загрузка при повторных визитах.

Пример заголовков в .htaccess

<IfModule mod_expires.c>
  ExpiresActive On
  ExpiresByType image/jpg "access plus 1 year"
  ExpiresByType image/jpeg "access plus 1 year"
  ExpiresByType image/gif "access plus 1 year"
  ExpiresByType image/png "access plus 1 year"
  ExpiresByType text/css "access plus 1 month"
  ExpiresByType application/javascript "access plus 1 month"
</IfModule>

Объектный кэш

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

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

Движки объектного кэша:

Движок Тип Особенности
Redis In-memory Самый популярный, богатая структура данных
Memcached In-memory Простой, проверенный временем
APC/u In-memory Локальный для одного сервера
Файловая система Disk-based Не требует доп. сервисов

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

Объектный кэш в WordPress

WordPress имеет встроенный API объектного кэша через класс WP_Object_Cache. Для подключения внешнего движка (Redis, Memcached) используйте drop-in плагин object-cache.php в wp-content/.

// Базовое использование WP Object Cache API
wp_cache_set('my_key', $data, 'my_group', 3600);
$data = wp_cache_get('my_key', 'my_group');
wp_cache_delete('my_key', 'my_group');

Серверный кэш

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

Уровни серверного кэширования:

Opcode-кэш

Ускоряет выполнение PHP, сохраняя скомпилированный байт-код в памяти:

  • OPcache — встроен в PHP 5.5+, рекомендуется к включению всегда
  • WinCache — для IIS на Windows

Reverse Proxy

Обратный прокси-сервер перед веб-сервером WordPress:

  • Varnish — мощный HTTP-акселератор, отлично сочетается с плагинами кэширования (W3TC, WP Super Cache)
  • Nginx FastCGI Cache — кэширование на уровне веб-сервера без дополнительного ПО

Схема многоуровневого кэширования

Пользователь → CDN → Varnish (reverse proxy) → Nginx/Apache (opcode cache) → WordPress (object cache: Redis) → MySQL

Выбор стратегии

Уровень сайта Рекомендация
Блог на shared-хостинге Плагин кэширования + браузерный кэш
Средний сайт на VPS Плагин + OPcache + объектный кэш (Redis)
Высоконагруженный проект Varnish/Nginx FastCGI + Redis + CDN + OPcache

Кэширование с WooCommerce

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

Подробнее: Кэширование в WooCommerce.

Дополнительные материалы


Источник: WordPress Developer Handbook — Cache