Скорость загрузки сайта

Скорость загрузки сайта

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

Все мы не любим ждать, не любим очереди, пробки, опоздания. Мы можем не дождаться своей очереди, а пойти туда, где нас быстро обслужат, даже готовы за это переплатить. Долго загружающийся сайт раздражает посетителя. На пути от Web сервера до компьютера клиента стоит множество преград.

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

Факторы, влияющие на производительность сайта и методы их оптимизации:

  • Хостинг - Должен быть быстрым, надежным, с круглосуточной поддержкой. Как раз такой, какой предлагаем мы :) Выбирайте хостинг по геолокационному признаку: если сайт для москвичей, то и хостинг желательно на Московских серверах, если на американцев, то в Америке, а если это интернацинальный ресурс, то он должен быть организован хитрым, распределенным способом. 
  • Грамотное проектирование сайта  - Один из важнейших факторов скорости загрузки, мало смысла оптимизировать некачественный код. Поэтому все работы по ускорению сайтов начинаются с оптимизации HTML, CSS и JS кода. Более сложным этапом на этом шаге является оптимизация серверного кода. Проводится, так называемый, рефакторинг когда, который иногда в разы ускоряет скорость генерации страницы.
  • Оптимизация базы данных - Скорость поиска информации очень важна и занимает немало времени, если база не оптимизирована.
  • Мощность ресурсов сервера  - Если проводить аналогию с настоящей очередью, то можно сравнить это с обслуживающим персоналом. Его может быть мало, он может вялым и сонным, а может много активных и приветливых сотрудников.
  • Количество запрашиваемых элементов - Когда мы запрашиваем страницу в интернете, то одновременно с ней, зачастую, получаем кучу дополнительных файлов: изображения, стилей, скриптов. В реальной жизни сопоставим это с количеством посылок, это может быть 10 маленьких, за которыми сложно бегать или же одна большая коробка, которую быстрее принести. Для уменьшения запрашиваемых элементов и их объема применяется множество технологий: картинки склеиваются в одну, стили CSS и JS скрипты интегрируются в код основной страницы, а не подключаются отдельно.
  • Общий вес файлов страницы (Если товар плохо упакован и в нем много лишнего, то он и объемнее и тяжелее, перед передачей страницы пользователю надо очистить ее от излишнего мусора, хотя бы лишних пробелов, тем самым облегчив нагрузку на сеть и сервер) Поэтому важно удалять лишние символы и комментарии в публичной версии сайта, грамотно оптимизировать изображения и правильно верстать страницы.
  • Кэширование страниц (если всем пользователям страница отдается всегда в неизменном виде, или ее содержимое меняется крайне редко, то мы создаем копию страницы, которая отдается, не затрагивая значительных ресурсов сервера) В реальной жизни можно сопоставить кэширование с наличием готовых бланков. Операторы выдают бланки, а не с нуля пишут формы :)
  • Применение технологии AJAX - Чтобы передавать не всю страницу, а только изменяющуюся ее часть при запросе, нет смысла таскать по сети лишние данные: картинки, скрипты, шапку и низ страницы. Нужно передать только изменившуюся часть. Тут на помощь нам приходит AJAX. Его применение на сайте решает две задачи: страница не обновляется каждый раз при переходе на раздел и увеличивается скорость ее загрузки. (В жизни сопоставимо как письмо с телеграммой :))
  • Eaccelerator, XCache, Alternative PHP Cache (APC) - модули сервера, позволяющие кэшировать код PHP в компилированном состоянии 
  • Memcached - серверное программное обеспечение, реализующее кэширования данных в области оперативной памяти на основе парадигмы хеш-таблицы. Если проводить аналогию с реальным миром, о это можно сравнить с существованием строй материалов, например досок. Нам не надо делать их из дерева самим :) Только в случае Memcached это гораздо серьезнее :) Надо отметить, что использование memcached кладется на плечи разработчиков сайтов и повышает бюджет создания сайта. Но результаты его применения позволяют создавать ресурсы с многомиллионной нагрузкой.
  • Замена интерпретируемого кода исполняемым бинарным - переписывания частей сайта на исполняемые модули, в зависимости от нагрузок. Очень дорогостоящая операция, если делать ее вручную, к ней прибегают такие гиганты, как Facebook, vk и прочие высоко нагруженные сервисы. Но Facebook выпустил недавно научное чудо HipHop (транслятор). Он программно превращает исходный код, написанный на языке PHP, в высоко оптимизированный код на C++ и сайт уподобляется космическому кораблю =)

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

Одним из важнейших плюсов быстро-загружаемых сайтов является его приоритет в ранжировании поисковыми системами.

Заботясь о весе и объеме передаваемых данных, мы не только ускоряем скорость загрузки сайта, но и очищаем весь Интернет от мусора, передаваемого по нему :)

 

 

← Назад