Не работает кэш joomla

Обновлено: 04.07.2024

Скорость загрузки страниц – один из важных факторов успеха вашего сайта. Сама по себе Joomla не медленная, тем не менее, существует масса способов сделать Joomla 3 быстрее, об этом и пойдет речь в статье.

Вовремя обновляйте Joomla и ее расширения.

Запомните: очень важно иметь в своем арсенале последнюю версию Joomla, т.к. с каждой новой версией код Joomla улучшается. Даже если обновления несущественны свежие версии Joomla, как правило, быстрее предыдущих.

Включите встроенное Joomla-кэширование.

Если встроенный кэш отключен, то при каждой загрузке страницы Joomla извлекает контент из базы данных, загружает все установленные плагины, компоненты и модули, загружает файл шаблона и собирает это все в одну страницу. Естественно, все эти операции занимают какое-то время – вот почему нелишним будет включить встроенное кэширование. Благодаря этой функции всё вышеперечисленное сохраняется в простой HTML-файл, который загрузят все последующие посетители сайта.

Чтобы включить Joomla-кэширование необходимо зайти в «Система» –> «Общие настройки»


Перейти во вкладку «Система»:


Немного пролистайте страницу, и вы увидите блок «Настройки Кэша». В выпадающем списке «Кэш» выберите пункт «Стандартное кэширование». Также доступно прогрессивное кэширование, оно работает немного иначе: происходит сохранение копии сайта для каждого конкретного посетителя. Такое кэширование используется в особых случаях. Не рекомендуется его использовать, если вы не уверены, что это вам требуется.


После выбора метода кэширования нажмите на кнопку «Сохранить».


Дальше надо включить встроенный плагин кэширования Joomla «Система - Кэш». Зайдите в «Расширения-Менеджер плагинов»:


В появившемся поле вы увидите длинный список установленных плагинов. Для удобства воспользуйтесь поиском, введите там «Кэш» и нажмите на кнопку с лупой:


Включите плагин, нажав на красную иконку возле названия плагина:


Иконка рядом с названием плагина станет зеленой:


Включите Gzip-сжатие.

Еще один метод увеличения скорости загрузки сайта – это сжатие. Если включить встроенное Gzip-сжатие, то перед отправкой посетителю сайта его страницы будут сжиматься, сжатые страницы загружаются гораздо быстрее. Чтобы включить сжатие пройдите в меню «Система-Общие настройки»:


Перейдите во вкладку «Сервер»:


В пункте Gzip-сжатие страниц выберите «Да» и сохраните:




Обратите внимание, что иногда Gzip-сжатие может привести к ошибкам. Если такое происходит, значит на сервере не установлена или неправильно настроена Gzip, необходимо связаться с технической поддержкой хостинга.

Пропишите параметры оптимизации в .htaccess.

В файле .htaccess прописываются параметры обработки файлов сайта веб-сервером. Для ускорения загрузки страниц можно прописать следующие параметры:

ETag – говорит браузерам о том, что картинка скачена и может быть загружена из кэша браузера, а не с сервера.

Expiresheaders – похож на ETag с той лишь разницей, что можно задавать различные сроки действия для различных типов файлов.

AddOutputFilterByType DEFLATE – уменьшает исходный код, путем удаления из скомпилированных HTML-файлов пустых строк, пробелов.

Уменьшайте размер картинок.

Изображения – неотъемлемая часть сайта, и в большинстве случаев их размер может быть оптимизирован. Вот несколько способов:

  • Никогда не используйте оригинальные изображения, в этом случае браузер применит HTML-масштабирование. Помимо того, что это займет какое-то время, результат вас вряд ли порадует
  • Всегда сжимайте изображения, с которыми собираетесь работать. Существует множество программ, способных выполнить эту операцию. Помимо известного всем Adobe Photoshop есть также online-сервисы типа Smush It.

Удаляйте ненужные и не поддающиеся оптимизации расширения.

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

Зачастую разработчики тестируют различные плагины, компоненты и модули и потом забывают удалить лишнее. Возьмите себе за привычку в определенный период времени проводить уборку во «внутренностях» сайта.

Если вы все-таки намерены установить расширение, то обязательно проверьте, не упала ли скорость загрузки страницы. Бывает, что неграмотно написанные компоненты тормозят работу всего сайта.

Используйте расширения Joomla для оптимизации сайта.

Для оптимизации работы сайта доступно большое количество расширений, вот некоторые из них:

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

Содержание

Что такое серверное кэширование?

