Referrer-policy заголовок: как работает и влияет на передачу реферера

Referrer-Policy: что это и зачем вообще заморачиваться

Если упростить до минимума, заголовок Referrer-Policy — это настройка, которая говорит браузеру:
«Какую именно информацию о том, откуда пришёл пользователь, можно передавать дальше?».

Когда человек кликает по ссылке с вашего сайта на другой ресурс, браузер обычно отправляет HTTP-заголовок `Referer` (да, историческая опечатка) — адрес страницы-источника.
Заголовок Referrer-Policy определяет, сколько деталей из этого адреса будет видно:

- полный URL со всеми параметрами;
- только домен;
- ничего вообще.

И вот здесь начинается самое интересное: от выбранной политики зависит защита данных и SEO с помощью referrer policy. Можно случайно:

- слить конфиденциальные параметры в URL;
- сломать аналитику;
- испугать партнёров подозрительными реферами.

Основные режимы Referrer-Policy по-человечески

Не будем переписывать документацию, разберёмся по сути, как работает Referrer-Policy заголовок в реальных сценариях.

no-referrer

Браузер вообще не отправляет Referer.

Плюсы:
- максимальная приватность;
- никакие параметры, токены, UTM-метки не утекут.

Минусы:
- статистика переходов «ломается» — внешние сайты не видят, откуда к ним пришёл трафик;
- партнёрские программы и рекламные площадки могут быть недовольны.

Подходит, если у вас закрытый сервис, внутренние панели, CRM и вам все равно, кто что увидит вне вашей системы.

no-referrer-when-downgrade

Это старое поведение по умолчанию у многих браузеров:

- при переходе с HTTPS на HTTPS — отправляется полный Referer;
- с HTTPS на HTTP — реферер не отправляется.

С точки зрения безопасности — так себе компромисс. Для современного интернета считается устаревшим подходом.

origin

Отправляем только «происхождение», то есть схему, домен и порт:

- было: `https://site.ru/catalog/tovary/?utm_source=google`
- станет: `https://site.ru/`

Плюсы:
- приватность на уровне страниц и параметров;
- при этом видно, с какого домена пришёл пользователь — аналитика хоть и грубая, но жива.

Часто выбирают для корпоративных сайтов, лендингов, документации.

strict-origin-when-cross-origin

Один из наиболее адекватных современных вариантов, если нужны и безопасность, и данные:

- переходы внутри одного домена — с полным URL;
- переходы на другие домены — отправляется только origin;
- с HTTPS на HTTP — реферер не отправляется.

То, что чаще всего попадает в раздел referrer policy best practices для сайта в современной документации и гайдлайнах.

strict-origin / same-origin / unsafe-url

Коротко:

- `same-origin` — отправляем реферер только при переходах внутри того же домена.
- `strict-origin` — только origin, и только при переходах между защищёнными страницами (HTTPS → HTTPS).
- `unsafe-url` — всегда отправляем полный URL, со всеми параметрами, всем подряд. В 2025 году почти всегда плохая идея.

Referrer-Policy и SEO: где грань между приватностью и аналитикой

Миф: «чем меньше мы отправляем реферер, тем лучше для SEO».
На деле всё чуть сложнее.

Поисковые системы вроде Яндекса и Google и так часто скрывают часть реферера по своим причинам, но настройка заголовка Referrer-Policy тоже влияет:

- при жёсткой политике (`no-referrer`) внешние сайты не увидят, что к ним приходят пользователи именно от вас;
- сложнее доказывать партнёрам и рекламодателям эффективность размещения ссылок;
- анализ воронок, сквозная аналитика и атрибуция в целом становятся менее точными.

Если вы ведёте активное SEO-продвижение и работаете с рекламой, чаще всего разумнее выбрать политику вроде `strict-origin-when-cross-origin`.
Она даёт:

- приватность параметров (включая UTM и возможные ID пользователей);
- видимость домена-источника;
- предсказуемое поведение в разных браузерах.

Настройка заголовка Referrer-Policy: общие принципы

Вариантов внедрить политику несколько:

- через заголовки сервера (Nginx, Apache и др.);
- через `` в HTML;
- через настройки CDN или reverse-proxy.

Рекомендуется именно серверный вариант: он надёжнее и не зависит от HTML-разметки.

Что стоит сделать перед внедрением

