SEO
1758522600

Що таке 304 Not Modified і чому це бонус для вашого сайту?

Сайт усе ще «гальмує», хоча зображення вже оптимізовані, а код мінімізований? У логах постійно з’являється статус 304, і ви не впевнені, чи це помилка?

У цій статті поясню, що насправді означає 304 Not Modified, чому він не сигналізує про проблему та як налаштувати сервер так, аби прискорити роботу ресурсу й знизити навантаження.

Як код статусу 304 пришвидшує роботу сайту

Коли користувач уперше відкриває сторінку, браузер зберігає статичні файли — зображення, CSS, JavaScript — у кеші. Під час наступного звернення сервер перевіряє, чи змінився ресурс. Якщо ні, повертається статус 304, а клієнтська програма підтягує дані з локальної пам’яті. Це скорочує час відгуку й робить сайт швидшим.

Уявіть логотип у форматі .png. При першому завантаженні оглядач отримує файл і фіксує дату запиту. Коли користувач повертається на сторінку, програма надсилає на сервер уточнення: чи змінювався логотип після вказаної дати. Якщо файл залишився тим самим, відповідь приходить у вигляді статусу 304, і зображення відтворюється з кешу. У результаті воно відображається миттєво, без повторного завантаження.

За такою ж логікою працюють не лише картинки, а й стилі, скрипти чи навіть HTML-сторінки.

Щоби перевірити зміни, клієнтський агент використовує HTTP-заголовки If-Modified-Since (дата останнього збереження файлу) або If-None-Match (ідентифікатор версії ресурсу). Саме завдяки цим заголовкам сервер вирішує, віддавати нову копію чи обмежитися кодом 304.

Принцип роботи відповіді 304 Not Modified

Принцип роботи відповіді 304 Not Modified

Як налаштувати 304 code у різних середовищах

Використання статусу 304 потребує правильної конфігурації. Розгляну налаштування в найпопулярніших середовищах: Nginx, Apache2 та Cloudflare.

Налаштування 304 в Nginx

У файлі nginx.conf можна активувати перевірку змін ресурсу. Якщо файл не оновлювався, сервер відповідає 304 not modified. Приклад конфігурації:

location / {

etag on;

if_modified_since exact;

add_header Cache-Control "public, max-age=2592000";

}

Тут увімкнено заголовки ETag та Last-Modified. Завдяки ним браузер одержує сигнал, що файл можна брати з кешу.

Налаштування 304 в Apache2

У сервері Apache2 механізм перевірки змін файлів налаштовується через файл .htaccess. У ньому можна прописати такі директиви:

FileETag MTime Size

<IfModule mod_headers.c>

Header set Cache-Control "max-age=2592000, public"

</IfModule>

Коли файл не змінювався, Apache відповідає кодом 304, а браузер завантажує його з локальної пам’яті.

Використання 304 у Cloudflare

Cloudflare вважається одним із найзручніших інструментів для покращення швидкості сайтів. Одна з його переваг — система кешування, яка пришвидшує завантаження сторінок та допомагає економити трафік. Завдяки цьому механізму Cloudflare автоматично може віддавати код 304, коли контент залишається незмінним.

Щоби це працювало, у панелі керування потрібно правильно налаштувати кешування. Є два основні параметри:

  1. Caching Level (позначений на скриншоті «1»). Він визначає, як саме відбувається зберігання файлів:

  • no query string — фіксує сторінку незалежно від параметрів у URL;

  • ignore query string — зберігає в кеші лише одну версію файлу, навіть коли в URL різні параметри, але водночас передає ці параметри на сервер (наприклад, file.js?v=1 і file.js?v=2 сприймаються як один ресурс);

  • standard — окремо зберігає кожен унікальний URL із параметрами.

  1. Browser Cache TTL (час зберігання у кеші, на скриншоті позначений «2») визначає, як довго файли залишатимуться в локальному сховищі програми для перегляду. Упродовж цього періоду клієнтський агент не звертається до сервера, а бере готову копію з пам’яті.

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

Налаштування кешування у Cloudflare

У результаті правильної конфігурації Cloudflare у поєднанні з кешем користувача дані зберігаються максимально ефективно, а сторінки віддаються через HTTP 304. Це значно прискорює роботу сайту.

Сумісність і поведінка браузерів із 304 Not Modified

Код HTTP 304 підтримують всі сучасні браузери: Chrome, Firefox, Safari, Edge. Коли сервер повертає цей код, клієнтська програма автоматично бере ресурс із локального сховища й не завантажує його повторно. Для користувача процес відбувається непомітно.

Важливий нюанс: кожен браузер може сам визначати, скільки часу зберігати кешовані файли.

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

Також читайте в нашому блозі, Що таке код помилки 410.

Переваги використання 304 Not Modified

Коли сервер повертає статус 304, це означає, що файл не змінився і його можна завантажити з кешу. Завдяки цьому сторінка відкривається швидше, адже браузеру не потрібно щоразу завантажувати дані з нуля.

Що це дає на практиці:

  • сторінки відкриваються швидше, бо програмі для перегляду не потрібно щоразу завантажувати дані з нуля;

  • сервер отримує менше запитів і працює стабільніше під навантаженням;

  • економиться трафік, що особливо важливо для користувачів із мобільними тарифами;

  • робота із сайтом стає комфортнішою, а це напряму впливає на лояльність відвідувачів.

Якщо в логах з’являється статус 304 — це зовсім не помилка, а нормальний сигнал від сервера.

Хочете, щоби ваш сайт завантажувався ще швидше та краще ранжувався в Google?

Замовляйте SEO-аудит та оптимізацію — ми не тільки налаштуємо кешування та статуси 304, а також підвищимо швидкість, юзабіліті й позиції у видачі.

Висновки

  1. 304 — це HTTP-статус, який означає, що файл не змінювався. У такому випадку браузер сам вирішує, завантажити його з локального кешу чи запросити заново. Завдяки цьому сторінки відкриваються швидше, а навантаження на інфраструктуру знижується.

  2. Щоби код 304 працював коректно, потрібно правильно налаштувати сервер. У Nginx це робиться через etag та if_modified_since, в Apache — за допомогою директив у .htaccess, а в Cloudflare — через параметри кешування.

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

  4. Використання коду 304 Not Modified — це баланс між швидкістю роботи сайту та надійністю технічної платформи.

FAQ

  1. Чи можна вважати 304 помилкою?Ні, це нормальна поведінка сервера. Код означає, що файл не змінився, і система відображає його з кешу.

  2. Чи впливає 304 на SEO?Прямого впливу немає. Використання кешу пришвидшує сайт, а це враховується пошуковими системами як позитивний сигнал.

  3. Чи завжди браузер отримає 304?Ні. Якщо кеш видалено, ресурс змінено або відключено заголовки If-Modified-Since/ETag, файл завантажується заново.

  4. Що робити, коли сторінки не кешуються?Перевірити конфігурацію заголовків Cache-Control, ETag та Last-Modified. Без них сервер не зможе повернути 304.

  5. Чи економить 304 мобільний трафік?Так. Оскільки дані беруться з локальної копії, повторне завантаження не потрібне, і витрати трафіку знижуються.

2
0
2