Часто, очень часто заказчик получает медленный сайт, так как мало кто задумывается об этом в процессе составления ТЗ, если таковое вообще было.
Часто, даже если такая необходимость обсуждалась, она переносится "на потом", чаще всего из-за недостатка финансирования на начальном этапе.
В процессе поиска клиентов, мы постоянно слышим одни и те-же отговорки:
1. Скорость загрузки зависит от Тарифа на хостинге (Мощность сервера)
Топовая отмазка, которая раскрывает неопытного специалиста.
Мы говорим, не о скорости сервера, а о скорости загрузки сайта.
Любой сайт - это в первую очередь вёрстка - т.е. фронтэнд (или то "как он сделан"). Все, что "визуализируется" в браузере пользователя. Скрипты, стили, логика загрузки контента и изображений - всё это влияет на скорость "сборки" сайта по скелету языка, на котором он написан.
Уже во-вторую бэкэнд, т.е. структура сервера - его аппаратная и программная часть. Причем программная часть - это не просто операционная система, но и база данных и выбранная файловая система.
То, о чем говорит Ваш разработчик - это только одна сторона медали, причем он упоминает только одну её часть - мощность сервера. Но устанавливать не оптимизированный сайт на более мощное железо - это попытка скрыть внутренние проблемы конструкции запихнув их в более мощный сервер.
Чаще всего - это равно попытке поставить новый двигатель на 1000 лошадиных сил в очень плохой автомобиль.
Чтобы обеспечить нормальную скорость загрузки подавляющего большинства (даже больших) интернет сайтов достаточно простого VDS/VPS 1 ядро, 2 гига оперативной памяти.
2. Мы работаем над этим вопросом
Пол года, год, два года. Мы видели разные сроки, и разное количество попыток решить проблему. Говорит о том, что специалист.
Выясняется куча проблем, почему решить вопрос прямо сейчас невозможно. Приводятся умные доводы, аргументы, статистика, логи сервера, но "воз там и поныне".
В самых сложных случаях у нас уходил месяц на решение всех проблем. Большинство таких случаев было связано с проблемами вызываемыми кэшированием. Т.е. с логикой попадания оптимизированных страниц в кэш.
Стандартный срок оптимизации скорости загрузки не должен составлять более 1 недели.
3. У нас настроен процесс кэширования.
Сначала разберёмся, что такое кэш - это попытка оптимизировать нагрузку на сервер и спрятать недостатки кода, собирая страницы предварительно.
Бывает кэш двух видов:
- Кэш сервера. В случае, когда клиенту в браузер сервер отправляет уже "собранную" из ресурсов сайта страницу, хранящуюся на сервере, даже во время первого посещения страницы.
- Пользовательский кэш. Версия посещенной страницы, сохранённая на компьютере пользователя во время первого посещения.
Первое, что нужно понимать - если сайт сделан хорошо, то кэш не нужен.
В подзаголовке говорится именно о серверном кэше, как о факторе, который гуглом учитывается, так как ему все равно каким образом собрана страница.
Пользовательский - или клиентский кэш, при оценке проекта никаким образом не учитывается. Так как гуглу Важно, чтобы сайт открывался быстро для ВСЕХ пользователей.
В обычном случае пользователь, впервые посещающий эту страницу, инициализирует процесс её сборки сервером и получает собранную за определённое время страничку у себя в браузере. И если код сайта простой - это итак происходит быстро.
Серверный кэш используют, когда логика формирования страницы отрабатывает очень долго, чтобы каждый раз не запускать сложную логику криворуких программистов, соорудивших проект.
В случае, когда настроено кэширование на стороне сервера - в браузер клиента по запросу подгрузится готовая html страничка, которая уже хранится в собранном виде в памяти сервера. Она формируется, когда к ней произошло первое обращение и "живёт" либо до сброса кэша, либо до апдейта этой страницы.
Такой прием позволяет решить проблему TТFB (Time to First byte) - одного из четырёх параметров оценки.
И все бы хорошо, только оценка качества страницы строится на основе четырёх факторов: TTFB, FCP, FMP, FCI
(Если статья "зайдёт", то в следующей я напишу подробнее о каждом из них.)
Оставшиеся же три, напрямую зависят от того КАКАЯ сформирована страница. И тут уж, никакие "Кеши" не помогут, если в коде стоит 100500 js скриптов, которые нагружают бразуер без меры.
Типичный пример:
Куча JS кода.
При клиентском кэшировании вся эта куча уже лежит скомпилированная в байткод, а это сразу минус секунда к загрузке на мобильных устройствах.
Поэтому кэширование - лишь штукатурка. Без нормального кода, плюшек за качество с ним не получить.
После перехода на индексирование мобильной версии страницы, а не на настольной, скорость загрузки страниц стала одним из важнейших факторов в SEO-ранжировании страниц.