- Проанализировать, где у вас в URL встречаются конфиденциальные данные:
- токены авторизации;
- e-mail в строке запроса;
- session-id;
- внутренние ID клиентов.
- Понять, какие внешние сервисы завязаны на реферер:
- платёжные системы;
- партнёрские программы;
- аналитика третьих сторон;
- виджеты и SaaS-сервисы.

После этого станет ясно, насколько жёстко вы можете ограничить передачу данных.

Настройка заголовка Referrer-Policy в Nginx

Теперь к конкретике. Настройка заголовка referrer policy nginx делается обычно в блоке `server` или `location`.

Пример (анализируем безопасный, практичный вариант):

```nginx
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
```

Пояснения по сути, а не по синтаксису:

- `strict-origin-when-cross-origin` — баланс безопасности и аналитики;
- `always` — заголовок будет добавлен и к успешным, и к ошибочным ответам (например, 404, 500), что снижает «дыры» в поведении.

Если у вас несколько сайтов или поддоменов, проверьте:

- нет ли конфликтующих заголовков в других конфигурационных файлах;
- не переопределяет ли что-то заголовки на уровне CDN (Cloudflare, Fastly и др.).

Частая ошибка при настройке в Nginx

Новички нередко:

- ставят одновременно разные политики в разных `location`-блоках;
- «копипастят» старые конфиги с `unsafe-url`, не понимая последствий;
- забывают перезапустить Nginx или проверить конфиг через `nginx -t`.

Результат — в одних разделах сайта у вас безопасная политика, в других льётся полный URL с параметрами наружу. На стороне аналитики и партнёров это выглядит как непредсказуемое поведение.

Как настроить Referrer-Policy в Apache

Для Apache принцип тот же — настраиваем заголовок сервера. Включаем модуль:

```apache
LoadModule headers_module modules/mod_headers.so
```

И добавляем правило, например, в конфиг виртуального хоста или `.htaccess`:

```apache
Header always set Referrer-Policy "strict-origin-when-cross-origin"
```

На что обращать внимание, когда решаете, как настроить referrer policy в apache:

- не дублируйте правила в `.htaccess` и основном конфиге одновременно;
- убедитесь, что не стоит другая политика в более «верхнем» уровне конфигурации;
- посмотрите, не добавляет ли хостинг свои заголовки автоматически.

Распространённые ошибки в Apache

- Использование нескольких разных заголовков Referrer-Policy — браузер будет ориентироваться на последний, а вы будете думать, что работает «первый».
- Применение `unsafe-url` на публичных сайтах, особенно с HTTPS.
- Пренебрежение тестированием: в продакшен влетает конфиг, который ломает аналитику или партнёрские интеграции.

Meta-тег referrer: когда он вообще нужен

Использовать `` стоит только если:

- у вас нет доступа к настройкам сервера;
- сайт на каком-нибудь конструкторе без нормального управления заголовками.

Но есть нюансы:

- серверные заголовки имеют больший приоритет у некоторых браузеров;
- не все старые браузеры корректно обрабатывают meta-опцию;
- сложнее поддерживать единообразие, если у вас несколько шаблонов и макетов.

Для серьёзного проекта лучше один раз настроить заголовок на сервере, чем латать HTML.

Типичные ошибки новичков при работе с Referrer-Policy

Ошибка 1: «Поставлю no-referrer — и всё будет безопасно и круто»

Итог:

- вы теряете ценную информацию о путях пользователя;
- партнёры жалуются, что у них «пустые рефереры»;
- аналитике приходится гадать, как ходит трафик между вашими проектами.

Решение:

- перед выбором радикальной политики оцените бизнес-процессы;
- если нет явной причины, используйте более мягкие политики (`strict-origin-when-cross-origin`, `origin-when-cross-origin`).

Ошибка 2: Игнорирование внутренних URL с чувствительными данными

Когда referrer policy что это ещё не до конца понято, разработчики иногда:

- передают ID пользователя, e-mail или токен в строке запроса (`?user_id=...`);
- используют такие URL в ссылках на внешние ресурсы;
- оставляют политику по умолчанию, которая раскрывает полный URL.

В результате внешние сайты получают лишние личные данные.

Решение:

- не передавать чувствительные данные через GET-параметры;
- если это неизбежно, ужесточать политику хотя бы на этих разделах;
- проверять рефереры в логах и инструментах отладки.

