Всё для рекламы
и про рекламу
Навигация по статье
Что такое кэшированиеВиды кэшированияЧто делать, если периодически изменяешь контентРекомендации по настройке политики кэшированияПреимущества кэшированияКэширование в браузере клиента: полезно или нет?Что в итоге?
Управление

Чем полезно кэширование сайта и как его настроить

16759
11

Кэширование сайта — функция, которая упрощает обработку и выдачу данных на странице. Вместо выполнения тысяч запросов и вычислений, страница «достает» данные из кэша. Страница загружается быстро и при меньших мощностях.

Для владельцев сайта кэширование приводит к улучшению SEO и usability сайта. В статье рассматриваем, какие виды кэширования есть и как включить кэширование на сайте.

Что такое кэширование

Углубимся в IT-терминологию. Предположим, что у вас есть сайт с карточками товаров. Если их не много, скажем, в районе 10-15 — страница загрузится быстро и пользователь рассмотрит его. Но если товаров сотни, то сервер будет загружать каждый компонент, что затянется при объемных файлах. Пользователь уйдет, так и не дождавшись загрузки.

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

Страницы сохраняются в виде HTML-файла. Чем больше файлов, тем больше оперативной памяти нужно. 

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

Несколько терминов для понимания

  • Исходный сервер — место, где изначально находится страница. Именно с ним работает администратор и добавляет в него контент. В исходном сервере задается политика кэширования, в которую входит таймер, коэффициент попадания в кэш и другие параметры.
  • Коэффициент попадания в кэш — доля извлечения контента. Буквально это отношение числа запросов, взятых из кэша, к общему числу запросов. 
  • Свежесть кэша — параметр, который определяет актуальность контента и страницы. Задается политикой кэширования.
  • Валидация — проверка контента для уточнения актуального контента.
  • Инвалидация — удаление контента раньше срока нового кэширования. Простыми словами, это ручное сохранение новой версии страницы.

Виды кэширования

Существуют разные механизмы сохранения и обновления. Давайте разберемся с их видами. 

В браузере

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

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

В основном браузеры сохраняют легкие файлы, картинки и http-страницы.

На сервере

Под серверным кэшированием понимаются все виды кэширования, при котором данные хранятся на серверной стороне. Эти данные не доступны клиентским браузерам. 

Серверное кэширование можно разделить на несколько уровней. Пойдем от простого к сложному. 

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

Как раз на прокси действует политика кэширования. Чтобы настроить изменения и проверку свежести контента, администратор определяет политику и подключает к ней прокси.

Создание CDN

Когда компания разрастается до колоссальных масштабов, обычного прокси становится недостаточно. Создается сеть прокси-серверов, или CDN. 

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

На сервере можно кэшировать больший объем данных, нежели в браузере. Например, кэширование страницы целиком, php-файлов и отдельных блоков страницы.

В WordPress: плагины кэширования

Самые популярные плагины — WP Super Cache, W3 Total Cache и Autoptimize. Их загрузили более 1 млн раз. 

Кратко отметим преимущества каждого плагина:

  • WP Super Cache — простой в использовании, отлично подходит для новичков. Гибкие настройки позволяют отметить необходимые блоки для кэширования. 
  • W3 Total Cache — помимо кэширования, плагин позволяет настроить SEO и оптимизировать сайт. Однако в работе он сложнее, чем предыдущий.
  • Autoptimize — плагин используется для работы с JavaScript и CSS. Самый сложный из троицы.

Настроить плагины можно по инструкциям в сообществе WordPress. Отмечу, что лучше использовать один из них, а не все 3 одновременно. Совместное использование может сломать код, и тогда ваша страницу перестанут показывать пользователям.

В WordPress: кэширование при помощи хостинга

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

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

В WordPress: кэширование через код

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

Метод не для рядового пользователя. Написание кода дает преимущество: не нужно пользоваться сторонними сервисами. Однако правильно прописать кэширование в страницу и провести проверку кэширования сайта может только опытный программист. 

Что делать, если периодически изменяешь контент

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

К статическим относятся неизменные элементы. Это структура страницы и код некоторых блоков.

К динамическим относятся элементы, которые создатель страницы часто изменяет. Сюда можно отнести текст, картинки и стили.

Что происходит, когда изменяем элементы

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

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

Один из простых способов настройки кэширования указан на картинке.

Рекомендации по настройке политики кэширования

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

