Что такое кэширование сайта и почему это важно

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

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

Сама идея реализации кеширования проста. Позвольте мне привести пример.

Если я спрошу вас, сколько будет 5 умножить 3, вы поймете, что правильный ответ 15. При этом не нужно его вычислять - вы просто помните результат, и не осуществляете никакой умственной обработки. Примерно так и работает кеширование.

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

Как обслуживаются страницы с кэшем

Интернет кэш - что это такое? Сейчас поясню. Допустим, у вас есть блог с включенным кэшированием. Когда кто-то посещает главную страницу вашего блога в первый раз, он получает ее обычным способом: запрос обрабатывается на сервере, и полученная веб-страница, которая должна быть отображена, преобразуется в HTML-файл и отправляется в браузер посетителя.

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

Но что, если мой контент изменяется?

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

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

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

Является ли кэширование эффективным?

Сайт, разработанный и реализованный надлежащим образом, может загружаться всего за две секунды. Разве это недостаточно быстро? Необходимо ли использовать кэширование? Ответ - однозначно, да.

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

Насколько эффективно кэширование? Согласно недавнему исследованию YUI, кэширование в браузере может увеличить скорость сайта на целых 300%!

Типы кэширования

Существует два типа кэширования - серверный и браузерный. Давайте рассмотрим различия между ними.

Кэширование в браузере

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

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

Кэширование на сервере

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

Возможно, вы столкнетесь с терминами «кэш объектов» и «полный кэш страниц». Оба обозначают методы кэширования на сервере. Кэш полной страницы - это то, о чем мы говорили до сих пор.

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

Кэширование в WordPress

Есть три вещи, которые нужно знать о кешировании в WordPress: написание эффективного кода, использование плагинов кэширования и использование встроенного кэша хостинга.

Использование плагинов кэширования WordPress

Самое важное правило – никогда не используйте одновременно больше одного плагина кэша страниц интернета. Это не сделает ваш сайт быстрее, а намного медленнее и в результате просто сломает.

Используйте одновременно только один плагин кэширования. При правильной настройке это поможет значительно ускорить работу сайта. Лучшие плагины кэширования - WP Rocket, W3 Total Cache и WP Super Cache.

Использование кэширования, осуществляемого хостингом

Это относится к сайтам, которые работают на WordPress. Я могу рекомендовать WPEngine, Flywheel и Kinsta. Все они предоставляют превосходные сервисы кэширования.

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

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

Написание эффективного кода

Мы не будем вдаваться в подробности, но первое, что вы должны знать - это то, как устроен WordPress.

Например, если вы получаете метаданные для записи, и вызываете get_post_meta($post_id, 'co-author', true );,WordPress извлекает все метаданные для этого поста. Поэтому наличие 50 отдельных запросов get_post_meta() для извлечения одной записи не является расточительством.

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

Заключение

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

Если вы еще не кэшируете свой сайт, сделайте это! Чтобы начать работу с кэшированием, ознакомьтесь с упомянутыми выше плагинами.