Ошибка 3: Отсутствие единой стратегии для домена

Частая картина:

- одни разработчики настраивают заголовки в Nginx;
- другие — добавляют meta-теги;
- третьи — что-то включают в CDN.

Получается мешанина, где разные части сайта ведут себя по-разному.

Решение:

- выбрать единую стратегию Referrer-Policy для домена;
- описать её в технической документации;
- централизованно управлять заголовками (сервер или CDN).

Ошибка 4: Выбор политики без учёта SEO и аналитики

Как работает Referrer-Policy заголовок - иллюстрация

Иногда безопасность рассматривают изолированно от маркетинга:

- ставят agressive-политику, не обсудив её с SEO-специалистами и аналитиками;
- через месяц все удивляются, почему «по статистике стало меньше переходов с партнёров».

Решение:

- внедрять изменения в Referrer-Policy только после обсуждения с:
- SEO-специалистом;
- аналитиком;
- при необходимости — юристом по персональным данным.
- протестировать политику на небольшом сегменте трафика (через A/B в CDN либо на одном поддомене).

Ошибка 5: «Скопировал с чужого блога — значит, всё нормально»

То, что подходит соседнему проекту, может повредить вашему:

- у них нет платных партнёрских ссылок — у вас есть;
- у них внутренний сервис — у вас публичный маркетплейс;
- у них нет сложной аналитики, а у вас — сквозная с кучей источников.

Для кого-то `no-referrer` — осознанное решение, для другого — потеря части бизнеса.

Решение:

- анализировать не только синтаксис, но и последствия;
- рассматривать referrer policy best practices для сайта как ориентир, а не догму.

Практические рекомендации по выбору политики

Чтобы не утонуть в теории, можно ориентироваться на простые сценарии.

Если у вас контентный сайт, блог, медиа

Обычно важно:

- видеть источники трафика;
- не передавать лишние параметры наружу.

Подходящие варианты:

- `strict-origin-when-cross-origin` — универсальный выбор;
- `origin-when-cross-origin` — если критично сохранять больше информации при переходах между HTTPS и HTTP-доменами (хотя HTTP уже редкость).

Если у вас приложение с личными кабинетами и чувствительными данными

Приоритет — приватность и соответствие требованиям по данным.

Рассмотрите:

- `same-origin` для защищённых разделов;
- `strict-origin` или даже `no-referrer` для некоторых внутренних панелей, административных интерфейсов.

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

Если вы активно используете партнёрские программы

Здесь часто критично:

- чтобы партнёр видел чёткий реферер;
- не терялись переходы в статистике.

Компромисс:

- `strict-origin-when-cross-origin` — даёт домен, но скрывает хвосты URL;
- по договорённости с партнёрами можно обсуждать, достаточно ли им такой детализации.

Как проверить, что всё работает как задумано

Как работает Referrer-Policy заголовок - иллюстрация

После настройки не полагайтесь «на авось».

Полезные шаги:

- Откройте инструменты разработчика в браузере:
- вкладка Network;
- посмотрите любой запрос от страницы к внешнему ресурсу;
- убедитесь, что заголовок `Referer` выглядит так, как вы ожидали.
- Проверьте ответ сервера:
- в тех же DevTools удостоверьтесь, что в ответе есть заголовок `Referrer-Policy` с нужным значением.
- Протестируйте разные сценарии:
- переход внутри сайта;
- переход на внешний домен по ссылке;
- редиректы (особенно через HTTP→HTTPS и наоборот, если ещё где-то остался HTTP).

Итог: как подойти к Referrer-Policy без лишней боли

Если обобщить подход в несколько тезисов:

- Сначала разберитесь, что для вас важнее: максимум аналитики, максимум приватности или баланс.
- Не копируйте чужие настройки «как есть» — адаптируйте их под свои процессы.
- Для большинства современных сайтов разумным стартом будет `strict-origin-when-cross-origin`.
- Настраивайте политику на уровне сервера (Nginx/Apache), а не только в HTML.
- Избегайте крайностей вроде `unsafe-url`, если не понимаете, зачем они вам.

Так вы получите и защиту данных, и рабочую аналитику, а ваш заголовок Referrer-Policy будет не просто «галочкой в чек-листе безопасности», а реальным управляемым инструментом.

Прокрутить вверх