Кешування сайтів — це одна з найбільш корисних технологій. Її використання робить сайти надзвичайно швидкими, що призводить до поліпшення 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. Перехідні процеси — це своєрідне рішення для кешування об’єктів з датою закінчення терміну дії. Їх можна використовувати для кешування підвалу або шапки, які не змінюються з плином часу, за винятком особливих випадків. Тоді ви просто очищаєте кеш.

Висновок

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

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

Переклад статті «What is Website Caching and Why is it so Important» дружною командою проекту Сайтостроение від А до Я.