Сторінки, що змінюються залежно від пристрою, не повідомляють про це

У звітіDynamically served pages lack the Vary: User-Agent header

dynamic_serving_missing_vary · Проблема

Коротка відповідь

Це з’являється, коли основний контент сторінки відрізняється залежно від пристрою, тобто вона віддається динамічно, але відповідь не містить User-Agent у заголовку Vary. Google просить, щоб динамічно віддавані сторінки надсилали Vary: User-Agent, а кеші використовують його, щоб тримати версії окремо. Додайте його на цих сторінках або віддавайте однаковий контент усім пристроям.

Серйозність: Низька. Виправте це за нагоди; це невеликий заголовок, але без нього кеш може віддати телефонам настільну сторінку або навпаки.

Чому це важливо

Google описує динамічне віддавання як таке, що спирається на визначення user agent і заголовок відповіді Vary: user-agent. Кеші зберігають окремі копії для кожного заголовка, названого у Vary, тож без нього одна версія може бути віддана не тому пристрою.

Що зробити

  1. Перегляньте знахідку: у ній показано початок заголовка Vary кожної відповіді, до 128 символів, і кількості контенту для кожної із шести відповідей.
  2. Додайте User-Agent до заголовка Vary на маршрутах, що змінюються залежно від пристрою, наприклад Vary: Accept-Encoding, User-Agent.
  3. Якщо сторінка має бути однаковою всюди, зробіть її такою, і заголовок не знадобиться.

Що ми читаємо

Ми беремо до перших 20 просканованих сторінок, що відповіли кодом 200 з повним HTML за точною адресою вашого сайту, і запитуємо кожну ще шість разів: двічі як настільний Chrome, двічі як Googlebot Smartphone і двічі як Chrome на телефоні Android, причому повтор кожного агента — щонайменше через п’ять секунд після його першого запиту, а всі шість — у межах трьох хвилин. Сторінка не порівнюється, коли robots.txt блокує будь-який із цих запитів, будь-яка відповідь не є HTML з кодом 200 чи показує сторінку перевірки на бота або переспрямування виходить за межі схеми, хоста чи порту сторінки.

Настільна версія повинна мати основний контент, а два запити кожної версії мають відрізнятися не більш ніж на 5% за різними словами. Тоді сторінка вважається динамічно віддаваною, коли різні слова її основного контенту відрізняються між настільною версією та обома телефонами, в обох раундах, більш ніж на 0,1 понад власну мінливість сторінки між однаковими запитами. Вона фіксується, коли до того ж ні настільна відповідь, ні відповідь для Googlebot Smartphone не містить User-Agent у Vary; Vary: * не враховується.

Приклад і докази

Ілюстративний приклад — одна сторінка меню, яка віддається по-різному залежно від пристрою, а не реальний аудит.

Адреса: https://bakery.example/menu/. Кожна відповідь має Vary: Accept-Encoding. Настільний Chrome отримує:

<main><h1>Menu</h1><p>Sourdough loaf, rye bread, croissant, pain au chocolat, cinnamon roll, carrot cake, lemon tart, seasonal fruit galette.</p></main>

Обидва телефони отримують:

<main><h1>Menu</h1><p>Tap to order: bread, pastries, cakes.</p></main>

Основний контент відрізняється залежно від пристрою, а Vary не називає User-Agent, тому сторінка фіксується.

Можливе виправлення: надсилайте Vary: Accept-Encoding, User-Agent із цими відповідями.

Підтвердити й перевірити знову

Перевірте самі: подивіться на заголовок відповіді Vary в інструментах розробника вашого браузера на сторінці, контент якої змінюється між телефоном і комп’ютером.

Повторна перевірка: Повний аудит — перечитайте цю адресу свіжим набором із шести запитів за тих самих умов. Знахідка закривається, коли настільна відповідь або відповідь для Googlebot містить User-Agent у Vary чи контент більше не відрізняється залежно від пристрою, і лише поки настільна версія має основний контент, а два запити кожної версії залишаються в межах 5% один від одного. Інакше перевірка не може дійти висновку, як і тоді, коли будь-який запит заблоковано, він завершується невдало чи показує перевірку на бота або коли заголовок змінюється між однаковими запитами.

Обмеження та джерела

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

Упевненість: Середня, бо динамічне віддавання виводиться з порівняння контенту, а не оголошується сайтом.

Джерела

Редакційна перевірка: 29 вересня 2026