Подробности

Как ускорить сайт на Joomla 2.5, советы по оптимизации

Здравствуйте вновь! С Вами снова Crazy. Сегодня речь пойдет о скорости загрузки сайта на Joomla. Всем известно, что сайт нужно строить аккуратно, не захламлять его лишними компонентами и его кусками. Но при этом нужно позаботиться и о других аспектах, которые влияют на скорость загрузки страницы. Если Вы не знаете, пользователю не очень-то нравится, когда страничка сайта грузится по 10 секунд :)

На скорость загрузки страницы влияет множество факторов. Самые очевидные:

  • Размер изображений.
  • Кэширование.
  • Gzip-сжатие.
  • Скорость сервера.
  • Количество файлов.
  • Количество css и js файлов.
  • Прочее.

Размер изображений

Думаю, продвинутым пользователям и так ясно, о чем речь. Для новичков же поясню все максимально подробно. Что дольше будет качаться: картинка или же любимый сериал? Просто вопрос, ответ на который очевиден - картинка. Здесь принцип действия такой же. Чем больше изображение по размерам (например, 1024*768 пикселей), тем больше она "весит", занимает место на диске.

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

Выход прост - нужно уменьшать изображения до необходимых размеров с помощью фоторедакторов, например, гимп или фотошоп. Но уменьшить картинку мало, нужно еще и сохранить ее для web. При выборе этого режима картинка сжимается и совсем немного теряет в качестве. Например, была картинка 1024*768 пикселей, стала 650*430. Размер ее, соответственно, тоже уменьшился в 1,5 раза.

Для примера скачайте любую картинку с моего сайта и посмотрите ее размер. Все изображения весят 10-16 Кб :)

Кэширование

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

Gzip-сжатие

С помощью этого инструмента можно сжимать файлы, не теряя качество. Речь идет в основном все о тех же картинках. Мало сохранить изображения в редакторе, нужно включить еще и сжатие на стороне сервера.

И кэширование, и сжатие включается на серверной стороне и в административной панели джумлы.

Скорость сервера

Здесь все просто - не надо скупиться на сервера. Не жалейте денег для хостинга для Ваших сайтов. Сайт может быть идеально настроен на Вашей стороне, но из-за плохой настройки серверной части, показатели не будут подниматься выше 65%.

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

Адекватная стоимость хостинга в наше время - 5$ в месяц. Дешевле - подозрительно, дороже - лучше возьмите VPS.

Количество файлов

Чем больше приходится загружать браузеру, тем дольше страница грузится. Речь идет и об элементах видимых, и о "невидимых" - css, js. Не стоит перегружать страницу всякими плюшками, типа анимаций, крутых слайдеров с крутыми эффектами, кучей ненужных плюшек.

Чем больше всех этих ненужных наворотов, тем дольше будет грузиться страница.

Как проверить скорость сайта?

Скорость загрузки сайта можно проверить сервисом от гугла - https://developers.google.com/speed/pagespeed/insights/

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

Кроме того, покажет по пунктам - что выполнено, что не выполнено, что нужно слегка подкорректировать.

Оптимизируем Joomla 2.5

Первый хак

Добавляем этот код в index.php до тега <head>

<?php
$document = JFactory::getDocument();
unset($this->_scripts[$this->baseurl.'/media/system/js/mootools-core.js'], 
	$this->_scripts[$this->baseurl.'/media/system/js/mootools-more.js'],
	$this->_scripts[$this->baseurl.'/media/system/js/core.js'],
	$this->_scripts[$this->baseurl.'/media/system/js/caption.js']);
$document->addScript('https://ajax.googleapis.com/ajax/libs/mootools/1.4.2/mootools-yui-compressed.js');
?>

Осторожно!Осторожно! У меня после этого перестал работать лайтбокс!

Второй хак

Добавляем туда же, рядом с предыдущим кодом.

<?php
defined('_JEXEC') or die;
$document = JFactory::getDocument();
$document->addScript('https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js'); ?>