Ниже приведены общие рекомендации для создания собственной политики:

  • Создайте отдельные библиотеки для элементов. Создание структуры с самого начала — верный шаг к простоте системы в будущем. Разместите картинки отдельно от CSS-блоков и других элементов сайта. Ссылаться на папку проще, чем на весь архив.
  • Сделайте одинаковый путь на одни и те же элементы. Путь называется URL, и кэш будет работать быстрее, если использовать один и тот же путь при обновлениях.
  • Используйте валидацию. Проще автоматизировать процесс загрузки, чем постоянно выполнять его своими руками. Если написать грамотный код, то вам не придется думать, как отключить кэширование на сайте.
  • Не нужно кэшировать всю страницу. Сохранение каждого объемного элемента приведет к быстрому заполнению базы данных. Лучше кэшировать статические элементы, а динамические подгружать с исходной базы данных.
  • Позаботьтесь о собственном сервере. Лучше хранить данные у себя во избежание потерь. Также с собственного сервера загрузка и отклик будут быстрее. Не забудьте о резервном хранилище.

Преимущества кэширования

Повышение usability сайта

Загрузка из кэша сокращает время отклика. К тому же, расположение прокси-сервера близко к пользователю или загрузка контента из браузера сокращает время обработки.

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

Как говорится, первое впечатление сложно изменить. Быстрее загружается контент — больше шанс, что пользователь останется на сайте. Да и от сайта у него останется положительное впечатление.

Сокращение расходов на базы данных

При кэшировании не нужно хранить огромные объемы в базе данных. Ее можно разгрузить и использовать ресурсы для более важных решений, а нагрузку перенести на браузер.

Конечно, необходимо докупить дополнительные серверы для кэша. Однако если вы не собираетесь создавать сложный сайт, можно обойтись браузером пользователя.

Повышение производительности сайта

Использование кэша дает возможность выжать из странички максимум. Когда основные структурные элементы можно взять из кэша готовыми, серверу остается загрузить только динамические элементы.

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

Снижение нагрузки на сервер

При большой загрузке сайта подгрузка контента из кэша не дает упасть серверу из-за перегрузок. Поэтому легче разгрузить исходные мощности установкой прокси. 

Когда запросы приходят на прокси, исходный сервер лишь подгружает динамические элементы. Железу проще достать готовое и добавить в него файлы из библиотеки, чем с нуля обрабатывать каждый запрос. 

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

Кэширование в браузере клиента: полезно или нет?

Еще раз рассмотрим кэширование в браузере пользователя. 

Помимо показанного HTTP-кэширования, существуют такие техники, как PWA и Service Workers. Последний работает на стороне пользователя и позволяет кэшировать прямиком в браузере без сторонней помощи.

Преимущество кэширования в скорости загрузки ресурсов. При повторном запросе страницы или картинки время на загрузку этих ресурсов равно нулю. Т. е. мы их попросту не загружаем совсем, а берем из кэша на стороне клиента. Кроме того, клиенты экономят трафик, что особенно актуально для мобильных устройств.Основным недостатком кэширования является то, что бывает очень сложно отследить свежесть, т. е. когда кэш становится неактуальным. В таком случае нам нужно загрузить новую версию ресурса (например картинки, js или css файлы), но по разным причинам клиент может получать старую версию ресурса. Это может быть серьезной проблемой.
Сергей Журавель, ведущий инженер-программист в Absio

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

Также Сергей Журавель отмечает, что кэширование на стороне пользователя позволяет реализовать оффлайн-работу веб-приложения. Приложение загружает настройки и необходимые ресурсы, после чего может работать без интернета.

Что в итоге?

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

Политика кэширования помогает определиться с контентом на странице. Как часто его изменять, что добавлять, а какой контент уже устарел — всё можно добавить в политику.

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

Хотите тоже написать статью для читателей Yagla? Если вам есть что рассказать про маркетинг, аналитику, бизнес, управление, карьеру для новичков, маркетологов и предпринимателей. Тогда заведите себе блог на Yagla прямо сейчас и пишите статьи. Это бесплатно и просто
Александр ТулуповКопирайтер в нише маркетинга и инфобизнеса. Создаю визитки и презентации для экспертов. Куратор клуба копирайтеров CopyCatClub.
16759
11
4
Читайте ещё статьи по этой теме

Ссылочная масса: настройка и проверка качества Статья

Разнообразная ссылочная масса — залог успеха в продвижении сайта, привлечении на него пользователей и дальнейшей конвертации трафика в новых клиентов. Чем естественнее анкор-лист и чем больше использовано ссылок разного типа, тем быстрее сайт занимает первые строки в поисковой выдаче.10

Основные digital-тренды 2022 года: обзор от Red Digital Статья

На мой взгляд, прогнозирование будущих трендов всегда немного похоже на гадание. Невозможно предугадать, что будет происходить на рынке со 100%-й точностью.13

