Настройка кэширования в Joomla. Кэширование в Joomla Плагин кэширования joomla

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

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

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

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

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

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

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

  1. кэш страниц (для пользователей);
  2. кэш модулей и компонентов (для пользователей и зарегистрированных пользователей).

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

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

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

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

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

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

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

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

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

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

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

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

class="eliadunit">

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

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

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

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

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

Время жизни кэша, это время в минутах или секундах (для модулей Joomla), сколько сохраненная копия будет лежать в папке «cache» в корне сайта. Здесь совет не уникален, выставите время жизни кэша по сроку обновления вашего сайта. Если статьи или новости появляются на сайте ежедневно, то ставьте время общего кэширования 1440 (минут=24 часа). Это непринципиальный пункт настроек, потому что, вы всегда сможете очистить кэш вручную, на вкладке Система→Общие настройки или по FTP соединению вручную вычистив папку cache (все кроме, файла index.php).

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

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

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

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

Итоги

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

Выводы

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

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

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

Зачем использовать кэш?

Все просто. Получение ранее сохраненной информации намного быстрее (в 10 или более раз), чем её первоначальная генерация. Если вам нужен радикальный пример - книга является долгосрочным кэшем знаний её авторов. Аккумулирование этих знаний может занять годы, в то время как чтение этого кэша намного быстрее.

Но давайте вернемся к Joomla, и если быть более точным, здесь мы имеем дело с кэшированием веб-приложения - созданием временных статических копий динамических страниц (или более мелких единиц информации). Кэширование свойственно для веб-приложений, так как типичный веб-сайт отображает один и тот же контент снова и снова, и без кэша приходилось бы все генерировать заново для каждого показа страницы. Система кэширования временно сохраняет сгенерированную кодом информацию в объекте кэша, и отдает её обратно, когда она запрашивается следующим пользователем.

Типы кэша в Joomla

Кэш страницы (Page cache)

Делает снимки целой страницы, включая всё: компоненты, модули, плагины и шаблон. Это самый быстрый, но при этом наименее гибкий подход кэширования. Для его активации необходимо включить плагин «Система - Кэш».

Прогрессивный кэш (Progressive cache)

Это тип кэша появился в Joomla 1.6. Он делает снимки каждого уникального набора модулей (обычно каждой страницы). Влияет на все модули и работает как слой над кэшем модулей, переопределяя их настройки. Показывает контент индивидуально для каждого посетителя. Включается при установке уровня кэша в значение «Прогрессивный» в общих настройках сайта.

Стандартный кэш (Conservative cache)

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

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

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

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

Так как закэшированная копия модуля или компонента содержит только собственные выходные данные, любой внешний файл, который будет вызван с помощью таких методов как $document->addStyleSheet() не будет подключен. Были придуманы различные обходные решения, но все они требуют дополнительных вычислительных ресурсов, что уменьшает эффект использования кэширования.

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

Кэширование представления компонента осуществляется с помощью метода display($cachable, $safeurlparams) контроллера. Для этого параметр $cachebale необходимо установить в значение true , а через параметр $urlparams передать массива URL-параметров и их типов фильтра:

$cachable = true; $safeurlparams = array("catid" => "INT", "id" => "INT", "cid" => "ARRAY", "limit" => "UINT", "limitstart" => "UINT", "filter_order" => "CMD", "filter_order_Dir" => "CMD", "filter-search" => "STRING", "lang" => "CMD", "Itemid" => "INT"); parent::display($cachable, $safeurlparams);

При этом массив URL-параметров формирует уникальный cache id.

Режимы кэширования модуля

Существует 5 различных режимов кэширования модуля. Три из них активируются через поле cachemode в XML-файле манифеста модуля:

  • static - будет использоваться один кэш-файл для всех страниц с одинаковыми параметрами модуля. Рекомендуется для модулей, которые не меняются.
  • itemid - изменяется при смене Itemid. Такой режим больше всего подходит для динамических модулей, которые изменяются от страницы к странице, например: меню, изображения контента и т.п.
  • oldstatic - обратно совместимый с Joomla 1.5 режим.

Еще два режима кэширования должны вызываться непосредственно из модуля:

  • safeuri - Id кэша создается из массива URL-параметров, так же как в компоненте. Используйте этот режим, если модуль зависит от параметров URL, а не Itemid (например модуль, который отображает изображение в зависимости от категории). Свойство $cacheparams->modeparams является массивом URL-параметров и их типов фильтра.
  • Id - модуль устанавливает свой собственный кэш в зависимости от собственной формулы, которая передается через $cacheparams->modeparams