Включаем ЧПУ

Да, элементарно, включите ЧПУ в Вашей джумле.

ЧПУ - человеко-понятные урлы. По умолчанию джумла использует неправильные урлы, они имеют вид:

site.ru/index.php?option=com_content&view=category&layout=blog&id=11

 ЧПУ же сделает Ваши ссылки таким, как на моем сайте. Это очень разгрузит сервер и ускорит работу Вашего сайта.

Чтобы включить ЧПУ, Вам нужно пройти по пути Сайт - Общие настройки. В правом блоке проставить галочки в пунктах "Включить SEF (ЧПУ)" и "Перенаправление URL". Вторая галочка уберет index.php из ссылок.

После этого Вам нужно зайти по FTP на свой сервер, найти файл htaccess.txt и переименовать его в .htaccess.

Осторожно!Именно так! С точкой в начале и без расширения!

Третий хак

Добавьте в файл .htaccess строки:

<IfModule mod_expires.c>
  ExpiresActive On
  ExpiresByType application/javascript "access plus 4 weeks"
  ExpiresByType text/javascript "access plus 4 weeks"
  ExpiresByType text/css "access plus 4 weeks"
  ExpiresByType image/gif "access plus 4 weeks"
  ExpiresByType image/jpeg "access plus 4 weeks"
  ExpiresByType image/png "access plus 4 weeks"
</IfModule>

 Обратите внимание, что файл называется .htaccess. Вы должны были переименовать так файл в предыдущем пункте.

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

Четвертый хак

Включаем gzip-сжатие через файл htaccess. Для этого добавьте в него строки:

<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/javascript text/css application/x-javascript
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4.0[678] no-gzip
BrowserMatch bMSIE !no-gzip !gzip-only-text/html
<ifmodule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_item_include file \.js$
mod_gzip_item_include file \.css$ </ifmodule>
</IfModule>

Пятый хак

Зайдите по FTP на Ваш хостинг, в корне сайта найдите файл robots.txt. Этот файл отвечает за индексацию  Вашего сайта - как часто это делать, какие папки открыты для поисковиков, а какие - нет.

Добавьте в него следующие строки:

Disallow: /index2.php?
Disallow: /component/option,com_search/
Disallow: /component/option,com_newsfeeds/
Disallow: /component/option,com_wrapper/
Crawl-delay: 5

Так Вы укажете поисковым машинам, чтобы они не индексировали страницы, у которых в адресе есть  index2.php, страницы, софрмированные поиском и другими компонентами. Crawl-delay: 5 – это задержка в 5 секунд.

Осторожно!Обратите внимание, что файл robots.txt, в отличии от htaccess, не может содержать пустых строк!

 Оптимизируем базу данных

Да-да, элементарно оптимизируем и чистим базу данных! Захожим в phpMyAdmin. Внимательно смотрим на имеющиеся таблицы в нашей базе данных. Дело в том, что некоторые компоненты и модули не полностью удаляются с нашего сайта, оставляют, так сказать, следы. Посмотрите хорошо и удалите старые и ненужные записи в БД.

Оптимизируйте все таблицы в базе стандартными средствами phpMyAdmin.

Прочие мелочи

Уменьшите все изображения, если Вы не сделали этого раньше. Включите кэш, сжатие в админке джумлы. Кроме того, посмотрите настройки шаблона, многие предоставляют выбор и там. Будьте внимательны. Часто разработчики шаблонов предлагают отключить js, объединить css-файлы в спрайты. В таком случае Вы можете не узнать свой сайт.

Удалите лишнее с Вашего сервера и из джумлы в принципе. Все ненужные шаблоны, плагины, компоненты - все к чертям!

 

После всего этого проверьте свой сайт еще раз средствами гугла :) Наш любимый AmerSoft после смены хостинга и проделывания манипуляций стал выдавать 85% вместо бывших 59%. Чем выше скорость Вашего сайт, тем больше Вас любят поисковики!