Блог Яндекс.Метрики

Почему может не определяться источник трафика

18 мая 2016, 16:41

Постепенно всё больше сайтов переходят на защищённое https-соединение и это, как ни странно звучит, вызывает неудобства у владельцев сайтов, ещё не перешедших на https. А именно, у тех сайтов, которые ещё не перешли на защищённое соединение, растёт доля прямых заходов.

С технической точки зрения, "Прямые заходы" - это обращения к страницам вашего сайта, при которых браузер посетителя не передал техническое поле "Referer". Обычно в этом поле содержится URL предыдущей страницы, с которой и был сделан переход на ваш сайт. Если поле отсутствует - значит предыдущей страницы не было: например, посетитель вручную ввёл адрес в адресную строку браузера.

Но не всё так просто. Организация, разрабатывающая стандарты интернета, W3C (World Wide Web Consortium) издала документ "Referrer Policy", дающий рекомендации о передаче поля "Referer" при переходе посетителем между разными типами сайтов. Документ ещё окончательно не утверждён, тем не менее большинство актуальных версий браузера уже поддерживают эти рекомендации.

Этот документ предписывает следующее поведение: реферер передаётся при переходе с http на любой тип сайта и при переходе с https на https, и только при переходе с https на http реферер не передаётся. Поведение вполне разумное: если вы покидаете безопасный контур https-сайтов, браузер не передаёт по открытым каналам (в нешифрованном виде) адрес последней посещённой вами страницы.

На практике, для владельцев сайтов это означает следующее: если ваш сайт всё ещё работает по http - вы не будете видеть источник перехода, если этот источник работает по защищённому https-соединению.

Самое лучшее решение в этой ситуации - перевести ваш сайт на защищённое соединение. Сейчас бесплатный сертификат шифрования можно быстро получить благодаря проекту Let's Encrypt - некоммерческому центру сертификации, поддержанному многими крупными представителями интернет-отрасли.

Если же вы находитесь с другой стороны проблемы - являетесь владельцем защищённого интернет-ресурса, но хотите, чтобы при переходе с вашего сайта поле Referer передавалось даже при переходе на незащищённый сайт - решение также существует. Вам следует специальным образом (meta referrer) разметить страницы сайта, с которых будет происходить переход на незащищённые ресурсы. Подробно о различных методах можно прочитать в том же документе "Referrer Policy" в разделе "Referrer Policy Delivery". По данным проекта "Can I use" такую разметку ссылок поддерживает уже более половины используемых браузеров.

7 комментариев
Подписаться на комментарии к посту
Еще бы Яндекс.Браузер нормально работал с https, например при редиректе с "www" на "без www" при соединении https ошибка "net::ERR_CERT_COMMON_NAME_INVALID". В хроме все отлично. Подобные проблемы замедляют переход сайтов на ssl.
Евгений Куршев (Яндекс)
19 мая 2016, 16:44
granwork,
Хоть мы и не Браузер, но всё-таки интересно разобраться. Можете привести какой-нибудь конкретный пример такого проблемного перехода?
Евгений Куршев (Яндекс),
для примера https://www.matteldolls.ru
Редирект сделан таким образом.
server {
listen 443 ssl;
server_name www.matteldolls.ru;
include /etc/nginx/conf.d/matteldolls_ssl.conf;
return 301 https://matteldolls.ru$request_uri;
}
Как понимаю сертификат проверяется раньше редиректа.
Евгений Куршев
23 мая 2016, 17:50
granwork,
Проблема с сертификатом и к Я.Браузеру никакого отношения не имеет.


По адресу https://www.matteldolls.ru отдаётся сертификат, валидный только для хоста matteldolls.ru:
> Subject: CN=matteldolls.ru
> X509v3 Subject Alternative Name:
>   DNS:matteldolls.ru
Без поддоменов. Т.е. для www.matteldolls.ru этот сертификат не валиден.
О чём и сообщают при переходе все браузеры (сходу проверил в Я.Браузере, Chrome, Chromium, Firefox).
Если Chrome вам об этом не сообщает - вероятно, вы однажды уже ответили ему "игнорировать эту проблему". Попробуйте Chrome на другом компьютере.


Startssl, услугами которого вы пользуетесь, позволяет бесплатно выписать сертификат и с поддоменами. Добавьте в процессе генерации запроса на сертификат поддомен "www" и всё получится.
granwork,
проблема здесь, действительно, с сертификатом. 
Евгений Куршев (Яндекс),


Пару месяцев назад писали Вам в поддержку по похожему поводу.
Кратко опишу проблему здесь.


Мы заметили переходы из поиска  на страницы наших сайтов, которые отображаются в метрике, как прямые: Но в log файле видно (по REFERER), что это переходы из поиска.


Доля таких переходов мала. Остальные переходы корректно идентифицируются как поисковые.



Получаем ответ:

Соответственно, реферер либо не передался (в случае, если переход не был из ПС Яндекс), либо был отброшен уже на Вашем сайте. Рекомендуем за дополнительным комментарием и возможным исправлением сложившейся ситуации обратиться к Вашему вебмастеру или другому специалисту.


Все проверили, с нашей стороны нет проблем. К тому же как писал, это только небольшая часть переходов не определяется.




Есть предположение перерастающее в уверенность, что проблема с режимом браузера "Инкогнито". Такое ощущение, что эти переходы делаются роботом в режиме инкогнито.


Можете проверить у себя, как метрика обрабатывает такие переходы? Передается ли реферер?
Евгений Куршев (Яндекс)
23 мая 2016, 17:39
brandy81,
Вы можете, зайдя на страницу в тех условиях, в которых, как вам кажется, есть проблема, запросить в консоли document.referrer и посмотреть, что там будет. Именно это поле использует код Метрики.