Для использования этих двух режимов, вместо поля cachemode используйте поле owncache в XML-файле манифеста:

Свойства объекта, которые передаются в метод moduleCache() , не требуют особых разъяснений. В качестве примера можно взять модуль связанных материалов (mod_related_items), который использует режим safeuri и заменяет некешированную функцию modRelatedItemsHelper::getList($params) :

$cacheparams = new stdClass; $cacheparams->cachemode = "safeuri"; $cacheparams->class = "ModRelatedItemsHelper"; $cacheparams->method = "getList"; $cacheparams->methodparams = $params; $cacheparams->modeparams = array("id" => "int", "Itemid" => "int"); $list = JModuleHelper::moduleCache($module, $params, $cacheparams);

Кэш обратного вызова (Callback cache)

Этот тип кэша позволяет дифференцировать различные части расширения и кэшировать только те, которые нужно кэшировать, при этом оставляя динамические части некэшируемыми. Кэширует результаты вызова функции в коде.

Кэш выходных данных (Output cache)

Кэширует выходные данные некоторой части скрипта. В основном это output buffering с кэшированием, и используется довольно редко.

Raw-кэш (Raw cache)

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

Обходные решения (Workarounds)

Обходные решения помогают обойти известные ограничения кэширования, такие как невозможность подключения файлов стилей или javascript из модуля или компонента. При использовании кэша представления компонента и кэша обратного вызова, можно включать или выключать определенные обходные решения. Использовать их нужно только тогда, когда закэшированная функция манипулирует хидером (header) или путем (pathway).

setWorkarounds

Метод JCache::setWorkarounds($data,$options=array()) подготавливает данные, которые будут сохранены в кэше вместе с обходными решениями, и принимает следующие опции:

  • nopathway - не сохранять pathway данные
  • nohead - не сохранять header данные
  • nomodules - не сохранять данные модуля
  • modulemode - если nohead равно 0, не сохранять следующие данные модуля: title , description , link , metaTags

getWorkarounds

Метод JCache::getWorkarounds($data,$options=array()) применяет обходные решения над данными, сохраненными с обходными решениями. Он воссоздаёт header, pathway и модули и возвращает основные сохраненные данные. Работает автоматически - конкретное обходное решение выполняется, только если его данные были сохранены отдельно.

Разница в использовании кэша обратного вызова и raw-кэша

Обычно при разработке компонента вполне достаточно кэша представления, в особенности это касается простых компонентов. Но если компонент создает контент на лету, то лучше всего выбрать другой тип кэша. В такой ситуации будет удобен кэш обратного вызова или raw-кэш.

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

Мы вызываем кэширование при помощи JFactory::getCache() , и если мы используем кэш обратного вызова, наш код должен выглядеть следующим образом:

$cache = JFactory::getCache("somegroup"); $result = $cache->get(array("someclass", "somemethod"), $methodparams, $id, $workarounds, $workaroundoptions);

Последние три параметра в методе get() являются необязательными.

Обратите внимание на то, что этот не тот же метод get() , который мы используем в raw-cache. Кэш обратного вызова автоматически получает данные, если они существуют. Если их нет, то он выполняет обратный вызов, возвращает данные из обратного вызова и сохраняет их до следующего вызова. У кэша обратного вызова не существует метода store() !

При использовании raw-кэша у разработчика есть прямой доступ к методам get() и store() , и за логику ответственен непосредственно разработчик. Этот кэш удобен, когда необходимо сохранить информацию, но не вызов функции (например: xml-данные, картинки, описание товаров и т.п.), или когда необходимо передать большой объем данных из одной страницы на другую.

Ниже приведен код использования raw-кэша:

