Настройка W3 Total Cache - введение

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

Настройка W3 Total Cache - введение

В этой статье мы осветим наиболее часто обсуждаемые аспекты быстродействия сайтов с акцентом на кэширование: какие преимущества это даёт нашему сайту и как нам ускорить WordPress для получения наилучшего результата.

Есть несколько причин внедрять кэширование на своём сайте:

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

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

Поэтому в этой статье я расскажу о W3 Total Cache и о том, как оптимизировать настройки этого плагина для вашего веб сайта.

Мы уделим внимание следующим пунктам:

  • Что такое кэширование?
  • Почему именно W3 Total Cache?
  • Возможности W3 Total Cache.
  • Настройка W3 Total Cache.

Что ж, приступим.

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

Согласно Википедии,

Кэш или кеш (английское cache, от французского cacher – «прятать») – промежуточный буфер с быстрым доступом, содержащий информацию, которая может быть запрошена с наибольшей вероятностью. Доступ к данным в кэше осуществляется быстрее, чем выборка исходных данных из более медленной памяти или удаленного источника, однако его объём существенно ограничен по сравнению с хранилищем исходных данных.


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

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

В контексте типичного WordPress-сайта, когда вышеописанные вычисления производятся при помощи интерпретатора PHP, а данные хранятся в таблице MySQL, в ходе представления страницы сайт может сгенерировать до 250 SQL-запросов.

Если база данных потратит на каждый запрос всего лишь 40 мс, то в целом подготовка страницы займёт не менее 10 секунд. И это может происходить при каждом обращении посетителя к сайту.

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

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

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

Генерация страницы по-прежнему может занимать до 10 секунд. Но теперь процесс генерации необходимо произвести только для одного пользователя из 1000. Остальные 999 посетителей получат ранее сохранённую копию страницы, на что уйдёт минимум времени и ресурсов сервера.

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

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

Окончательно понять происходящие процессы вам поможет иллюстрация:

понять происходящие процессы

Почему именно W3 Total Cache?

Существует много кэширующих плагинов для WordPress, но W3 Total Cache – самый универсальный вариант, так как он гибок в настройке, весьма популярен (более трёх миллионов загрузок на день написания статьи) и отлично показал себя со стороны безопасности, чего не скажешь о других, менее известных решениях.

Конечно, выбор плагина – вопрос во многом субъективный, но многие сторонние сервисы, например, служба распределённого контента MaxCDN или SaaS-веб-аналитика New Relic, рекомендуют установить W3TC, чтобы максимизировать выгоду от сотрудничества с ними.

Так почему бы вам не установить W3TC прямо сейчас?

На сегодняшний день я оптимизировал более 100 сайтов моих клиентов с помощью W3TC, и до сих пор результаты были только положительными. Это наглядно показывают следующие диаграммы:

диаграмма 1
диаграмма 2

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

Возможности W3 Total Cache

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

Резюмируя эту статью:

W3TC доверяют

  • AT&T;
  • stevesouders.com;
  • mattcutts.com;
  • mashable.com;
  • smashingmagazine.com;
  • makeuseof.com;
  • yoast.com;
  • kiss925.com;
  • pearsonified.com;
  • lockergnome.com;
  • johnchow.com;
  • ilovetypography.com;
  • webdesignerdepot.com;
  • css-tricks.com;
  • … и многие другие компании и веб-разработчики.

Выгоды от применения:

  • по крайней мере, десятикратное увеличение скорости работы сайта, выражающееся в оценке «A» в тесте YSlow и значительном улучшении оценки Google PageSpeed, но всё это – при условии правильной настройки;
  • рост конверсии посетителей и повышение оценки производительности сайта Google;
  • «мгновенная» доступность последующих страниц при просмотре;
  • оптимизация рендеринга: браузер начинает отрисовывать страницу до того, как она полностью загрузится, при этом информация быстрее становится доступной посетителю;
  • уменьшение общего времени загрузки страницы, что увеличивает число посетителей, просмотревших более одной страницы на вашем сайте: вы приобретаете лояльную аудиторию;
  • улучшение производительности веб-сервера и повышение доступности сайта при пиковой нагрузке;
  • экономия до 80% серверного трафика за счёт минимизации и HTTP-компрессии.

Функции:

  • совместим с виртуальным (shared) хостингом, виртуальными и выделенными серверами и кластерами;
  • прозрачное управление сетями доставки контента (CDN) через медиа-библиотеку, настройку тем и ядра WordPress;
  • возможность управлять параметрами кэширования для мобильных клиентов на основе анализа полей запроса referrer или user-agent;
  • кэширование минимизированного и сжатого контента в памяти, на диске или в CDN;
  • кэширование скриптов и стилей;
  • кэширование RSS-лент, результатов поиска, облаков тэгов и других динамических результатов в памяти, на диске или в облаке CDN в режиме зеркалирования;
  • кэширование результатов поиска происходит по GET-запросу;
  • кэширование результатов SQL-запросов в памяти или в файловой системе;
  • кэширование других объектов;
  • минимизация страниц, публикаций, лент;
  • минимизация встроенных в страницы и сторонних скриптов (с автоматическим обновлением);
  • минимизация встроенных в страницы и сторонних стилей (с автоматическим обновлением);
  • управление кэшем браузера с использованием cache-control, заголовков expire, идентификаторов ETag и механизма cache busting;
  • неблокирующее встраивание JavaScript;
  • импорт вложений в публикации в медиа-библиотеку и CDN;
  • поддержка очистки кэша, обновления строк и других операций посредством командной строки (WP-CLI);
  • … и многое другое.

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

Настройка W3 Total Cache

Теперь мы знаем, что такое кэш, зачем применять кэширование, почему мы выбрали W3 Total Cache для своего сайта и какие возможности нам даст этот плагин. Мы выяснили, что применение кэширующего плагина вроде W3TC является ключевым моментом в работе сайта.

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

В следующих статьях этой серии мы подробно изучим каждое действие, входящее в процесс настройки W3 Total Cache.

Перевод статьи «Configuring W3 Total Cache: An Introduction» был подготовлен дружной командой проекта Сайтостроение от А до Я.