Автор: Лавлинский Николай Евгеньевич, технический директор ООО «Метод Лаб»
Влияние скорости работы сайта на поисковое продвижение уже известно и официально подтверждается представителями поисковиков. Кроме того, ускорение сайта позволяет повысить поведенческие факторы, что даже важнее, чем прямое влияние фактора скорости загрузки. К сожалению, цитируя эксперта в области скорости сайтов Пола Льюиса, скорость сайта относится к той же категории, что и безопасность с удобством пользования (юзабилити). То есть, пока «петух не клюнул», заниматься этими вопросами не хочется.
Далее будем считать, что необходимость ускорения сайта принята читателем и не требует доказательства. Вместо этого сконцентрируемся на вопросе решения проблем скорости сайта с точки зрения потребителя этой услуги.
Для начала нужно определиться, что такое быстрый сайт. Апологеты скорости из команды Google предлагают методику RAIL. Если коротко, то сайт должен загружаться за 1 секунду целиком (иметь достаточную функциональность для взаимодействия и видимый контент первого экрана). Это идеал, к которому нужно стремиться. В суровой реальности желательно добиться начала рендеринга страницы в рамках первой секунды при условиях подключения 3G, основная часть страницы должна загружаться в следующие несколько секунд. Также на этом этапе нужно понять, требуется ли обеспечивать этот уровень скорости на мобильных устройствах. Для этого достаточно посмотреть аналитику посещений сайта и получить долю мобильных пользователей или принять принципиальное решение о том, что мобильные пользователи важны.
Первым шагом при осознании проблем со скоростью сайта (например, после проверки Google Pagespeed Insights ) будет поиск решения.
Здесь мы встречаем первый выбор: решать проблемы самостоятельно или с привлечением подрядчика.
Рассмотрим вариант ускорения сайта своими силами.
У большинства активных сайтов есть какая-либо команда поддержки. Это может быть собственная команда разработчиков или веб-студия, обеспечивающая поддержку сайта. Логично будет поручить решение проблем скорости тем же людям, которые ежедневно работают с кодом сайта.
Однако, успех ускорения сайта скорее всего будет лишь частичным. Дело в том, что разработчики вряд ли сознательно нарушают рекомендации по оптимизации скорости при разработке. Скорее всего, они просто не имеют представления о методиках ускорения сайтов. Также существует проблема восприятия собственных ошибок: сложно признать, что принятые решения при разработке сайта ущербны и работают неоптимально.
Наиболее разумным выходом в такой ситуации может быть обучение сотрудников команды процессу ускорения сайтов и внедрение его внедрение в разработку. Но это длительный и сложный путь.
Итак, вы решили привлечь профессионалов.
Первое, с чем вам придётся столкнуться – разные подходы к ускорению сайтов. Принципиально таких подходов существует два: автоматизированное ускорение с CDN и ручная работа по оптимизации.
Остановимся на каждом из подходов и рассмотрим их достоинства и недостатки.
К этой группе мы отнесём внешние службы, которые проксируют (пропускают через себя) весь трафик сайта и попутно применяют некоторые оптимизации. Примеры таких сервисов: Akamai, Cloudflare, Айри.рф.
На картинке ниже представлена упрощенная схема работы сети Cloudflare.
В основе таких сервисов стоит технология CDN – content delivery network, то есть сеть распространения контента. Суть этой технологии следующая. Доменная зона сайта редактируется таким образом, что на запрос www.example.com DNS-сервера дают IP-адрес из сети CDN и запрос идёт на сервер этой сети, а не на сервер хостинга сайта. При этом сеть направляет запрос на самый близкий к клиенту сервер, чтобы минимизировать задержки в сети. Благодаря тому, что узлы CDN расположены во многих точках, получаем экономию на установлении соединения. Кроме того, статические файлы, которые редко изменяются, сохраняются в кеше сервера CDN и в следующий раз будут отдаваться быстро и без запроса к исходному серверу. Кеширование также позволяет экономить пропускную полосу канала сервера хостинга сайта.
Стоит учитывать, что сокращение издержек на подключение возможно только в случае, если рядом с пользователем есть узел CDN, иначе эффект может быть обратным. Также, при промахе кеша запрос будет обрабатываться дольше, чем с сервера напрямую.
Описанная выше функциональность является стандартной для любых CDN. Однако, существуют специализированные CDN с расширенным функционалом в области ускорения сайтов.
Ускорение в специализированных сетях достигается за счет оптимизации ресурсов на стороне CDN: сжатие картинок, компрессия текстовых файлов, объединение нескольких файлов в один, минификация. Сам же сайт при этом остаётся таким же медленным, но доставка статики становится оптимизированной. Глубокие оптимизации на уровне вёрстки сайта: например выкинуть неиспользуемый CSS-код, убрать ненужные JS-библиотеки.
Посмотрим на достоинства и недостатки данного решения, подразумевая CDN с расширенным функционалом по ускорению (другие малополезны для нашей задачи).
Достоинства:
Недостатки:
Этот путь предполагает ручную оптимизацию скорости сайта специалистами. Постойте, но зачем нужно что-то делать вручную, когда есть автоматизированные сервисы по ускорению? Попробуем разобраться.
Накопленный опыт в области ускорения сайтов позволяет сделать несколько выводов:
Во-первых, большинство сайтов, которые необходимо ускорять имеют проблемы с серверной частью (генерация страниц). Такие проблемы практически невозможно решить с помощью внешнего сервиса или CDN, здесь требуются действия по настройке серверного софта, сменой хостинга, оптимизации программного кода и схемы базы данных.
Во-вторых, большинство сайтов имеют достаточно локальную аудиторию (в радиусе 1000 км) и положительное влияние CDN на ускорение нивелируется.
Указанные причины позволяют говорить о высокой актуальности ручного ускорения сайтов и больших возможностях по оптимизации.
Итак, ручное ускорение сайтов должно включать в себя несколько шагов:
Не все этапы являются обязательными и их наличие в услуге определяется бюджетом проекта и возможностями заказчика.
Заметим еще одно важное различие ручного метода от автоматизации. При ручной работе специалисты исправляют причину проблемы, а не борются с последствиями. То есть только при ручной оптимизации можно добиться кардинального ускорения как в серверной, так и клиентской частях.
Подытожим плюсы и минусы ручного ускорения сайтов.
Достоинства:
Недостатки:
Итак, мы рассмотрели все основные методы решения задачи ускорения сайта.
Для каждого конкретного случая можно подобрать лучшее решение, исходя из достоинств и недостатков, указанных выше. Однако, если требуется достичь максимального результата по ускорению сайта, то возможна комбинация решений: ручное ускорение сайтов и подключение сервиса CDN. При этом сервис CDN может быть как с функциями по ускорению, так и без них – выбор зависит от требований по оптимизации нового контента.
Если вы решили заняться ускорением сайта – вы на правильном пути. Быстрый сайт позволит не только улучшить индексацию сайта и технические факторы, но и увеличить лояльность посетителей.
Комментарии