$cache = JFactory::getCache("somegroup", ""); if (!$somevariable = $cache->get("cacheId")) { // выполняем действия и сохраняем результат в $somevariable // сохраняем $somevariable в кэше $cache->store($somevariable, "cacheId"); }

Чтобы использовать raw-кэш, в качестве второго параметра метода getCache() мы должны передать пустую строку.

Что случится, если несколько кэшей будут работать одновременно?

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

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

Обработчики кэша

Обработчики кэша - это чернорабочие. Именно они выполняют всю черновую работу и сохраняют информацию на выбранном медиа. Для использования кэша должен быть доступен хотя бы один обработчик кэша.

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

Определение кэширования

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

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

Перед настройкой кэша в Joomla, сначала нужно убедиться, что включен плагин кэширования, для этого переходим в «Расширения », затем «Менеджер плагинов », через форму поиска ищем «Система – Кэш » и включаем ее (если была отключена).

Теперь переходим непосредственно к самой настройке, для этого переходим в «Система », далее в «Общие настройки » и в вкладку «Система », после «Параметры отладки » видим «Настройки кэша »

В выпадайке «Кэш » есть три варианта выбора:

    • Кэширование отключено;
    • Стандартное кэширование;
    • Прогрессивное кэширование;

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

Очистка кэша в Joomla

Очистить кэш в Joomla достаточно просто, для этого переходим в «Система » и «Очистить весь кэш »

Использование кэша браузера Joomla

У плагина «Система – Кэш », есть такая функция как «Использовать кэширование в браузере », что она делает и зачем нужна? Когда она включена, ваш компьютер будет помимо стандартного сохранения кэша, будет сохранять еще и дополнительно, во-первых это еще нагрузка на сайт, во вторых пользователь не увидит изменений на сайте, пока не очистит свой кэш локально на компьютере. Я бы вам не рекомендовал включать эту функцию.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Для проверки Gzip-сжатия можно использовать различные бесплатные онлайн инструменты, например http://checkgzipcompression.com . Если все нормально, сервис покажет вам результаты сжатия, как в примере ниже:



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

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

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

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

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

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

########## Begin - ETag Optimization ## This rule will create an ETag for files based only on the modification ## timestamp and their size. ## Note: It may cause problems on your server and you may need to remove it FileETag MTime Size # AddOutputFilterByType is now deprecated by Apache. Use mod_filter in the future. AddOutputFilterByType DEFLATE text/plain text/html text/xml text/css application/xml application/xhtml+xml application/rss+xml application/javascript application/x-javascript # Enable expiration control ExpiresActive On # Default expiration: 1 hour after request ExpiresDefault "now plus 1 hour" # CSS and JS expiration: 1 week after request ExpiresByType text/css "now plus 1 week" ExpiresByType application/javascript "now plus 1 week" ExpiresByType application/x-javascript "now plus 1 week" # Image files expiration: 1 month after request ExpiresByType image/bmp "now plus 1 month" ExpiresByType image/gif "now plus 1 month" ExpiresByType image/jpeg "now plus 1 month" ExpiresByType image/jp2 "now plus 1 month" ExpiresByType image/pipeg "now plus 1 month" ExpiresByType image/png "now plus 1 month" ExpiresByType image/svg+xml "now plus 1 month" ExpiresByType image/tiff "now plus 1 month" ExpiresByType image/vnd.microsoft.icon "now plus 1 month" ExpiresByType image/x-icon "now plus 1 month" ExpiresByType image/ico "now plus 1 month" ExpiresByType image/icon "now plus 1 month" ExpiresByType text/ico "now plus 1 month" ExpiresByType application/ico "now plus 1 month" ExpiresByType image/vnd.wap.wbmp "now plus 1 month" ExpiresByType application/vnd.wap.wbxml "now plus 1 month" ExpiresByType application/smil "now plus 1 month" # Audio files expiration: 1 month after request ExpiresByType audio/basic "now plus 1 month" ExpiresByType audio/mid "now plus 1 month" ExpiresByType audio/midi "now plus 1 month" ExpiresByType audio/mpeg "now plus 1 month" ExpiresByType audio/x-aiff "now plus 1 month" ExpiresByType audio/x-mpegurl "now plus 1 month" ExpiresByType audio/x-pn-realaudio "now plus 1 month" ExpiresByType audio/x-wav "now plus 1 month" # Movie files expiration: 1 month after request ExpiresByType application/x-shockwave-flash "now plus 1 month" ExpiresByType x-world/x-vrml "now plus 1 month" ExpiresByType video/x-msvideo "now plus 1 month" ExpiresByType video/mpeg "now plus 1 month" ExpiresByType video/mp4 "now plus 1 month" ExpiresByType video/quicktime "now plus 1 month" ExpiresByType video/x-la-asf "now plus 1 month" ExpiresByType video/x-ms-asf "now plus 1 month"

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

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

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

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

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

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

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

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

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

.

Вконтакте

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  5. Путь к каталогу кэша

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

  6. Время кэширования

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

  7. Специфическое кэширование для платформы

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

  8. Системный кэш

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

  9. по окончанию настройки жмем Сохранить или Сохранить и закрыть

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

Эта функция активируется посредством системного плагина , при этом в Общих настройках сайта (вкладка Система , раздел Настройки кэша ) должно быть указано Время кэширования .

  1. Расширения Плагины
  2. плагин Система - Кэш
  3. состояние Включено

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

Очистка серверного кэша в Joomla 3

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

  1. Система Очистить весь кэш

    Для удаления всех временных файлов

  2. Система Очистить устаревший кэш

    Для удаления просроченных файлов кэша.