Якщо ви виміряли свій розрив і побачили, що частина відвідувачів до аналітики не доходить, лікується це одним DNS-записом. Розбираємо, що таке збір статистики з власного домену на практиці, що саме робить CNAME і де починаються тонкощі.
Перша і третя сторона, якщо точно
Запит вважається стороннім, коли хост, до якого він іде, — не той сайт, де ви перебуваєте. Читаєте example.com, а скрипт тягнеться з some-analytics.io — це третя сторона. Такий хост лежить у публічних списках блокування, і розширення скасовує запит ще до відправлення.
Спрямуйте той самий скрипт на stats.example.com — і він стає першою стороною. Скрипт той самий, дані ті самі, сервер за ним той самий. Але хост тепер належить вашому сайту, а список блокування фізично не може перелічити всі піддомени всіх доменів інтернету. Запит проходить.
Механіка рівно така проста. Жодних хитрих обходів тут немає, і вони не потрібні.
Що робить CNAME
CNAME — це DNS-запис, який каже: «це ім'я — псевдонім он того імені». Ви заводите stats.example.com і спрямовуєте його на хост збору. Коли браузер резолвить stats.example.com, DNS тихо йде за псевдонімом і повертає адресу хоста збору.
Браузер вважає — і цілком справедливо, — що спілкується з хостом на вашому домені. Трафік доходить до сервісу аналітики. Нічого не маскується: ваш DNS відкрито повідомляє, куди вказує ім'я, і подивитися може будь-хто.
В Astrina це один запис:
stats.example.com. CNAME s.astrina.io.Далі ви міняєте хост лічильника в коді — і все. Налаштування аналітики видають готовий код уже з вашим хостом усередині, руками правити нічого.
Місця, на яких спотикаються
Сертифікат
Відвідувачі вантажитимуть https://stats.example.com, отже на це конкретне ім'я потрібен валідний TLS-сертифікат. Хост збору випустить його сам, щойно CNAME почне резолвитися, — але звідси випливає порядок дій: спершу DNS-запис, потім очікування. Випуск не миттєвий, а на ім'я, яке ще нікуди не вказує, сертифікат не видадуть у принципі.
Помаранчева хмара Cloudflare
Якщо DNS у вас у Cloudflare і запис проксіюється, Cloudflare «сплющує» CNAME: будь-який резолвер бачить лише A-записи Cloudflare, а псевдонім ззовні стає невидимим. Це нормально і це працює — але саме тому «мій CNAME зник» майже завжди не проблема, а перевірка через dig CNAME вас обдурить. Перевіряйте не запис, а те, чи відповідає хост.
Власний кеш
CDN або браузер, який запам'ятав старий 404 за цим хостом, віддаватиме його й після того, як усе налаштовано правильно. У будь-яку перевірку додавайте cache-buster у рядку запиту, інакше витратите годину на налагодження протухлої відповіді.
Чого це не робить
- Не обходить згоду і не чіпає Do Not Track. Потрібен був банер — потрібен і зараз.
- Не воскрешає відвідувачів із вимкненим JavaScript.
- Не робить анонімним те, що не було анонімним.
- Не допоможе, якщо ваша біда — боти, а не блокування. Це зовсім інший діагноз.
Воно робить одне: не дає списку хостів мовчки викреслювати людей, які про це не просили. Цього досить.
Як зрозуміти, що запрацювало
Не вірте зеленій галочці — зокрема нашій. Перевірте дві речі, які справді важать:
- Відкрийте
https://stats.example.com/a.jsу браузері. Скрипт має віддатися валідним HTTPS, без попередження про сертифікат. - Знову порівняйте добу переглядів із логом доступу, рівно як раніше. Розрив має скоротитися. Якщо ні — лічильник, найімовірніше, і досі дивиться на старий хост; перевіряйте код у джерелі сторінки, а не в налаштуваннях.
Доказ — це вимірювання. Усе інше — заяви.
В Astrina це доступно на будь-якому платному тарифі, а налаштування живе в параметрах сайту. Якщо ви ще не міряли свій розрив, почніть зі статті чому аналітика показує менше відвідувачів, ніж логи сервера. А якщо ви ведете клієнтські сайти, а не свій, — погляд агенції про те, як робити це на портфелі одразу.