Решение проблем скорости сайта: улучшение технических параметров сайта без лишних затрат

Автор: Лавлинский Николай Евгеньевич, технический директор ООО «Метод Лаб»

 

Влияние скорости работы сайта на поисковое продвижение уже известно и официально подтверждается представителями поисковиков. Кроме того, ускорение сайта позволяет повысить поведенческие факторы, что даже важнее, чем прямое влияние фактора скорости загрузки. К сожалению, цитируя эксперта в области скорости сайтов Пола Льюиса, скорость сайта относится к той же категории, что и безопасность с удобством пользования (юзабилити). То есть, пока «петух не клюнул», заниматься этими вопросами не хочется.

Далее будем считать, что необходимость ускорения сайта принята читателем и не требует доказательства. Вместо этого сконцентрируемся на вопросе решения проблем скорости сайта с точки зрения потребителя этой услуги.

Определим цель и задачи

Для начала нужно определиться, что такое быстрый сайт. Апологеты скорости из команды Google предлагают методику RAIL. Если коротко, то сайт должен загружаться за 1 секунду целиком (иметь достаточную функциональность для взаимодействия и видимый контент первого экрана). Это идеал, к которому нужно стремиться. В суровой реальности желательно добиться начала рендеринга страницы в рамках первой секунды при условиях подключения 3G, основная часть страницы должна загружаться в следующие несколько секунд. Также на этом этапе нужно понять, требуется ли обеспечивать этот уровень скорости на мобильных устройствах. Для этого достаточно посмотреть аналитику посещений сайта и получить долю мобильных пользователей или принять принципиальное решение о том, что мобильные пользователи важны.

Рынок ускорения сайтов

Первым шагом при осознании проблем со скоростью сайта (например, после проверки Google Pagespeed Insights ) будет поиск решения.

Здесь мы встречаем первый выбор: решать проблемы самостоятельно или с привлечением подрядчика.

Рассмотрим вариант ускорения сайта своими силами.

Решаем проблему самостоятельно

У большинства активных сайтов есть какая-либо команда поддержки. Это может быть собственная команда разработчиков или веб-студия, обеспечивающая поддержку сайта. Логично будет поручить решение проблем скорости тем же людям, которые ежедневно работают с кодом сайта.

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

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

Выбираем подрядчика по ускорению сайтов

Итак, вы решили привлечь профессионалов.

Первое, с чем вам придётся столкнуться – разные подходы к ускорению сайтов. Принципиально таких подходов существует два: автоматизированное ускорение с CDN и ручная работа по оптимизации.

Остановимся на каждом из подходов и рассмотрим их достоинства и недостатки.

Автоматизированные сервисы (CDN)

К этой группе мы отнесём внешние службы, которые проксируют (пропускают через себя) весь трафик сайта и попутно применяют некоторые оптимизации. Примеры таких сервисов: Akamai, Cloudflare, Айри.рф.

На картинке ниже представлена упрощенная схема работы сети Cloudflare.

В основе таких сервисов стоит технология CDN – content delivery network, то есть сеть распространения контента. Суть этой технологии следующая. Доменная зона сайта редактируется таким образом, что на запрос www.example.com DNS-сервера дают IP-адрес из сети CDN и запрос идёт на сервер этой сети, а не на сервер хостинга сайта. При этом сеть направляет запрос на самый близкий к клиенту сервер, чтобы минимизировать задержки в сети. Благодаря тому, что узлы CDN расположены во многих точках, получаем экономию на установлении соединения. Кроме того, статические файлы, которые редко изменяются, сохраняются в кеше сервера CDN и в следующий раз будут отдаваться быстро и без запроса к исходному серверу. Кеширование также позволяет экономить пропускную полосу канала сервера хостинга сайта.

Стоит учитывать, что сокращение издержек на подключение возможно только в случае, если рядом с пользователем есть узел CDN, иначе эффект может быть обратным. Также, при промахе кеша запрос будет обрабатываться дольше, чем с сервера напрямую.

Описанная выше функциональность является стандартной для любых CDN. Однако, существуют специализированные CDN с расширенным функционалом в области ускорения сайтов.

