Как посчитать Organic Traffic в SQL
Содержание:
Зачем Organic Traffic
Organic — самый дешёвый и устойчивый канал. Если organic 60% всего трафика — компания не зависит от рекламы. Если 10% — каждый рубль на ads, и при первом cut budget трафик пропадает.
Определение
Organic traffic — посещения с поисковых систем без paid-clicks (Google search, Яндекс, Bing, etc.).
В Yandex.Метрике / GA: source = 'organic', traffic source group = 'Organic Search'.
Базовый расчёт
Данные: sessions(visitor_id, source, medium, session_date).
SELECT
DATE_TRUNC('month', session_date) AS month,
COUNT(DISTINCT visitor_id) AS organic_visitors,
COUNT(*) AS organic_sessions
FROM sessions
WHERE medium = 'organic'
AND session_date >= '2026-01-01'
GROUP BY 1
ORDER BY 1;Доля от total
SELECT
DATE_TRUNC('month', session_date) AS month,
COUNT(*) AS total_sessions,
COUNT(*) FILTER (WHERE medium = 'organic') AS organic_sessions,
COUNT(*) FILTER (WHERE medium = 'organic')::NUMERIC * 100
/ NULLIF(COUNT(*), 0) AS organic_share_pct
FROM sessions
WHERE session_date >= '2026-01-01'
GROUP BY 1
ORDER BY 1;Если organic share падает — либо paid растёт (норма для scale), либо SEO просел.
По search engines
SELECT
source,
COUNT(DISTINCT visitor_id) AS visitors,
COUNT(*) AS sessions,
AVG(session_duration_sec) AS avg_duration
FROM sessions
WHERE medium = 'organic'
AND session_date >= CURRENT_DATE - INTERVAL '30 days'
GROUP BY source
ORDER BY visitors DESC;В РФ обычно Яндекс ~60-70%, Google ~25-35%.
Частые ошибки
Ошибка 1. Direct counts as organic. Юзер открыл закладку — это «direct». Не organic.
Ошибка 2. (not provided) keyword. Google не передаёт keyword (security). Не пытайтесь считать.
Ошибка 3. Сравнение с paid CR. Organic visitors часто convert лучше paid (intent-driven). Не путайте quality.
Ошибка 4. Branded vs non-branded. «company name» — это технически organic, но это brand awareness. Otdelka non-branded для real SEO.
Ошибка 5. Mobile vs desktop organic. Mobile часто доминирует. Decompose.
Связанные темы
- Как посчитать sessions в SQL
- Как посчитать bounce rate в SQL
- Как посчитать конверсию в SQL
- Как посчитать ROAS в SQL
FAQ
Какой % organic считается хорошим?
50-70% — здоровый. 30-50% — нормально. <20% — overly dependent on paid.
Direct = organic?
Технически нет. В отчётах часто объединяют как «non-paid».
Branded vs non-branded?
Branded — search «company name». Non-branded — «how to do X». Non-branded — реальный SEO impact.
Yandex или Google?
В РФ Yandex обычно главный. Сегментируйте обе.
Organic упал — что делать?
- Check Google/Yandex updates. 2) Sitemap / indexing health. 3) Backlinks decline. 4) Content quality.