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

У цій статті ми висвітлимо найбільш часто обговорювані аспекти швидкодії сайтів з акцентом на кешування: які переваги це дає нашому сайту і як нам прискорити 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 - введення

Чому саме W3 Total Cache?

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

Звичайно, вибір плагіна – питання багато в чому суб’єктивний, але багато сторонні сервіси, наприклад, служба розподіленого контенту max-cdn або SaaS-веб-аналітика New Relic, рекомендують встановити W3TC, щоб максимізувати вигоду від співпраці з ними.

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

На сьогоднішній день я оптимізував більше 100 сайтів моїх клієнтів з допомогою W3TC, і досі результати були тільки позитивними. Це наочно показують наступні діаграми:

Налаштування W3 Total Cache - введення
Налаштування W3 Total Cache - введення

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

Можливості 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» був підготовлений дружною командою проекту Сайтостроение від А до Я.