Динамический показ

Если настроен динамический показ, сервер отправляет в ответ на запрос определенного URL разные варианты кода HTML и CSS. Выбирая нужный вариант, система учитывает агент пользователя.

При динамическом показе не сразу становится ясно, что HTML-код конкретного сайта специально изменяется, когда запросы поступают от мобильных агентов пользователя (мобильный контент "скрыт", если страницы сканирует агент пользователя для компьютеров). Для этого можно использовать HTTP-заголовок Vary.

Иллюстрация того, как работает динамический показ
Динамический показ: один URL, разный код для разных устройств.

Кратко

  • Используйте HTTP-заголовок Vary, чтобы сигнализировать об изменениях в зависимости от агента пользователя.
  • Правильно распознавайте строки агентов пользователя.

HTTP-заголовок Vary

HTTP-заголовок Vary обладает двумя полезными и важными характеристиками:

  • Он сообщает кеширующим прокси-серверам (которые используются, в частности, интернет-провайдерами), что при принятии решения о показе страницы из кеша необходимо учитывать агента пользователя. Без HTTP-заголовка Vary система может ошибочно показать пользователям мобильных устройств версию HTML-страницы для обычных компьютеров и наоборот.
  • Благодаря ему робот Googlebot быстрее находит контент, оптимизированный для мобильных устройств, поскольку корректный заголовок Vary учитывается при сканировании URL адаптированных страниц.

HTTP-заголовок Vary входит в ответ сервера на такие запросы:

HTTP/1.1 200 OK
    Content-Type: text/html
    Vary: User-Agent
    Content-Length: 5710
    (... rest of HTTP response headers...)
    

Заголовок Vary сообщает браузеру, что содержание ответа будет зависеть от агента пользователя, запросившего страницу. Если ваш сервер уже использует HTTP-заголовок Vary, то вы можете добавить в соответствующий список элемент User-Agent.

Правильное определение агента пользователя

При определении агента пользователя (браузера или другой программы, с которой работает посетитель) зачастую возникают ошибки. Вот типичные причины этого:

  1. Агенты пользователя распознаются путем их сравнения со строками (или подстроками) агентов из специального списка. Его необходимо регулярно проверять и обновлять, поскольку в противном случае новые агенты не будут определяться. Большинство таких списков не поддерживается должным образом и устаревает, в результате чего посетители сайтов сталкиваются с проблемами.
  2. При сопоставлении данные агента пользователя могут не совпадать со сведениями в списке, и нередко браузер настольного компьютера определяется как приложение для мобильного устройства и наоборот. По этой же причине планшетные ПК зачастую распознаются сайтами как смартфоны. Определяя браузер посетителя, выполняйте поиск строк, свойственных именно приложениям для смартфонов. Например, ищите не только слово Android, характерное для мобильных приложений в целом, но и слово Mobile. Более подробную информацию вы найдете в нашем блоге.

  3. Ещё одна причина проблем с определением браузеров – маскировка. Чтобы опознать браузер, сайт ищет в строке агента пользователя название устройства с целью определить его тип или класс. Настраивать сайт на обнаружение робота Googlebot не следует. Все агенты пользователя Googlebot сообщают о себе как о конкретных мобильных устройствах, и сайт должен работать с этими роботами точно так же, как и с самими устройствами.

    Предварительная отрисовка контента перед отправкой поисковым роботам, таким как Googlebot, не считается маскировкой, если эта функция настроена корректно.