{"id":14277,"url":"\/distributions\/14277\/click?bit=1&hash=17ce698c744183890278e5e72fb5473eaa8dd0a28fac1d357bd91d8537b18c22","title":"\u041e\u0446\u0438\u0444\u0440\u043e\u0432\u0430\u0442\u044c \u043b\u0438\u0442\u0440\u044b \u0431\u0435\u043d\u0437\u0438\u043d\u0430 \u0438\u043b\u0438 \u0437\u043e\u043b\u043e\u0442\u044b\u0435 \u0443\u043a\u0440\u0430\u0448\u0435\u043d\u0438\u044f","buttonText":"\u041a\u0430\u043a?","imageUuid":"771ad34a-9f50-5b0b-bc84-204d36a20025"}

Как управлять индексацией страниц и файлов через HTTP-заголовки?

Источник картинки 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-Tag

X-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-заголовках:

В хелпе Яндекса содержится аналогичная информация:

Следите за корректностью HTTP-заголовков. В частности, важно содержание ответа, который сервер отдает на запрос «if-modified-since» . Заголовок Last-Modified должен отдавать корректную дату последнего изменения документа.

Яндекс Справка

Заключение

В большинстве случаев для SEO целей рекомендуется настраивать теги в разделе html кода страниц. Но если это сделать невозможно, а также в некоторых специфических случаях, настройка HTTP-заголовков ответа сервера будет хорошей помощью SEO специалисту.

Настройка отдачи Last-Modified и обработки If-Modified-Since может снизить нагрузку на ваш сервер и серверы поисковых ботов, что косвенно может положительно повлиять на ускорение индексации новых страниц и переиндексации имеющихся.

П.С. Заглядывайте на мой канал о зарубежном SEO https://t.me/goburzhseo, где я в более краткой форме делюсь информацией и практическими советами по продвижению в Google

0
Комментарии
-3 комментариев
Раскрывать всегда