Как создать эффективный SEO-отчет от специалиста для клиента Статья

Слово «отчет» вызывает ассоциации с цифрами и графиками, навевает скуку. За ним трудно увидеть важную веху во взаимодействии заказчика с подрядчиком, специалистом по продвижению сайта в Google, Яндекс и других поисковых системах.5
Написать комментарий
Сергей ГробовJanuary 21, 2022 в 12:28 PM
СЕО плагины самые эффективные в этом деле. Я раньше вообще в этом не разбирался, но за последнее время кое-чему меня научили. Когда сайт тормозит оно просто раздражает и пользоваться им вообще не приятно и не удобно
Артем БлохинJanuary 23, 2022 в 12:52 PM
Мне нравится механизм таких площадок как Авито или Юла, ты заходишь и тебе сразу выдаются объявления по твоим последним запросам. Это упрощает жизнь всем и у потенциального клиента остается больше времени на выбор, а не поиски нужного товара. Про торможение сайта, здесь никто и не от чего не застрахован, все-таки эта технология имеет некоторые недостатки.
Игорь КорнеевJanuary 25, 2022 в 3:07 PM
Так получается, потому что кэширование и в вашем браузере, и на стороне этих сайтов работает правильно, в соответствие с заданными настройками. У Авито вообще всё грамотно устроено, не зря ещё в 2019 году стоимость этой площадки оценивалась в районе 5 миллиардов баксов, не удивлюсь, если сейчас этот бизнес оценивается дороже.
Олег КонановJanuary 22, 2022 в 8:45 AM
Многие сразу плюются на оптимизацию, хотя проблемы могут быть и на стороне железа самого пользователя. Сейчас уже даже топовое железо задыхается при загрузке страниц.
Артем БлохинJanuary 23, 2022 в 12:53 PM
Топовое железо есть у единиц, оно нужно для конкретных зада, врят ли покупают за дорого, чтобы просто по сайта лазить без торможения.
Александр НичипоренкоJanuary 21, 2022 в 6:27 AM
Я в свое время настраивал с помощью СЕО плагинов. Эффект от кеширования плагинами заметен сразу, зависит, все конечно, от плагина. Без кеширования нормального многие CMS сильно тормозят, что опять вредит показателям СЕО. Медленный сайт не есть хорошо. Лучше в каждом конкретном случаи провести комплексный анализ ситуации. Бывает, что просто сервер слабый и в таком случае не многое поможет, даже если включить кеширование.
Алексей ПоташевJanuary 18, 2022 в 1:33 PM
Пробовал настраивать кэш и на стороне сервера, и плагинами CMS. Везде свои нюансы, не говоря о том, что пришлось разбираться как это делать. Удобнее всего через CDN WSR (w.tools), там спецы мне сами всё настроили. Кэширует и статический, и динамический контент сайта без влияния на функционал. Причем кэширует сразу на всех своих серверах, кои находятся на всех континентах, в том числе в нескольких регионах России и Украины. При обновлении страниц автоматически обновляется и кэш. Реально удобно, забыл про кэш, единственный минус - небольшую денюжку надо платить каждый месяц А про кэширование в браузере - это конечно хорошо, но работает только при повторных заходах посетителя. Когда человек приходит на сайт в первый раз, кэша нет. Поэтому такой способ имеет весьма ограниченную функциональность
Алекс СомовJanuary 20, 2022 в 8:24 AM
Кэширование в браузерах это вообще палка о двух концах. В конце концов кэш начинает грузить память и скорость загрузки сайтов падает.
Алексей ГриневJanuary 18, 2022 в 5:16 AM
Если рассматривать себя, как владельца сайта, то кэширование в браузере и на сервере рассматривать не стоит. Это дело пользователей и хостеров. А вот кэширование в WordPress это то, что непосредственно касается владельца сайта. И я советую делать кэширование через код. Хотя использовать плагины проще, но и работает такой способ хуже. Еще бы хотелось, чтобы автор хотя бы несколько слов посвятил методом кэширования для сайтов на Joomla.
Олег КонановJanuary 18, 2022 в 3:45 PM
А я считаю, что оптимизировать нужно как на стороне клиента, так и на стороне владельца сайта. Чем лучше отзывчивость и загрузка сайта будет, тем приятнее вашим посетителям.
Алексей ГриневJanuary 21, 2022 в 8:36 AM
Оптимизация на стороне клиента вещь, конечно, желаемая, но неосуществимая. Подавляющее большинство клиентов не ведает ни про оптимизацию, ни про кэш, ни про куки.