Источник картинки https://developers.google.com/searchВ данной статье мы рассмотрим что такое HTTP-заголовки, как с их помощью управлять индексацией страниц, указывать каноничные и альтернативные версии страниц на других языках, а также косвенно снижать нагрузку на серверы больших сайтов. Спойлер: все это используется не часто и в основном в Google. Однако часть этих способов работают в Яндекс и Bing. Также важно знать об HTTP-заголовках при проведении SEO аудита.Сергей ГороховSEO специалист, продвигаю сайты с 2009 года, работаю с западными рынками с 2019 года. Пишу статьи. Развиваю канал о зарубежном SEO https://t.me/goburzhseoЧто вообще такое HTTP-заголовки?HTTP-заголовки (HTTP Headers) - это информация, которой обмениваются сервер и клиент (ваш браузер, например). Обычно в ней содержатся сведения о запрошенной странице, сервере, браузере и многом другом.Скриншот HTTP-заголовков ответа сайта johnmu.comВы можете посмотреть HTTP-заголовки в сервисе bertal.ru, в Chrome по Ctrl+Shift+I и в других инструментах.HTTP Headers в Google Chrome в инструменте разработчикаКакие полезные для SEO директивы можно передать через HTTP-заголовки?При помощи HTTP-заголовков ответа сервера можно передавать поисковым системам директивы, важные для индексации страниц сайта. Обычно эти сведения указываются в html коде страниц в разделе head при помощи тегов meta и link (meta robots, canonical, alternate hreflang).Что можно сообщить поисковым системах с их помощью:X-robots-tag - аналог meta robots. Следует ли индексировать страницу и переходить по ссылкам, а также многое другое.Canonical - аналог link canonical. Отвечает за указание каноничной страницы, т.е. той, которую следует показывать в Google и других поисковиках.Hreflang - аналог link alternate hreflang, отвечает за указание языковой версии страницы и ее альтернатив.Обработка запроса If-Modified-Since - изменился ли контент на странице с даты последнего визита бота. Если не изменился, то контент страницы не отдается, что снижает нагрузку на сервер.Преимущества1. Сведения из HTTP-заголовков передаются ботам поисковых систем еще до загрузки кода страницы. Соответственно никак не зависят от рендеринга страницы.2. HTTP-заголовки применяются для управления индексацией не html-файлов.3. Обработка HTTP-заголовка If-Modified-Since в запросе к серверу оказывает влияние на крупные сайты с большой нагрузкой со стороны умных ботов (которые поддерживают отправку If-Modified-Since) и косвенно ускоряет индексацию новых и обновленных страниц.Также следует помнить о HTTP-заголовках при проведении SEO аудита и обращать на них внимание при проблемах с индексацией страниц и каноничности. Ведь никогда не знаешь что использовал другой SEO-специалист до тебя.1. HTTP-заголовок X-Robots-TagX-Robots-Tag - это HTTP-заголовок ответа сервера, который применяется с целью управлением индексации страниц в поисковых системах. Поддерживается в Google, в Яндексе и в Bing.X-Robots-Tag выглядит в ответе сервера следующим образом:HTTP/1.1 200 OK Date: Tue, 25 May 2010 21:42:43 GMT (…) X-Robots-Tag: noindex, follow (…)В данном заголовке указывается тоже самое, что и в теге meta robots. Полный перечень возможных директив см. в первоисточнике .Пример директив для тега meta robotsВ каких случаях использовать X-Robots-Tag?В ряде случаев X-Robots-Tag более полезен, чем meta robots, а иногда и вовсе не имеет альтернатив:1. Удаление из индекса части разделов сайта и доменов целиком. Бывает, что быстрее на уровне сервера добавить строку в http-ответ, чем работать с бэкэндом.2. Трудности с настройкой meta name="robots". Например, команда разработчиков занята, утеряны доступы к CMS и т.п.3. Управление индексацией не html-файлов, например, pdf, xls и так далее. Здесь X-Robots-Tag не имеет альтернатив, ведь meta name="robots" можно использовать только для html страниц.2. HTTP-заголовок link с атрибутом rel="canonical"Это полный аналог тега link с атрибутом rel="canonical" в разделе head html кода страницы.Выглядит в ответе сервера следующим образом:HTTP/1.1 200 OK Date: Tue, 25 May 2010 21:42:43 GMT (…) Link: <https://www.domain.com/money-page/>; rel="canonical" (…)Поддерживается в Google, в Яндекс и скорее всего не поддерживается в Bing.В каких случаях использовать HTTP-заголовок link с rel="canonical"?1. Подклейка доменов, разделов или страниц, html код которых недоступен для Google. Например, на поддомене у вас есть онлайн-приложение на страницы которого ссылается большое количество доменов. Но приложение сделано на скриптах и при запросе страницы Googlebot не получает нужный html код. Как передать ссылочный вес на основной домен в этом случае? Выход - использовать HTTP-заголовок для подклейки страницы туда, где ссылки будут вам более нужны. Однако вероятность подклейки все равно будет далеко не 100%.2. Указание каноничной версии страницы в случае прочих сложностей настройки тега в head.3. Указание каноничной версии не html-файлов, например, pdf, xls, png и так далее. Эту возможность опять же можно использовать для перелива ссылочного веса, особенно если вы размещаете отраслевые отчеты, прогнозы или другую аналитику в pdf и получаете на них много качественных входящих ссылок.3. HTTP-заголовок link с rel="alternate" и hreflangЭто опять же аналог, но уже мета-тега link с rel="alternate" и hreflang. Поддерживается в Google, в Яндекс и Bing скорее всего не поддерживаются. Используется для указания альтернативных страниц на других языкахВыглядит в ответе сервера как строка, в которой все варианты страницы на разных языках перечисляются через запятую, а их атрибуты - через точку с запятой.HTTP/1.1 200 OK Date: Tue, 25 May 2010 21:42:43 GMT (…) Link: <https://example.com/file.pdf>; rel="alternate"; hreflang="en", <https://de-ch.example.com/file.pdf>; rel="alternate"; hreflang="de-ch", <https://de.example.com/file.pdf>; rel="alternate"; hreflang="de" (…)В каких случаях использовать HTTP-заголовок link с rel="alternate" и hreflangИспользуется в случае сложностей указания языковых версий другими способами. На всякий случай добавлю, что другие способы - это теги в head html кода и теги xhtml:link в sitemap.xml.4. Обработка If-Modified-Since в запросе и Last-Modified в ответе сервераВ случае If-Modified-Since речь именно про обработку HTTP-заголовка в запросе к серверу, а не про ответ сервера, как в предыдущих 3 пунктах.Бот или браузер отправляет серверу запрос, содержащий в заголовке If-Modified-Since дату и время последнего сканирования страницы. Если запрашиваемая страница не была обновлена за это время и на сервере настроена обработка If-Modified-Since, то по запросу отдается статус HTTP 304 (Not Modified) без html кода страницы. Таким образом экономится ресурс сервера и эта экономия становится заметной если на сайте более 500К-1М страниц. Если же страницы была изменена (был обновлен контент), то отдается HTTP код 200 (OK) и код страницы для скачивания и последующей переиндексации.Соответственно и в HTTP-заголовке ответа сервера Last-Modified должна передаваться корректная дата изменения страницы.В ответе сервера Last-Modified выглядит следующим образом:HTTP/1.1 200 OK (...) Last-Modified: Sat, 04 Nov 2023 13:53:24 GMT (…)Пост Джона Мюллера о данных HTTP-заголовках:Ссылка на сообщение, а также официальная информация от Google. В хелпе Яндекса содержится аналогичная информация:Следите за корректностью HTTP-заголовков. В частности, важно содержание ответа, который сервер отдает на запрос «if-modified-since» . Заголовок Last-Modified должен отдавать корректную дату последнего изменения документа.Яндекс СправкаЗаключениеВ большинстве случаев для SEO целей рекомендуется настраивать теги в разделе html кода страниц. Но если это сделать невозможно, а также в некоторых специфических случаях, настройка HTTP-заголовков ответа сервера будет хорошей помощью SEO специалисту. Настройка отдачи Last-Modified и обработки If-Modified-Since может снизить нагрузку на ваш сервер и серверы поисковых ботов, что косвенно может положительно повлиять на ускорение индексации новых страниц и переиндексации имеющихся.П.С. Заглядывайте на мой канал о зарубежном SEO https://t.me/goburzhseo, где я в более краткой форме делюсь информацией и практическими советами по продвижению в Googlet.meGo Бурж SEOРабочие методики, аналитика и лайфхаки для эффективного продвижения сайтов в зарубежном Google. Полезные статьи https://vc.ru/u/158215-sergey-gorohov Контакты https://t.me/gorsv86