AWStats — це інструмент аналізу серверних логів, вбудований у cPanel. На відміну від Google Analytics, AWStats не потребує JS на сторінці і бачить усіх відвідувачів, включно з ботами і тими, хто блокує трекери, тому що читає не поведінку браузера, а необроблений access_log вебсервера.
Відкрити AWStats
cPanel → Metrics → AWStats → виберіть домен → View. Звіт формується не миттєво: оновлення даних відбувається раз на добу за кроном сервера, тому статистика за сьогодні може відставати на кілька годин. Вихідні файли access_log на більшості тарифів зберігаються 12 місяців, а вже пораховані звіти AWStats залишаються доступними навіть після того, як сирі логи буде видалено за ротацією — дані архівуються помісячно в окремі файли статистики.
Що показує AWStats
| Метрика | Опис |
|---|---|
| Unique Visitors | Унікальні IP за період |
| Visits | Візити (сесії) |
| Pages | Перегляди сторінок (HTML) |
| Hits | Усі HTTP-запити (включно з картинками) |
| Bandwidth | Обсяг переданих даних |
Різниця між Pages і Hits зазвичай становить 10–30 разів: одна HTML-сторінка інтернет-магазину тягне за собою десятки картинок товарів, файли CSS, шрифти і скрипти, і кожен такий запит AWStats теж зараховує як Hit. Якщо після оптимізації зображень кількість Hits різко впала, а Pages лишилося колишнім — це добра ознака, отже браузери стали частіше брати ресурси з кешу замість повторного завантаження з сервера.
Корисні розділи AWStats
- Countries — звідки приходять відвідувачі
- Referrers — з яких сайтів переходять
- Search Keyphrases — пошукові запити (частково)
- Robots/Spiders — активність ботів
- 404 Errors — неіснуючі сторінки
Розділ Search Keyphrases майже порожній на сучасних сайтах — з 2013 року Google та інші пошукові системи передають пошуковий запит у рефері лише в рідкісних випадках, тому AWStats бачить лише поодинокі фрази замість повної картини. Для повноцінного аналізу запитів, за якими сайт знаходять у пошуку, потрібна Google Search Console, а не серверні логи.
Типова проблема: трафік за Cloudflare чи іншим CDN
Якщо сайт підключений до Cloudflare, реальний IP відвідувача до сервера не доходить — в access_log замість нього потрапляє IP edge-вузла Cloudflare. Рядок лога виглядає приблизно так:
104.23.98.12 - - [24/Sep/2026:10:12:03 +0000] "GET /catalog/ HTTP/1.1" 200 4821
"https://example.com/" "Mozilla/5.0 ..."
Унаслідок цього AWStats показує розділ Countries майже цілком як один регіон дата-центру Cloudflare, а Unique Visitors різко занижується — тисячі різних людей схлопуються в десяток IP-адрес edge-серверів. Рішення — увімкнути модуль mod_remoteip чи аналогічну опцію відновлення реального IP в налаштуваннях CDN, тоді до лога потрапить заголовок CF-Connecting-IP, а не адреса проксі. На практиці це виглядає так: до увімкнення модуля звіт Countries показує 90% візитів зі США просто тому, що там стоїть найближчий до вашого сервера edge-дата-центр Cloudflare, а після виправлення розподіл країн раптово збігається з реальною географією аудиторії сайту.
AWStats vs Google Analytics
| Критерій | AWStats | Google Analytics |
|---|---|---|
| Джерело даних | Серверні логи | JavaScript трекер |
| Боти | Бачить | Не бачить |
| AdBlock | Бачить | Не бачить |
| Деталізація | Базова | Глибока |
| Реальний час | Ні (раз на добу) | Так |
Цифри AWStats майже завжди вищі за Google Analytics — AWStats рахує ботів і crawler'ів як повноцінні візити. Для аналізу реальної поведінки живих людей потрібен GA4, а AWStats краще використовувати як швидку перевірку «сайт взагалі хтось відкриває» без налаштування лічильника. Гарний робочий підхід — тримати обидва інструменти паралельно: GA4 для маркетингу і воронок продажів, AWStats як незалежне джерело, яке продовжить писати статистику, навіть якщо розробник випадково видалить код лічильника Google зі сторінки під час чергового оновлення теми.
Коли AWStats не підходить
- Односторінкові застосунки (SPA) — переходи між екранами відбуваються через JavaScript-роутер без нових HTTP-запитів, і AWStats бачить лише один запит на завантаження index.html
- Потрібні цілі та конверсії (замовлення, реєстрації) — AWStats рахує лише факт запиту сторінки, а не бізнес-подію
- Потрібна сегментація аудиторії за пристроями, віком, джерелами реклами — таких зрізів у серверних логах просто немає
- Потрібна фільтрація власного тестового трафіку — AWStats не вміє виключати IP-адреси розробників динамічно, лише через ручне переналаштування
Перевірка результату
# Порівняти кількість запитів до головної сторінки за сьогодні напряму за логом
grep "$(date +%d/%b/%Y)" /home/user/access-logs/example.com | grep -c "GET / HTTP"
Якщо число з grep помітно ближче до реальності, ніж те, що показує AWStats за той самий день, — найімовірніше, звіт AWStats ще не оновився за кроном, а не зламаний. Детальніше про те, як рахувати хіти за логами вручну і шукати в них помилки 500 — у статті логи помилок у cPanel.