Вы включили HTTP/2 в конфиге сервера, но сайт продолжает работать по HTTP/1.1. Или HTTP/2 работает в одном браузере, но не в другом. Или CDN не поддерживает протокол. Причина может быть в SSL, конфиге, CDN или браузере. Разберём, почему HTTP/2 не включается и как это исправить.
Что такое HTTP/2 и зачем он нужен
HTTP/2 — это версия протокола HTTP, которая улучшает скорость загрузки. Основные преимущества:
— мультиплексирование запросов;
— сжатие заголовков;
— приоритизация запросов;
— меньшее количество соединений.
HTTP/2 работает только по HTTPS в большинстве браузеров. Это важно: если сайт работает по HTTP, HTTP/2 может не включиться.
Причина 1: сайт работает по HTTP
Самая частая причина. Браузеры поддерживают HTTP/2 только по HTTPS. Если сайт работает по HTTP, протокол не включится.
Что проверить:
— работает ли сайт по HTTPS;
— есть ли редирект с HTTP на HTTPS;
— действителен ли SSL-сертификат.
Для проверки используйте проверка HTTP/2 — инструмент покажет, какой протокол используется.
Причина 2: HTTP/2 не включён в конфиге
Даже если сайт работает по HTTPS, HTTP/2 может быть не включён в конфиге сервера.
Что проверить:
— включён ли HTTP/2 в nginx или Apache;
— правильная ли директива;
— перезагружен ли сервер после изменений.
В nginx директива выглядит так: listen 443 ssl http2;. В Apache — через модуль mod_http2.
Причина 3: CDN не поддерживает HTTP/2
Если сайт работает через CDN, CDN должен поддерживать HTTP/2. Некоторые CDN не поддерживают протокол или требуют настройки.
Что проверить:
— поддерживает ли CDN HTTP/2;
— включён ли HTTP/2 в настройках CDN;
— какой протокол используется между CDN и origin;
— не отдаёт ли CDN HTTP/1.1 пользователям.
Причина 4: браузер не поддерживает
Некоторые старые браузеры не поддерживают HTTP/2. Если вы проверяете в старом браузере, протокол может не включиться.
Что проверить:
— поддерживает ли браузер HTTP/2;
— как ведёт себя браузер;
— есть ли различия между браузерами.
Современные браузеры поддерживают HTTP/2. Если протокол не работает, проблема, скорее всего, в сервере или CDN.
Причина 5: конфликт с другими настройками
Иногда HTTP/2 не включается из-за конфликта с другими настройками:
— старый SSL-протокол;
— неправильная цепочка сертификатов;
— прокси или балансировщик;
— настройки firewall.
Что проверить:
— поддержку SSL-протоколов;
— цепочку сертификатов;
— настройки прокси;
— настройки firewall.
Как найти причину
Пошаговая диагностика:
— проверьте, работает ли сайт по HTTPS;
— проверьте, включён ли HTTP/2 в конфиге;
— проверьте, поддерживает ли CDN HTTP/2;
— проверьте, поддерживает ли браузер HTTP/2;
— проверьте SSL и цепочку;
— проверьте прокси и firewall.
Как исправить
План действий:
— включить HTTPS;
— включить HTTP/2 в конфиге сервера;
— перезагрузить сервер;
— включить HTTP/2 в CDN;
— проверить SSL и цепочку;
— проверить результат.
Как проверить результат
Чек-лист:
— сайт работает по HTTPS;
— HTTP/2 включён;
— CDN поддерживает HTTP/2;
— браузер поддерживает HTTP/2;
— нет конфликтов с SSL и прокси;
— протокол используется.
Если нужно проверить сразу несколько параметров — HTTP/2, SSL, CDN — логично перейти к SEO-аудиту.
Частые ошибки
— сайт по HTTP;
— HTTP/2 не включён в конфиге;
— CDN не поддерживает;
— старый браузер;
— конфликт с SSL;
— отсутствие проверки после изменений.
FAQ
Почему HTTP/2 не включается?
Скорее всего, сайт работает по HTTP, HTTP/2 не включён в конфиге, CDN не поддерживает протокол или браузер старый.
Работает ли HTTP/2 по HTTP?
В большинстве браузеров HTTP/2 работает только по HTTPS. Для HTTP/2 нужен SSL-сертификат.
Как включить HTTP/2 в nginx?
Через директиву listen 443 ssl http2;. После изменений нужно перезагрузить nginx.
Поддерживает ли CDN HTTP/2?
Большинство современных CDN поддерживают HTTP/2. Проверьте настройки CDN и документацию.
Влияет ли HTTP/2 на SEO?
Косвенно. HTTP/2 ускоряет загрузку, что улучшает Core Web Vitals и пользовательский опыт.
Что делать, если HTTP/2 работает в одном браузере, но не в другом?
Проверьте поддержку браузера. Старые браузеры могут не поддерживать HTTP/2.
Может ли прокси мешать HTTP/2?
Да. Прокси или балансировщик может не поддерживать HTTP/2 или отдавать HTTP/1.1. Проверьте настройки.
Нужен ли HTTP/3?
HTTP/3 — следующая версия протокола. Он быстрее, но поддерживается не всеми. HTTP/2 — хороший выбор для большинства сайтов.
Как проверить, что HTTP/2 работает?
Используйте инструмент проверки HTTP/2. Он покажет, какой протокол используется.
Что делать, если HTTP/2 не работает после смены хостинга?
Проверьте конфиг сервера, CDN и SSL. Возможно, настройки не были перенесены.