#Быстродействие и кеширование
Настройка кеширования и оптимизации
#Быстродействие и кеширование
Основные преимущества функционала кеширования для ваших пользователей:
- Ускорение загрузки страниц
Функция кеширования страниц PHPShop позволяет сохранять HTML-код страниц сайта в специальный файл кеша на сервере (файловая система, база данных MySQL или сервер кэширования Memcached). При последующем обращении к этой странице, не будут тратится ресурсы сервера для ее генерации, а сразу, за доли секунд, будет выдан HTML-файл кеша. Это позволит снять нагрузку на сервер и сократить время отдачи страницы сервером в несколько раз. - Стабильность при высоком трафике
Даже в часы пиковой нагрузки сайт остаётся отзывчивым, так как кеш снижает нагрузку на сервер, предотвращая замедления или сбои из-за ботов. - Улучшение SEO-позиций
Скорость загрузки страниц — ключевой фактор ранжирования Google, Yandex. Кэширование ускоряет загрузку контента, что улучшает позиции сайта в поисковой выдаче и привлекает органический трафик. - Актуальность данных
При обновлении товаров или контента, кеш автоматически обновляется (минимум 1 раз в день), гарантируя, что пользователи видят свежую информацию. Можно настроить полный кеш для поисковиков и частичный кеш для пользователей, чтобы цены/склад на витрине всегда были свежие. - Повышение удобства для постоянных клиентов
Часто отображаемые разделы (каталог, меню навигации, баннеры) загружаются мгновенно, создавая ощущение "бесшовного" взаимодействия. Это повышает лояльность и конверсию. - Снижение затрат на инфраструктуру
Один кэш-сервер заменяет несколько инстансов баз данных, сокращая расходы на хостинг. Например, использование Memcached позволяет уменьшить нагрузку на СУБД на 30-50%.
#Настройка
Настройка быстродействия (кэширование) находится в меню Настройки - Обслуживание - Быстродействие.

Настройка быстродействия
#Хранение кеша
Хранить кеш можно в виде файлов, записей в базе данных MySQL или ячейках памяти сервера кэширования Memcached. Производительность зависит от персональных настроек хостинга (использование быстрых NVMe SSD дисков, поддержка Memcached).
.png)
Рекомендуем использовать Файловую систему на хостингах с NVMe SSD дисками или Базу данных MySQL на обычных дисках. Если нужно подключить Memcached, инструкция👇
Подключение Memcached на примере хостинга Beget
Зарегистрируйтесь на хостинге Beget.
В личном кабинете аккаунта хостинга Beget в разделе Сервисы активируйте сервис Memcached.
Сервис платный, если вы хотите проверить работу бесплатно и скорость не важна, выберите База данных MySQL.
Версия ядра PHP для сайта должна быть 7.4, для версий выше Memcached включается через техническую поддержку хостинга Beget. Проверить версию можно в меню Справка - о программе.

После регистрации, пропишите Адрес и Порт в меню Настройки - интеграции:

#
Опция Очистить кеш позволяет удалить все записи старого кеша - это полезно для тестирования или срочной смены данных на сайте (контент, оформление, CSS стили и т.д.).
?cache=clean, например для главной страницы https://ваше-имя-сайта/?cache=clean. Для принудительной очистки пользователь должен быть предварительно авторизован в админке сайта.
#Тип кеша
Кеш может быть в виде HTML страницы целиком (полный кеш) или в виде Только статических элементов (частичный).
- Полный кеш хранит полную HTML страницу сайта - наибольший результат сокращения времени ответа сервера. Такой тип кеша подходит для большинства магазинов.
- Частичный кеш хранит только код статических элементов: меню страниц, баннеров, меню каталогов и т.д. Такой тип кеша будет актуален (разница в скорости будет заметна) только для больших магазинов с большим каталогом и медленной базой данных MySQL.
- Не используется - кеш отключен.
.png)
Тип кеша можно указать отдельно для поисковых ботов (Яндекс, Google и др.) и живых пользователей сайта.
 (1).png)
Файлы кеша хранятся на сервере в папке /UserFiles/Cache/html.
#Кодировка кеша
Для поисковых ботов можно включить поддержку вывода данных в кодировке UTF-8. Это нужно для seo-утилит и html-валидаторов, которые могут жаловаться в своих отчетах на русскую кодировку Windows-1251. Так же отображение ссылки на сайт в некоторых мессенджерах и чатах будет показана в более читаемом виде.
#Количество дней хранения кеша
Опция настраивает количество дней, в течение которых хранится кеш, после превышения лимита хранения, кеш автоматически обновляется.
#Оптимизация кода
Функция позволяет сокращать размер итоговой HTML-страницы на 20-30% путем удаления из исходного кода страницы комментариев и форматирования кода (переносы, отступы для удобства отладки и доработки).
 (1) (1).png)
Вся страница будет представлена в виде одной строки, сокращающая передаваемый код страницы до нескольких килобайт.

Исходный код страницы без оптимизации

Оптимизированный исходный код страницы
#GZIP сжатие
GZIP-сжатие позволяет в реальном времени сжимать код страницы в несколько раз. Чем больше gzip-сжатие, тем лучше сжимается контент. Рекомендуется установить уровень gzip сжатия на наибольший - 9.
#Счетчик
Настройка позволяет выводить в конец исходного HTML-кода страницы информацию по затраченным ресурсам до кэширования и после. Служит для визуального контроля параметров кеширования.
<!-- Realtime ~ 95 SQL, 0.5289 sec, 4035.57 Kb -->
<!-- Filecache ~ 1 SQL , 0.0220 sec, 921.82 Kb -->
#Сжатие статических файлов
Позволяет сжимать и кешировать статические файлы CSS и JS через удаление комментариев и форматирования, а так же GZIP сжатия. Файлы кеша статики хранятся в папке /UserFiles/Cache/static.
#Тестирование
Тесты показали, что после включения кэша для поисковых ботов время ответа сервера по данных Яндекс.Webmaster и Google Page Speed сокращаются более чем в 2 раза, а вес страницы на более чем 30%.
#Яндекс.Webmaster

Без кэширования

С полным кэшированием
#Google Page Speed

Без кэширования

С полным кэшированием
При использовании кэширования для больших интернет-магазинов разница в показателях до и после включения кэширования ощутимо увеличивается.
#Браузер

Без кэширования

С полным кэшированием
#Использование
- SEO-оптимизация - если сервисы Яндекс.Webmaster или Google Page Speed сообщают об ошибке, связанной с долгим ответом сервера (время до получение первого байта от сервера).
- Снятие нагрузки с сервера - если чрезмерная активность поисковых ботов приводит к медленной работе сайта и увеличению оплаты за хостинг.
- Удобство для пользователей - быстрая работа сайта увеличивает заказы с сайта.
#Блокировка поисковых ботов
Блокировка поисковых ботов помогает уменьшить нагрузку на сайт и запретить мониторинг цен конкурентами, накручивание поведенческого фактора, запрета индексации на время заполнения сайта и т.д. Для блокировки ботов следует выбрать режим блокировки ботов.