Ускорение в специализированных сетях достигается за счет оптимизации ресурсов на стороне CDN: сжатие картинок, компрессия текстовых файлов, объединение нескольких файлов в один, минификация. Сам же сайт при этом остаётся таким же медленным, но доставка статики становится оптимизированной. Глубокие оптимизации на уровне вёрстки сайта: например выкинуть неиспользуемый CSS-код, убрать ненужные JS-библиотеки.

Посмотрим на достоинства и недостатки данного решения, подразумевая CDN с расширенным функционалом по ускорению (другие малополезны для нашей задачи).

Достоинства:

  • Быстрое подключение сервиса (1 час — сутки).
  • Возможность ускорения сайтов без доступа к коду.
  • Автоматизированная оптимизация контента (статики).
  • Сокращение задержек сети (при наличии узла CDN поблизости).

Недостатки:

  • Дополнительная точка отказа (если будут проблемы с CDN сайт перестанет работать).
  • Невозможность оптимизации серверной части (генерации HTML-страницы).
  • Необходимость регулярной абонентской платы (и возможной доплаты за трафик).
  • Отсутствие возможности глубокой оптимизации сайта (CSS, JS, вёрстка).
  • Увеличенные задержки запросов при промахе кеша.
  • Риск блокировки IP из сети CDN и недоступности сайта из России (многие адреса Cloudflare заблокированы в РФ).

Ускорение сайта силами специалистов

Этот путь предполагает ручную оптимизацию скорости сайта специалистами. Постойте, но зачем нужно что-то делать вручную, когда есть автоматизированные сервисы по ускорению? Попробуем разобраться.

Накопленный опыт в области ускорения сайтов позволяет сделать несколько выводов:

Во-первых, большинство сайтов, которые необходимо ускорять имеют проблемы с серверной частью (генерация страниц). Такие проблемы практически невозможно решить с помощью внешнего сервиса или CDN, здесь требуются действия по настройке серверного софта, сменой хостинга, оптимизации программного кода и схемы базы данных.

Во-вторых, большинство сайтов имеют достаточно локальную аудиторию (в радиусе 1000 км) и положительное влияние CDN на ускорение нивелируется.

Указанные причины позволяют говорить о высокой актуальности ручного ускорения сайтов и больших возможностях по оптимизации.

Итак, ручное ускорение сайтов должно включать в себя несколько шагов:

  1. Аудит скорости сайта.
  2. Определение задач, целевых показателей (требование мобильных пользователей, основные страницы входа, доля повторных посещений, география аудитории).
  3. Оптимизация основных шаблонов сайта (оптимизация CSS, JS-библиотек, подключаемых шрифтов).
  4. Оптимизация контента (изображения и другое содержимое).
  5. Консультации разработчиков, внедрение инструментов оптимизации в процесс публикации.
  6. Тестирование сайта на наличие ошибок, тестировании скорости загрузки.
  7. Отчет об ускорении, фиксация результатов.
  8. Поддержка и исправление возможных проблем.

Не все этапы являются обязательными и их наличие в услуге определяется бюджетом проекта и возможностями заказчика.

Заметим еще одно важное различие ручного метода от автоматизации. При ручной работе специалисты исправляют причину проблемы, а не борются с последствиями. То есть только при ручной оптимизации можно добиться кардинального ускорения как в серверной, так и клиентской частях.

Подытожим плюсы и минусы ручного ускорения сайтов.

Достоинства:

  • Возможности глубокой оптимизации сайта (CSS, JS, вёрстка).
  • Ускорение серверной части сайта.
  • Однократные затраты на услугу.
  • Комплексное решение проблем со скоростью для локальной аудитории.

Недостатки:

  • Требуется время на оптимизацию сайта (2-10 рабочих дней).
  • Не решается проблема географически распределённой аудитории (требуется подключение CDN).
  • Возможно появление неоптимизированного контента (при отсутствии процесса оптимизации в системе публикации).

Выводы

Итак, мы рассмотрели все основные методы решения задачи ускорения сайта.

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

Если вы решили заняться ускорением сайта – вы на правильном пути. Быстрый сайт позволит не только улучшить индексацию сайта и технические факторы, но и увеличить лояльность посетителей.

Журналист, новостной редактор, работает на сайте с 2009 года. Специализация: интернет-маркетинг, SEO, поисковые системы, обзоры профильных мероприятий, отраслевые новости рунета.
Языки: румынский, испанский.
Кредо: Арфы нет, возьмите бубен.