20 причин медленной работы вашего сайта
Ваш сайт может быть великолепным, однако его внешний вид и функциональность не будут иметь никакого значения, если он долго загружается. Современные пользователи все более нетерпеливы, и уровень нетерпеливости, скорее всего, будет расти вместе с увеличением доли мобильных устройств в роли «проводников» в интернет.
К сожалению, список причин, которые могут вынудить пользователя покинуть сайт, достаточно велик, и любая из них может превратить нового клиента в упущенную возможность. С технической точки зрения, многие причины отказов можно устранить. Если знать, что устранять, конечно. В этом материале – 20 основных факторов, которые замедляют загрузку вашего интернет-магазина.
Кнопки социальных сетей
Ваше желание получать Like от пользователей Facebook вполне понятно, однако кнопки соцсетей, которые обращаются к внешним Java-скриптам, могут значительно понизить скорость загрузки страниц, особенно если вы не используете асинхронный режим при их загрузке. Они также могут сделать целый сайт бесполезным для посетителя (и для владельца), что отдельные вебмастеры некоторое время назад ощутили на собственном опыте.
Код рекламных сетей
Реклама может быть важной статьей ваших доходов, однако код рекламных сетей, большинство из которых работает на основе JavaScript, может замедлить загрузку страниц. Некоторые сети реализовали асинхронные методы загрузки, которые не позволяют Java-скриптам блокировать ресурс, однако многие владельцы сайтов до сих пор не используют их.
Теги аналитики
Аналитика чрезвычайно важна, но также, как и с кнопками соцсетей и кодом рекламных сервисов, теги аналитики на основе JavaScript могут отрицательно влиять на временя загрузки страницы. Хорошая новость: многие аналитические сервисы предлагают асинхронный метод загрузки кода. Плохая новость: часто владельцы сайтов пользуются услугами сразу нескольких провайдеров аналитики, что является избыточным и неэффективным.
Кнопки социальных сетей
Ваше желание получать Like от пользователей Facebook вполне понятно, однако кнопки соцсетей, которые обращаются к внешним Java-скриптам, могут значительно понизить скорость загрузки страниц, особенно если вы не используете асинхронный режим при их загрузке. Они также могут сделать целый сайт бесполезным для посетителя (и для владельца), что отдельные вебмастеры некоторое время назад ощутили на собственном опыте.Код рекламных сетей
Реклама может быть важной статьей ваших доходов, однако код рекламных сетей, большинство из которых работает на основе JavaScript, может замедлить загрузку страниц. Некоторые сети реализовали асинхронные методы загрузки, которые не позволяют Java-скриптам блокировать ресурс, однако многие владельцы сайтов до сих пор не используют их.Теги аналитики
Аналитика чрезвычайно важна, но также, как и с кнопками соцсетей и кодом рекламных сервисов, теги аналитики на основе JavaScript могут отрицательно влиять на временя загрузки страницы. Хорошая новость: многие аналитические сервисы предлагают асинхронный метод загрузки кода. Плохая новость: часто владельцы сайтов пользуются услугами сразу нескольких провайдеров аналитики, что является избыточным и неэффективным.Функционал на основе JavaScript
Иногда JavaScript является необходимым злом, особенно когда дело касается рекламы и аналитики. Но на многих сайтах JavaScript применяется для обеспечения работоспособности функционала, который может быть реализован на стороне сервера. Один из ярких примеров: многие сайты используют Disqus и Facebook для сбора комментариев, что является, пожалуй, наименее эффективным способом реализации такого функционала.Неоптимизированные изображения
Высокоскоростной доступ в интернет в настоящее время доступен практически всем, однако это не означает, что вы не должны оптимизировать изображения. На страницах с большим количеством изображений уменьшение размера файлов даже на 5–10% может оказать значительное влияние на скорость загрузки.
Достаточно трудно достичь корректного отображения сайта во всех основных браузерах (кроссбраузерность); еще сложнее сохранить при этом эффективную HTML-разметку страницы. Раздутый HTML-код не только увеличивает объем данных, который передается вашим пользователям, но также может оказать существенное влияние на производительность JavaScript при манипуляциях с элементами DOM.
CSS (бесполезные таблицы стилей)
Оптимизация HTML-кода так же важна, как и оптимизация стилей CSS. К сожалению, бесполезные стили CSS легко найти на многих сайтах. Существует много способов замедлить загрузку ваших страниц, начиная от применения ресурсоемких селекторов потомков (Descendant selectors) и заканчивая передовыми CSS3-селекторами, которые полезны ровно настолько, насколько и вредны.
Любительские jQuery
JQuery не зря считается самой популярной библиотекой JavaScript: она значительно облегчает построение сложных функций JavaScript. Но не все кто работает с jQuery используют ее эффективно. Существует много областей jQuery, начиная от обработчиков событий и заканчивая манипуляциями с элементами DOM, где действия неопытного разработчика могут вызвать настоящий хаос.
Бесплатные DNS-сервера
Многие хостинг-компании и регистраторы доменных имен предлагают бесплатные DNS. Вам может показаться, что в использовании такой услуги нет ничего страшного, однако это не так: в некоторых обращения к DNS могут значительно увеличить время загрузки страниц.
Слишком большое количество доменных имен
Размещение компонентов страницы на нескольких доменах позволяет им загружаться независимо друг от друга, что, в целом, хорошо. Однако при использовании слишком большого количества доменов имейте в виду время, необходимое на обработку DNS-запросов, которое оказывает негативное влияние на время загрузки страниц.
Некорректные заголовки страниц
Если вы не установили корректные Expires или Cache-Control хедеры, пользовательским браузерам будет труднее локально кешировать контент. Результат – больше запросов к компонентам страницы, чем необходимо.
Отсутствие Gzip-сжатия
Если на вашем сервере не настроено Gzip-сжатие HTML, CSS и JavaScript, то, скорее всего, сервер передает значительно большее количество данных, чем требуется.
Неоптимизированный код на стороне сервера
Итак, ваш сайта на 100% оптимален: красивый дизайн и удобный, полезный функционал. Однако неоптимизированное программное обеспечение на стороне сервера, очень долго генерирующее страницы вашего сайта, может свести все ваши усилия на нет.
SQL запросы из ада
Если ваш сайт не работает со скоростью молнии, вполне вероятно, что проблема вызвана SQL-запросами. Существует много способов неправильного написания SQL запросов: от бесполезных операций объединения (join) до операций выбора большого количества строк без единого индекса.
Устаревшее серверное программное обеспечение
PHP, Java и другое популярное серверное ПО постоянно обновляется и улучшается. Если ПО вашего сервера устарело, то вы, скорее всего, упускаете возможность увеличения производительности, которое может быть достигнуто простым обновлением.
Неправильный веб-сервер
Такие веб-серверы как Apache и IIS вполне подходят для хостирования сайта. Но когда речь идет о масштабировании и скорости, многие крупнейшие интернет-ресурсы переходят на Nginx и lighttpd. Это скоростные монстры, которые обычные хостеры и системные администраторы вряд ли станут использовать по умолчанию.
Flash и Java
Хотя количество сайтов, требующих для своей работы установки сторонних плагинов к браузеру, значительно сократилось за последние несколько лет, Flash и Java все еще живы и это нужно иметь в виду.
Использование виртуального хостинга
Благодаря тому, что стоимость оборудования постоянно сокращается, покупка или аренда мощных серверов более не ставит владельца интернет-магазина на грань разорения. Но несмотря на это, многие компании продолжают размещать свои сайты на виртуальных хостингах, где соседствующие медленные сайты препятствуют нормальной работе всего сервера. Важно: облачный хостинг не является идеальным крещением, так как там есть проблемы вводом-выводом данных.
Публичные сети для передачи внутренних данных
Одним из первых шагов к расширению является отделение сервера баз данных от веб-сервера. Однако многие владельцы сайтов отказываются от создания частной сети для организации связи между этими серверами, создавая тем самым узкое место во всей системе и снижая производительность сайта.
Неэффективное кэширование на стороне сервера
Раздутый HTML-код
Достаточно трудно достичь корректного отображения сайта во всех основных браузерах (кроссбраузерность); еще сложнее сохранить при этом эффективную HTML-разметку страницы. Раздутый HTML-код не только увеличивает объем данных, который передается вашим пользователям, но также может оказать существенное влияние на производительность JavaScript при манипуляциях с элементами DOM.CSS (бесполезные таблицы стилей)
Оптимизация HTML-кода так же важна, как и оптимизация стилей CSS. К сожалению, бесполезные стили CSS легко найти на многих сайтах. Существует много способов замедлить загрузку ваших страниц, начиная от применения ресурсоемких селекторов потомков (Descendant selectors) и заканчивая передовыми CSS3-селекторами, которые полезны ровно настолько, насколько и вредны.Любительские jQuery
JQuery не зря считается самой популярной библиотекой JavaScript: она значительно облегчает построение сложных функций JavaScript. Но не все кто работает с jQuery используют ее эффективно. Существует много областей jQuery, начиная от обработчиков событий и заканчивая манипуляциями с элементами DOM, где действия неопытного разработчика могут вызвать настоящий хаос.Бесплатные DNS-сервера
Многие хостинг-компании и регистраторы доменных имен предлагают бесплатные DNS. Вам может показаться, что в использовании такой услуги нет ничего страшного, однако это не так: в некоторых обращения к DNS могут значительно увеличить время загрузки страниц.Слишком большое количество доменных имен
Размещение компонентов страницы на нескольких доменах позволяет им загружаться независимо друг от друга, что, в целом, хорошо. Однако при использовании слишком большого количества доменов имейте в виду время, необходимое на обработку DNS-запросов, которое оказывает негативное влияние на время загрузки страниц.Некорректные заголовки страниц
Если вы не установили корректные Expires или Cache-Control хедеры, пользовательским браузерам будет труднее локально кешировать контент. Результат – больше запросов к компонентам страницы, чем необходимо.Отсутствие Gzip-сжатия
Если на вашем сервере не настроено Gzip-сжатие HTML, CSS и JavaScript, то, скорее всего, сервер передает значительно большее количество данных, чем требуется.Неоптимизированный код на стороне сервера
Итак, ваш сайта на 100% оптимален: красивый дизайн и удобный, полезный функционал. Однако неоптимизированное программное обеспечение на стороне сервера, очень долго генерирующее страницы вашего сайта, может свести все ваши усилия на нет.SQL запросы из ада
Если ваш сайт не работает со скоростью молнии, вполне вероятно, что проблема вызвана SQL-запросами. Существует много способов неправильного написания SQL запросов: от бесполезных операций объединения (join) до операций выбора большого количества строк без единого индекса.Устаревшее серверное программное обеспечение
PHP, Java и другое популярное серверное ПО постоянно обновляется и улучшается. Если ПО вашего сервера устарело, то вы, скорее всего, упускаете возможность увеличения производительности, которое может быть достигнуто простым обновлением.Неправильный веб-сервер
Такие веб-серверы как Apache и IIS вполне подходят для хостирования сайта. Но когда речь идет о масштабировании и скорости, многие крупнейшие интернет-ресурсы переходят на Nginx и lighttpd. Это скоростные монстры, которые обычные хостеры и системные администраторы вряд ли станут использовать по умолчанию.Flash и Java
Хотя количество сайтов, требующих для своей работы установки сторонних плагинов к браузеру, значительно сократилось за последние несколько лет, Flash и Java все еще живы и это нужно иметь в виду.Использование виртуального хостинга
Благодаря тому, что стоимость оборудования постоянно сокращается, покупка или аренда мощных серверов более не ставит владельца интернет-магазина на грань разорения. Но несмотря на это, многие компании продолжают размещать свои сайты на виртуальных хостингах, где соседствующие медленные сайты препятствуют нормальной работе всего сервера. Важно: облачный хостинг не является идеальным крещением, так как там есть проблемы вводом-выводом данных.Публичные сети для передачи внутренних данных
Одним из первых шагов к расширению является отделение сервера баз данных от веб-сервера. Однако многие владельцы сайтов отказываются от создания частной сети для организации связи между этими серверами, создавая тем самым узкое место во всей системе и снижая производительность сайта.Неэффективное кэширование на стороне сервера
Благодаря таким разработкам, как Memcached и Redis, многие переходят на серверное кеширование, один из наиболее эффективных способов повышения производительности веб-приложений. Однако кеширующие механизмы работают не одинаково, и если алгоритмы обновления кеша плохо продуманы, то такое кеширование может быть и вовсе бесполезным.
Источник: http://www.shopolog.ru
Источник: http://www.shopolog.ru