Швидкість веб-сайту є важливим фактором для високого рейтингу в SERP, залучення нових клієнтів і підвищення коефіцієнта конверсії загалом. Вона також надзвичайно важлива для досвіду ваших клієнтів в загальному.

Хоча швидкість веб-сайту впливає на багато речей, багато факторів сповільнюють її, що вимагає від вас постійної уваги.

Сьогодні ми хочемо розглянути один з цих факторів — кеш сторінки Magento 2 (Magento 2 full page cache), який надається платформою за замовчуванням.

У цій статті ви дізнаєтеся все, що вам потрібно знати про кеш сторінки у Magento 2 і як він працює. Це дозволить вам покращити швидкість Magento за допомогою безкоштовного рішенням для кешування, з яким працює Magento.

Зміст [приховати]

    Давайте почнемо з простого.

    Що таке full page cache в Magento 2?

    Magento 2 full page cache, як кеш сторінки — це безкоштовне вбудоване рішення для кешування у Magento 2, яке дозволяє скоротити час завантаження сервера та покращує час відповіді сервера завдяки швидкому завантаженню CMS сторінок, сторінок продуктів і каталогу.

    Як ми щойно згадували, кеш сторінки ввімкнено в Magento 2 за замовчуванням через зворотний проксі-сервер PHP, який є посередником між відвідувачами вашого веб-сайту та вашою інсталяцією. Це скорочує час завантаження сервера і дозволяє заощадити на пропускній здатності (bandwidth).

    Як працює кеш сторінки у Magento?

    Як тільки ви заходите на сторінку веб-сайту, ви ініціюєте запит до сервера для створення контенту сторінки, що займає певний час. Система не зберігає останню версію сторінки і має перегенерувати сторінку щоразу, коли хтось заходить на неї.

    Щоб уникнути цього, Magento зберігає копію сторінки з ключем кешу в системі після першого завантаження сторінки. Таким чином вміст сторінки, який відповідає ідентифікатору першої кешованої копії, відтворюється набагато швидше, коли ви другий раз заходите на сторінку.

    Full page cache in Magento 2

    Так працює кеш сторінки у Magento з боку сервера. Що стосується користувача, то все трохи по-іншому.

    Користувач отримує доступ до вашого веб-сайту через браузер на своєму ноутбуці або ПК. Відповідно, дані обробляються на їхніх пристроях. Для кешування вмісту на стороні користувача Magento надає файл page-cache.js, який обробляє кеш на пристроях користувачів і синхронізує їх із сервером.

    Однак це ще не все.

    Типи сесій кеша сторінки

    Користувачі приходять на ваш веб-сайт з різною метою: просто, пошукати якісь нові продукти, порівняти їх і створити список бажань або, щоб зробити покупку. Відповідно, ви не можете кешувати однаковий контент для всіх. У цьому випадку Magento визначає різні типи сесій для кешування вмісту сторінки для різних користувачів.

    Існує 3 типи відвідувань, які використовуються для різних видів запитів з метою кешування:

    • Non-sessioned — відвідувачі переглядають сторінки веб-сайту, але не взаємодіють з ними. Таким чином, система кешує вміст сторінки для інших відвідувачів цієї сесії та відображає його для кожної переглянутої сторінки.
    • Sessioned — відвідувачі переглядають сторінки веб-сайту та виконують різні дії, наприклад, додають продукти в кошик або порівнюють їх. Кожній сесії призначається ідентифікатор, і всі кешовані сторінки відображаються лише для таких відвідувачів.
    • Customer — сесії здійснюють користувачі, які ввійшли в свій обліковий запис і переглядають каталог або роблять покупки у вашому магазині. Крім того, їм відображаються спеціальні пропозиції, ціни та акції, визначені для їхніх груп користувачів.

    Кешовані та некешовані сторінки

    Поняття cacheable та uncacheable визначають чи буде сторінка кешуватись.

    Кеш сторінки у Magento 2 працює для всіх сторінок вашого веб-сайту, тому всі вони кешуються (cacheable) за замовчуванням. Це CMS сторінки, продукт, категорія та інші сторінки каталогу. З іншого боку, некешовані сторінки (uncacheable) – це сторінки, які містять приватні дані, які генеруються під час кожного завантаження сторінки, напр. сторінки оформлення замовлення та облікового запису клієнта.

    Щоб зробити сторінку не кешованою, вам просто потрібно позначити блок сторінки cacheable="false", як у прикладі:

    <block class="Magento\Customer\Block\Form\Edit" name="customer_edit" template="Magento_Customer::form/edit.phtml" cacheable="false">
        <container name="form.additional.info" as="form_additional_info"/>
    </block>

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

    Приватний vs публічний контент

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

    Public content — статичний контент, який довго не оновлюється та зберігається на стороні сервера і доступний для багатьох користувачів (сторінка контактів, про нас, список категорій, сторінка продукту, тощо).
    Private content — динамічний контент, оновлюється швидко та зберігається на стороні клієнта і доступний лише для певних користувачів (дані клієнта, персоналізовані пропозиції, кошик для покупок, список бажань, тощо).

    Private and Public Content in Magento 2

    Увімкнувши кеш сторінок для Magento, ви гарантуєте надання своїм клієнтам відповідного контенту якомога швидше.

    Отже, давайте дізнаємося, як його налаштувати в Magento 2.

    Як налаштувати full page cache у Magento 2?

    1. Підіть у Stores > Configuration > Advanced > System > Full Page Cache.
    2. Виберіть Caching Application: Built-in Application або Varnish Caching.
    3. Виберіть TTL for public content, щоб визначити час оновлення для кешу сторінки. За замовчуванням задано значення 86400, що становить приблизно 24 години. Після закінчення часу дані сторінки оновлюються.

    Magento 2 Full-Page Cache Configuration

    Якщо ви хочете використовувати Varnish, вам потрібно заповнити додаткові поля.

    Налаштування varnish в Magento 2

    1. Введіть IP-адреси, які можуть очистити створення файлу налаштувань за допомогою Varnish, у полі Assess list список.
    2. Задайте хост, який використовується для створення файлів налаштувань у полі Backend host.
    3. Визначте Backend port для створення файлу налаштувань.
    4. Вкажіть Grace period у секундах для створення файлів налаштувань.
    5. Експортуйте налаштування для вашої версії varnish через опцію Export Сonfiguration.

    Magento Varnish Configuration

    Стежте за кешем сторінки у Magento 2

    Іноді, коли ви помічаєте раптовий спад швидкості, причина може бути в тому, що кеш сторінки вимкнено. Це негативно впливає не тільки на продуктивність вашого магазину, але і на роботу адмін панелі.

    Щоб стежити за кешем сторінки та ввімкнути його за потреби, налаштуйте стовіщення про вимкнений кеш.

    Disabled Full-Page Cache Magento

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

    Щоб позбавити вас від пошуку відповідного розширення серед безлічі модулів, ми підготували огляд найкращих модулів Magento 2 Full Page Cache Warmer. Перевірте їх, щоб надавати контент своїм користувачам швидше за допомогою правильного рішення для кешування.