Помогите! Мой сайт тормозит!
Скорость доступа в интернет с каждым годом становится все больше и больше, при это стоимость снижается. Пользователи привыкают получать интересующий контент быстро и в нужном виде - на мобильном, планшете или компьютере.
К хорошему быстро привыкаешь, поэтому когда приходится сталкиваться с медленным интернетом или сайтом возникает когнитивный диссонанс (несоответствие ожиданий и действительности). Хочеться закрыть приложение, сайт и никогда к нему не возвращаться. Даже если дело не в скорости работы сайта, а в скорости интернета, рядовой пользователь все равно будет винить сайт, его владельцев и разработчиков.
Наша задача сделать так, чтобы такого не происходило, чтобы ваш сайт открывался быстро и красиво на любом устройстве, даже на 2G мобильном интернете.
Прежде, чем что-то делать нужно определить, а на самом ли деле сайт работает медленно или это ваше субъективное мнение. Для оценки есть несколько сервисов:
-
PageSpeed Insights - удобный сервис от Google, указываем страницу сайта для проверки, видим скорость и коэффициент оптимизации страницы и предложения по улучшению показателя. Непонятно что и как проверяет, для какого места тестируется скорость, работает как “черный ящик”. Для ваших пользователей результаты могут быть другими. Дает общее понимание вектора оптимизации.
-
Pingdom - удобен тем, что можно выбрать место для которого измеряется скорость сайта, но выбор не такой большой.
-
Скорость сайта 1С:Битрикс - на наш взгляд самый корректный виджет так как замеряет скорость доступа именно вашей целевой аудитории на сайт.
После измерение этими инструментами можно отнести сайт к категории скорости:
-
Супер быстро - менее 1 сек
-
Быстро - от 1 до 1,5 сек
-
Средне - от 1,5 - 2 сек
-
Медленно - более 2 сек
Нужно понимать, что чем медленнее сайт, тем меньше конверсия просмотров в покупки. Менее 2 секунд пользователь ждать готов, но при превышении этого значения конверсии в покупки могут уменьшаться в разы.
Конечно, нет предела совершенству и вы, наверняка, хотите, чтобы ваш сайт был супер быстрым. Но нужно понимать, что для обеспечения супер быстроты придется расплачиваться оптимизацией контент, программного кода(придется отказаться от новых идей и бизнес-требования, т.к. их реализация может замедлить сайт даже при идеальном программном решении) и серверными мощностями, а это вложения и их стоить делать только тогда, когда вы на 100% уверены в том, что эти инвестиции окупятся в виде увеличение количества заказов. В противном случае это будет оптимизация ради оптимизации.
Если вы все-таки решили сделать свой сайт быстрее, давайте рассмотрим основные причины медленной работы сайта.
-
Слишком много свойство товаров и предложений.
На сайт нужно выгружать только те свойства товаров, которые планируется использовать фильтре или в карточке товара, все остальное будет лишних грузом, занимать место и тормозить сайт. Поэтому очень внимательно нужно относится к выгружаемым данным.
Если большого количества свойств не избежать, то нужно правильно настроить хранение этих свойств на сайте, не рекомендуется делать более 100 свойств.
-
Много неиспользуемых предложений и товаров.
По мере работы сайты появляются неактивные товары и предложения. Данные товары ушли из ассортимента и купить их на текущий момент нельзя, но такие товары занимают место в базе данных сайта и медленно, но верно ведут к замедлению процесса обмена с 1с и работе сайта. Особенно это заметно на проектах, которые используют поштрихкодную выгрузка из 1С или загрузку товаров ЮК “Эстета”. Все эти данные нужно время от времени удалять, это как тех.осмотр и замена масла для сайта - делать нужно не каждый день, но раз в полгода - точно.
В своих проектах для этой задачи мы используем скрипт, который периодически, без критичной нагрузки на сайт удаляет все неактивные предложения, на которые не оформлялось заказов.
-
Бизнес требования к функционалу.
В проектах существуют такие бизнес-требования, которые можно выполнить только с потерей скорости работы сайта и каталога. Например, одни каталог для оптовых и розничных пользователей, причем розничным, незарегистрированным пользователям показываем не все товары и для каждого пользователя свой внешний вид карточки товаров. Для решения это задачи, перед отображениям каталога для розничных пользователей накладываем принудительную программную фильтрацию, на нее уходит время и как следствие мы теряем скорость загрузки страницы.
Поэтому очень важны на этапе обсуждения бизнес-требований понять, будет влиять функционал на скорость сайта или нет и если будет то, насколько для заказчика это критично.
-
Скрипты аналитики, онлайн-чатов, обратных звонков загружающиеся не в асинхронном режиме.
Аналитика и удобство связи для клиентов это очень важно, но не тогда, когда это существенно влияет на скорость загрузки сайта, т.к. Из-за медленной скорости клиент скорее уйдет с сайт, чем дождется загрузки формы связи.
Очень важно не злоупотрблять с внешними сервисами покдлючаемыми к сайту, а при подключении быть уверенными, что они либо загружаются в асинхронном режиме, либо никак не повлияют на скорость и пользовательский опыт клиента.
-
Регламентное обслуживание сайта.
Сайт как любая техническая система нуждается в профилактических работах, мониторинге, без которых даже самая идеальная система со временем накопит ошибки и придет в негодность.
В своих проектах мы настраиваем регламентные удаления “брошенных корзин”(пользователь положил товаров в корзину и больше 2 месяцев к ней не обращался), неактивных товаров и предложений.
Для мониторинга используем свой сервис по отслеживанию состояние серверов клиентов и при ситуации, когда сервере не отвечает отправляется уведомления в Telegram системному администратору, ведущему разработчику и менеджеру проектов, что позволяет в течении минут после падения сервера предпринять все необходимые меры для исправлению проблемы.
Самый главный враг скорости сайта это неоптимизированный контент, эта самая первая строка при проверке большинства сайтов PageSpeed Insights, если решить эту проблемы, то прирост скорости будет существенным.
-
Слишком большие изображения.
Все данные сайт передаются с веб-сервера на компьютер клиента и чем больше этот объем данных, тем медленнее будет происходить передача и как следствие клиент воспринимает это как медленную работу сайта.
Чтобы этого избежать нужно выполнить два простых действия:
-
Подготавливать размер изображений для сайта под заранее определенные разработчиками разрешения - если фото для баннера должно быть разрешением 1000*500px, то нет смысла загружать фото 2000*1000px, сайт все равно масштабирует разрешение фото под размер 1000*500 px. Лучше от этого не будет точно, а хуже - да, размер фото стал больше и при масштабирование читаемость текста и качества изображений может стать хуже.
Поэтому не ленитесь и сделайте нужное разрешение при загрузки фото на сайт.
-
Сжимать изображение без потерь.
В файле изображения много так называемой мета-информации - когда, на какой фотоаппарат, с какими настройками сделано фото и т.д. Вся эта информация в файле занимает место, а следовательно и размер файл становится больше и его загрузка клиенту занимает больше времени. Мета-информация на сайте совершенно не нужны, поэтому от нее нужно избавится, для этого существует множество сервисов, например онлайн - Optimizilla, программы для Windows - Riot и еще много аналогичных. Выигрыш в размере получается минимум в 2 раза.
В идеале изображений нужно сжать перед выгрузкой, чтобы уменьшить и сам файл выгрузки на сайт, что ускорить обмен данными с 1С, для изображений товаров это нужно сделать 1 раз, а далее при добавлении фотографий в каталог обязательно сжимать их перед помещением в каталог фото. Но иногда клиент использует эти же изображения для внутренних нужд компании, для которых нужно и более высокое разрешение фото и мета-информация, в таком случаем мы устанавливаем скрипт сжатия изображений прямо на сервере и после очередной выгрузки из 1С он сжимает все изображений без потерь.
-
-
Видео на сайте.
Если вы хотите использовать видеоматериалы на сайте, то для их публикации используйте Youtube, а на сайте уже вставляйте ссылку.
-
Сервер далеко от целевого пользователя.
Сервер с сайтом находится в Москве, а ваши клиенты во Владивостоке, для того чтобы передать данные с сайта клиенту, понадобится больше времени, как если бы сервер был во Владивостоке.
Поэтому, прежде чем выбирать хостинг для сайта, узнайте у менеджера, есть ли сервера максимально близко расположенные к вашим целевым пользователям.
-
Неправильно выбранный хостинг.
Есть несколько видов хостинга:
-
Виртуальный хостинг(Shared) - самый простой вариант, нет доступов для самостоятельной настройки, ресурсы не гарантированы. Для 1С:Битрикс стоимость от 500 - 800 руб/месяц. На нашей практике, если планируется выгрузка из 1с, даже небольшого количества товаров - этот вариант не подходит.
-
VPS/VDS - золотая середина, умеренная цена, а при правильно выборе может быть ниже, чем виртуальный хостинг для 1С:Битрикс, при этом гарантированные мощности и полный доступ к настройке для администратора.
-
Выделенный сервер - самый мощный и дорогой вариант, от 4 000 руб/месяц и выше.
-
-
Правильная конфигурация сервера.
Купить мощный сервер только половина дела, чтобы он заработал так, чтобы использовать весь свой потенциал, нужно его правильно настроить. Настроить веб-сервер, лимиты по памяти на базы данных, лимиты на операционную систему.
Если ваш сервер был настроен под 2 Гб и вы увеличили объем памяти до 4 Гб, то без перенастройки вы получите прирост быстродействия максимум 10% от возможного, т.к. все системы сайт до сих пор будут настроены на лимиты от 2 Гб.
В итоге, скорость сайт можно увеличить следуя 3 пунктам. После каждого пункта рекомендуем замерять скорость и решить нужно ли двигаться дальше, т.к. каждый следующий пункт потребует больших временных и финансовых затрат:
Самое простое - оптимизировать контент сайта, дает прирост скорости от 10-20%
Выбрать подходящий сервер и настроить его - прирост скорости от 20-40%
Проанализировать программные и архитектурные решения, исправить при необходимости - прирост скорости от 50% и выше, верхняя планка зависит от первоначальной кривизны решения.