Сайты на CMS Joomla являются динамическими: перед тем, как отобразиться в браузере, веб-страница формируется через взаимодействие PHP-кода с базой данных. Это предполагает огромное множество действий со стороны сервера, скорость выполнения которых может сильно падать, если к сайту одновременно выполняется много запросов (большое количество пользователей в единицу времени), в результате чего время загрузки страниц сайта может сильно возрастать.

Облегчить работу сервера как раз позволяет серверное кэширование: веб-страницы целиком или частично в виде конечного HTML-кода будут сохраняться на сервере в виде временных файлов (кэша) после генерации и отдаваться при запросах пользователями.

Виды кэширования в Joomla 3

Джумла предусматривает 3 вида кэширования данных на сервере:

Теперь о каждом по порядку.

Стандартный уровень кэширования

Обеспечивает создание файлов кэша для всех элементов веб-страниц, в том числе модулей, в настройках которых не отключено кэширование. Подойдёт для любого сайта.

Прогрессивный уровень кэширования

Аналогично стандартному, за исключением того, что все модули будут кэшироваться в один файл, независимо от их индивидуальных настроек. Такой вариант не подходит для сайтов с динамическими модулями, контент которых может меняться в зависимости от действий пользователей (например, модуль виртуальной корзины).

Кэширование страниц

Такой вариант предполагает сохранение конечных копий веб-страниц целиком, в том числе компонентов. Этот тип кэширования самый эффективный в отношении скорости загрузки и подойдёт для большинства лэндингов, но не для сайтов с постоянно обновляющимся контетом.

Настройка кэширования в Joomla 3

Поговорим о том, как активировать и настроить серверное кэширование.

Настройка стандартного или прогрессивного кэширования

  1. СистемаОбщие настройки
  2. вкладка Система
  3. раздел Настройки кэша
  4. Обработчик кэширования

Если на сервере активированы прекомпиляторы для обработки кэша, они будут в выпадающем списке. Если выбор отсутствует или вызывает затруднение, выберите значение Файл.

Если не заполнять, то все временные файлы будут храниться в папке /cache/

Подразумевает время хранения временных файлов в минутах. Рекомендуем выставлять значение, равное приблизительной частоте обновления контента на сайте, но не более 1440 минут (одних суток) во избежание каких бы то ни было проблем.

Следует активировать, когда код веб-страниц отличается в зависимости от устройства вывода (например, для мобильных устройств применяется иная вёрстка).

Собственно, эта опция и определяет тип кэширования (стандартный или прогрессивный).

Кэширование это запоминание системой своих действий по отражению сайта и/или его частей для снижения обращений в базу данных сайта. Как следствие - снижение нагрузки на сервер хостинга. То есть, при вызове определенной динамической страницы сайта система сохраняет в кэше её статическую копию и при последующем вызове этой страницы другим пользователем система откроет её из кэша сайта. Вызов статической страницы происходит гораздо быстрее, чем вызов динамической страницы, а значит, будет меньше обращений к базе данных сайта, будет уменьшена нагрузка на сервер и уменьшится скорость загрузки страниц сайта.

Бытует мнение, что CMS Joomla 3 быстрая система. Это не совсем так. Даже «голый» сайт, то есть сайт без установленных сторонних расширений, без страниц и без модулей грузится более 2-х секунд. Причем, включение/ выключение кэширования на таком сайте не на что не влияет. Например, если провести анализ скорости загрузки пустого сайта Joomla 3, с включенной и отключенной функцией кэширования, время загрузки будут отличаться на 0,1-0,2 секунды.

speed joomla 3 1

Дело в том, что основные виды кэширования Joomla, сохраняют в памяти сформированные страницы, установленные модули и данные компонентов, а не файлы и расширения самой системы.

Три вида кэширования Joomla, три типа кэша Joomla

В Joomla предусмотрено три основных типа кэша, настройки, которых доступны из административной панели. Разделяются типы кэша по объектам кэширования, а именно:

Как видите, по доступности кэширования, типы кэша можно объединить в две группы:

Причем, кэш страниц уже включает кэш модулей и компонентов. По этим группам разделяются и настройки кэширования Joomla.

Особенности кэширования Joomla или приоритеты кэша

Понятно, что несколько типов кэша Joomla, должны иметь приоритетное построение вызова. То есть, должно существовать правило, откуда система возьмет сохраненную копию страницы или её части (модуля, изображения и т.п.). Важно понимать:

  • Во-первых, кэширование модулей и кэширование компонентов происходят параллельно, и не зависит друг от друга;
  • Во-вторых, и это самое важное, кэширование страниц имеет приоритет (для пользователей) над кэшированием модулей и компонентов. К сожалению, здесь опять все не просто и требуются пояснения.

