В этой статье простыми словами объясняем, какие способы ускорения сайтов есть, какие услуги предлагаются участниками рынка, и как выбрать из этого разнообразия.

CDN

Если вбить в поиск "ускорение сайтов", выдается сразу несколько предложений, основанных на CDN. Разберемся, подходит ли способ с CDN для ваших потребностей, или нет.

CDN (Content Delivery Network) - переводится как сеть доставки содержимого.

В "классическом" варианте построение сайта используется всего один сервер (или группа), который хранит данные, содержит бизнес-логику и при этом занимается обслуживанием "заходящих на сайт" посетителей. Хотите получить картинку с сайта? Браузер услужливо идет на ваш сервер.

В CDN задействованы сразу много серверов, которые используют как своего рода географически распределенный кеш. Хотите получить картинку? CDN найдет самый близкий к вам сервер и отправит содержимое с него. Ваш сервер не будет использован. Путь передачи файла будет минимальным, человек из Новосибирска получит данные из датацентра своего города, а не Москвы.

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

CDN PHP Content Delivery Network для ускорения загрузки страницы

Зайдем немного дальше. Кроме такого "кеширования" изображений, можно хранить и целые страницы! Но нужно обязательно настроить время, когда их следует повторно перегрузить с сайта, иначе после публикации новости на главной посетители еще долго будут видеть старый вариант.

Что нельзя таким образом "кешировать"? Корзину, например. А также многие другие динамические страницы. Но вся соль в том, что очень часто тормозят какие-либо фильтры на странице магазина, которые, если кешировать, будут работать совершенно неприемлемо: вы будете видеть то же самое, как будто ничего не произошло. Поэтому добавляются правила и исключения для таких страниц, но CDN в этом случае теряет свою эффективность как хранилище "готовых" страниц.

Пример, когда CDN работает, но страница должна быть загружена с сервера, который перестал работать.

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

Примечание: работа сайта зависит от работоспособности CDN и "случайных" блокировок его IP адресов в Роскомнадзором.

Встроенные в CMS средства

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

В системах 1С Битрикс (из коробки) и Wordpress (плагин) из админки можно включить CDN сервер.

Это именно то, что не хватает CDN: внутри системы можно кешировать отдельные модули, при этом сервер будет тратить свой ресурс на другие части страницы. Например, раздельно кешировать для каждого посетителя блоки "Вы вошли как ..." и "список ваших заказов", но пересчитывать "корзину". Однако проблему медленных фильтров это не решит. Может быть нужен более мощный сервер?

Смена и настройка сервера

Действительно, один из вариантов решения проблемы - использовать более мощный сервер. Если используете шаред-хостинг, попробуйте переехать более дорогой тарифный план или другого хостера. Часто помогает переезд на VDS.

Если уже используете VDS, нужно оценить нагруженность сервера, и добавить памяти или процессоров. Если сервер недогружен, но сайт все равно работает медленно, уже нужны различные программные решения:

  • доработка кода
  • тонкая настройка сервера
  • добавление вспомогательных решений типа memcache

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

Доработка кода

Пожалуй, доработка кода - это идеологически верный путь. В этом случае борьба ведется с причиной, а не устраняются "последствия" путем наращивания мощностей или повсеместного включения кеширования. Работа состоит из трех этапов:

Сравнительная таблица различных способов ускорения сайтов

Способ Эффект Стоимость Абонентская плата Возможность сделать "самому" Кто предоставляет услугу Когда стоит использовать
CDN быстрая загрузка статического содержимого (картинки, скрипты, стили, отдельные страницы) ~ $100 / мес специализированные компании большая нагрузка на сервер; нужно грузить быстро много картинок/видео; защита от DDoS
Встроенные в CMS средства быстрая генерация и загрузка страницы, снижение нагрузки на сервер 0 (если самостоятельно) заложено в CMS всегда, если эффективны
Настройка сервера эффективнее используем ресурсы $50-200 хостер или приглашенный администратор, процедура обычно бесплатная шаред хостинг, перегруженный сервер
Смена сервера добавляем ресурсы $10-100 / мес
Доработка кода быстрая работа на том же железе $50-500 разово компания или приглашенный программист не хочется платить каждый месяц абонентскую плату, или ничего не помогло

Примечание: вебсайты по размерам и содержимому сильно разные, а проблемных мест еще больше. Поэтому в примере взят средний интернет-магазин на 1000 товаров, с приблизительными ценами по тарифам и услугам на момент написания статьи.