- Подробности
- Опубликовано 19.12.2013 12:08
- Автор: Crazy
- Просмотров: 19309
Здравствуйте вновь! С Вами снова 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%. Чем выше скорость Вашего сайт, тем больше Вас любят поисковики!
Комментарии