В системе Joomla кроме раздельного включения и выключения кэширования страниц и модулей с компонентами, есть настройка времени кэширования. Так, вот, если время кэширования страницы (то есть время, сколько страница будет лежать в папке кэша до удаления) будет меньше, чем время кэширования модуля, то система подгрузит кэш модуля к кэшу страницы.

Пора посмотреть, где включаются и настраиваются типы кэша Joomla 3.

Как включить и настроить Кэш страниц, модулей и компонентов Joomla 3

Все виды кэширования, по умолчанию, выключены. Для использования кэширования на Joomla 3, каждый вид кэширования нужно, при необходимости активировать и настроить в административной панели сайта.

Кэширование страниц сайта

Кэширование страниц сайта включается на вкладке: Расширения→Менеджер плагинов→Система-Кэш.

Права доступа пользователей к управлению кэш настраиваются на вкладке: Система→Общие настройки→Менеджер кэша.

Практически, настроек в кэширование страниц Joomla нет. Есть только включение и выключение, и важное включение «Кэш браузера». Если используете кэш страниц, то обязательно включите «Кэш браузера». Правда при таком включении вам придется чистить кэш браузера вручную, чтобы увидеть сделанные вами изменения на сайте.

plugin sistem cache joomla 3 1

sistem cache joomla 3 1

Кэширование модулей сайта и кэширование представлений компонентов

Кэширование модулей сайта и кэширование представлений компонентов работают параллельно и включаются на вкладке: Система→Общие настройки→Система→Настройки кэш. Здесь всё просто и сложно одновременно:

В пункте «Кэш» вы можете не только включить/отключить кэш сайта, но и выставить его уровень. Есть два уровня кэширования:

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

obshhie nastroyki cache joomla 3 1

Время жизни кэша

vremja cache obshhee 1

Отдельное кэширование модулей

С модулями не все просто. В системе есть статические и динамические модули. Например, модуль меню в виде списка это статический модуль, а модуль меню в виде выпадающих пунктов меню, это модуль динамический. К динамическим модулям относятся все модули, которые меняются со временем.

vremja cache moduley 1

Правило простое, статические модули кэшируем, часто меняющиеся модули, кроме модулей JavaScript (реклама AdSense) не кэшируем. Но и здесь не все просто: если вы включили прогрессивное кэширование, то страница вместе со всеми модулями «потянется» из кэша, и выставленное значение в настройках модуля «Не кэшировать» учитываться не будет. Выход простой. Ставим время кэширования динамического модуля несколько минут. Кстати, по умолчанию все время кэширования выставлено 900 секунд, и, вполне, может не перестраиваться. А вот настройка кэширования для модуля «По умолчанию» (Создать модуль→Дополнительные параметры→Кэширование→По умолчанию), означает, что будет использована настройка кэша в «Общих настройках»: Система→Общие настройки→Система→Настройки кэш.

Повторюсь: Есть две группы настроек кэширования: Система - Кэш в менеджере плагинов и «Настройка кэширования» в Общих настройках. Первый имеет приоритет над вторым, но фактически, эти две группы кэширования работают параллельно.

Итоги

Как и на всех CMS настройка кэширования дело хлопотное, но нужное, если есть желание попасть в топы выдачи.

Выводы

  • Включить кэширование на Joomla 3 нужно обязательно.
  • Установите время кэширования в соответствии со временем обновления на сайте;
  • Настройте кэш таким образом, чтобы было возможно отключить кэширование динамических модулей;
  • Какой тип кэширования включить решать вам: поэкспериментируйте, на готовом сайте, с различными комбинациями включения выключения видов кэширования. У меня минимальная скорость загрузки получается при выключенном плагине кэширования страниц и включенном Прогрессивном кэшировании с жизнью кэша 10080 минут.

И последний совет: Если удалили весь кэш, например, после изменения внешнего вида сайта или какого-либо редактирования, для его восстановления, как минимум зайдите на главную страницу сайта, а как максимум прогоните сайт, через любой генератор sitemap.

Было бы просто замечательно, если бы скорость загрузки сайта глобально зависела только от включения кэша. А это не так. Есть масса других проблем, которые нужно решать, чтобы сайт загружался быстрее. Об этом в других статьях сайта.

Читайте также: