SEO & Website Traffic (New)
Monitor traffic trends and engagement metrics to identify companies experiencing growth or decline in their digital presence.
Overview
SEO & Website Traffic v2 signals reveal which companies are growing or struggling digitally — surfacing both opportunities and pain points across millions of domains.
We pull monthly traffic data, compute month-over-month and 3-month change percentages, and enrich every record with traffic source breakdown, engagement metrics, AI-platform referrals, top organic keywords, and a composite Digital Health Score.
Signals fire when traffic crosses significance thresholds (surges ≥25% MoM, declines ≤−30% MoM, or 3+ consecutive months of directional change). A baseline snapshot is also delivered for every domain so you have a current state record even when no significant change occurred.
What's new in v2
unique_visitors(estimated) with model tier disclosure- AI-platform traffic share (ChatGPT, Perplexity, etc.)
- Top organic keywords with volume, CPC, and estimated value
- Composite Digital Health Score (0–100) and 8 categorical health bands
- Country-level rank and category-level rank
- Per-source absolute visit counts (search_visits, direct_visits, etc.)
Available Subtypes
| Signal | Subtype Enum | Description |
|---|---|---|
| Traffic Surge | trafficSurge | Significant month-over-month traffic increase (≥25% MoM) |
| Traffic Decline | trafficDecline | Significant month-over-month traffic decrease (≤−30% MoM) |
| Sustained Growth | sustainedGrowth | 3 consecutive months of traffic increases |
| Sustained Decline | sustainedDecline | 3 consecutive months of traffic decreases |
| Baseline | baseline | Monthly snapshot — no significant change detected |
A single domain may produce multiple rows per batch when it qualifies for more than one subtype (e.g. a domain that grew 3 consecutive months and spiked +50% MoM will produce both sustainedGrowth and trafficSurge). Dedupe by company.domain if you want one row per company.
Schema
{
"signal_id": "e3a67666-d510-4edf-ae0e-56ea740e5993",
"batch_id": "cf11373a-8c2f-4f10-b9be-756d51bb51a6",
"signal_type": "website-traffic",
"signal_subtype": "trafficSurge",
"signal_name": "Website Traffic",
"detected_at": "2026-04-27T13:51:46Z",
"association": "company",
"company": {
"name": "Learn R, Python & Data Science Online",
"domain": "datacamp.com",
"linkedin_url": "linkedin.com/company/datacampinc",
"industries": ["science_and_education/science_and_education"],
"employee_count_low": 201,
"employee_count_high": 500,
"description": "Learn data skills 1x faster..."
},
"data": {
"summary": "datacamp.com traffic surged 47% MoM to 8.1M monthly visits.",
"relevance": 87,
"traffic": {
"2026-01-01": 6234155,
"2026-02-01": 5510887,
"2026-03-01": 8094470
},
"snapshot_date": "2026-03-01T00:00:00+00:00",
"unique_visitors": 3854509,
"visits_unique_ratio": 2.10,
"uv_model": "moderate",
"search_visits": 4856682,
"direct_visits": 2185507,
"referral_visits": 728502,
"social_visits": 242833,
"mail_visits": 80946,
"change_mom_pct": 46.9,
"change_3mo_pct": 29.8,
"consecutive_months": 1,
"trend": "fluctuating",
"traffic_band": "established",
"global_rank": 8542,
"country_rank": 2103,
"country_rank_country": "US",
"category": "science_and_education/science_and_education",
"category_rank": 32,
"website_title": "Learn R, Python & Data Science Online",
"website_description": "Learn data skills 1x faster...",
"small_website": false,
"traffic_sources": {
"direct": 0.27, "search": 0.60, "referral": 0.09,
"social": 0.03, "paid": 0.01, "mail": 0.00
},
"engagement": {
"bounce_rate": 0.48,
"pages_per_visit": 4.92,
"avg_visit_duration_seconds": 156
},
"top_countries": {
"US": 0.34, "IN": 0.12, "GB": 0.05, "DE": 0.03, "BR": 0.03
},
"top_keywords": [
{ "name": "datacamp", "volume": 165000, "cpc": 4.10, "estimated_value": 8520 },
{ "name": "python tutorial", "volume": 89000, "cpc": 2.30, "estimated_value": 4200 }
],
"ai_traffic": {
"total_visits": 12340,
"traffic_share": 0.0015,
"top_platforms": ["chatgpt", "perplexity"],
"top_prompts": []
},
"search_dependency": "high",
"search_dependency_detail": "High search dependency at 60% of total traffic.",
"brand_strength": "strong",
"brand_keyword_ratio": "3/5",
"brand_strength_detail": "Strong brand recognition with 27% direct traffic. Brand keyword ratio: 3/5.",
"engagement_quality": "moderate",
"engagement_quality_score": 58,
"engagement_quality_detail": "Moderate engagement (58/100) with 48% bounce rate, 4.9 pages per visit, 156-second average duration.",
"social_traffic_level": "low",
"social_traffic_detail": "Low social traffic at 3% of total visits.",
"referral_strength": "moderate",
"referral_strength_detail": "Moderate referral strength at 9% of traffic.",
"ai_traffic_level": "minimal",
"ai_traffic_detail": "Minimal AI traffic at 0.15% of total visits.",
"geo_concentration": "diversified",
"geo_concentration_detail": "Diversified traffic: US (34%), IN (12%), GB (5%).",
"digital_health_score": 71,
"digital_health_label": "good",
"digital_health_detail": "Score 71: Engagement 58/100 (25%), Volume 88/100 (20%), Brand 80/100 (15%), Diversification 72/100 (15%), Rank 75/100 (15%), AI Readiness 15/100 (10%)."
}
}Field Reference
Core Fields
| Field | Type | Description |
|---|---|---|
signal_id | string (UUID) | Unique identifier for this signal |
batch_id | string (UUID) | Batch this signal was delivered in |
signal_type | string | Always "website-traffic" |
signal_subtype | enum | trafficSurge, trafficDecline, sustainedGrowth, sustainedDecline, baseline |
signal_name | string | Always "Website Traffic" |
detected_at | string (ISO 8601) | When the signal was detected |
association | string | Always "company" |
Company Object
| Field | Type | Description |
|---|---|---|
company.name | string | Company name (page title or DB name) |
company.domain | string | Company website domain |
company.linkedin_url | string | LinkedIn company URL |
company.industries | array[string] | Industry classifications |
company.employee_count_low | integer | Lower bound of employee count |
company.employee_count_high | integer | Upper bound of employee count |
company.description | string | Company description |
Data Object — Traffic & Change
| Field | Type | Description |
|---|---|---|
data.summary | string | Human-readable summary of the signal |
data.relevance | float | Relevance score (0–100) |
data.traffic | object | Monthly estimated visit counts keyed by date (YYYY-MM-DD, always the 1st of the month). Always 3 months. Example: {"2026-01-01": 6234155, "2026-02-01": 5510887, "2026-03-01": 8094470} |
data.snapshot_date | string (ISO 8601) | Reference month — first day of the latest month in traffic |
data.change_mom_pct | float | Latest month-over-month change percentage |
data.change_3mo_pct | float | 3-month change percentage (newest vs oldest in traffic) |
data.trend | enum | consecutive_growth, consecutive_decline, or fluctuating |
data.consecutive_months | integer | Number of consecutive months in the same direction (1–3) |
data.traffic_band | enum | Traffic size category: emerging, developing, established, major |
data.small_website | boolean | Convenience flag — true for low-traffic / emerging-band domains |
Data Object — Unique Visitors (estimated)
unique_visitors is a derived estimate, not measured. The pipeline applies a multiplier to total visits based on engagement signals (bounce rate, pages per visit, session duration). The uv_model field discloses which tier was used so you can interpret the value appropriately.
| Field | Type | Description |
|---|---|---|
data.unique_visitors | integer | Estimated unique visitors for the snapshot month |
data.visits_unique_ratio | float | Visits-to-UV multiplier applied (e.g. 2.10 means 2.10 visits per unique visitor) |
data.uv_model | enum | Estimation tier: low, light, moderate, high |
uv_model | Ratio range | When applied |
|---|---|---|
low | ~1.15× (flat fallback) | No engagement signal available |
light | 1.27 – 1.83 | Mild engagement (~2 pages/visit) |
moderate | 1.77 – 2.53 | Real repeat visitors (~5 pages/visit) |
high | 2.63 – 3.67 | High-return-rate site (~8+ pages/visit) |
For change-detection use cases (surge/decline signals) unique_visitors mirrors visits trend and is reliable directionally. Treat the absolute value as a derived estimate.
Data Object — Per-Source Visit Counts
Absolute visits attributed to each source for the snapshot month. Sum equals total monthly visits.
| Field | Type | Description |
|---|---|---|
data.search_visits | integer | Monthly visits from search (organic + paid) |
data.direct_visits | integer | Monthly visits from direct |
data.referral_visits | integer | Monthly visits from referrals |
data.social_visits | integer | Monthly visits from social |
data.mail_visits | integer | Monthly visits from email |
Data Object — Rank & Category
| Field | Type | Description |
|---|---|---|
data.global_rank | integer | Lower numbers indicate higher traffic. null if unavailable |
data.country_rank | integer | Rank within country_rank_country |
data.country_rank_country | string | ISO 3166-1 alpha-2 country code for the country rank |
data.category | string | Industry category slug (e.g. finance/investing). null if unavailable |
data.category_rank | integer | Rank within category |
data.website_title | string | <title> tag of the homepage |
data.website_description | string | Meta description of the homepage |
Traffic Sources Object
Breakdown of where a company's website visitors originate. Values are proportions (0–1) summing to approximately 1.0.
| Field | Type | Description |
|---|---|---|
data.traffic_sources.direct | float (0–1) | Visitors who typed the URL directly, used a bookmark, or clicked a saved link — no external referring source. High direct traffic typically indicates strong brand awareness |
data.traffic_sources.search | float (0–1) | Visitors arriving via search engines. Includes both organic and paid search ads |
data.traffic_sources.referral | float (0–1) | Visitors who clicked a link on another website to reach this domain — affiliate links, content partners, news coverage, directory listings |
data.traffic_sources.social | float (0–1) | Visitors arriving from social platforms (LinkedIn, X/Twitter, Facebook, Reddit, etc.), organic and paid |
data.traffic_sources.paid | float (0–1) | Visitors from display advertising and paid referral channels — banner ads, ad networks, programmatic display. Does not include paid search (under search) or paid social (under social) |
data.traffic_sources.mail | float (0–1) | Visitors who clicked a link in an email, attributed via webmail clients (Gmail, Yahoo Mail, Outlook.com). Desktop email app clicks are typically attributed to direct |
Engagement Object
Metrics describing how visitors interact with the website once they arrive.
| Field | Type | Description |
|---|---|---|
data.engagement.bounce_rate | float (0–1) | Proportion of visitors who view only one page without interaction. 0.62 = 62% bounce. Typical B2B websites range 0.25–0.70 |
data.engagement.pages_per_visit | float | Average number of pages viewed per session |
data.engagement.avg_visit_duration_seconds | integer | Average time on site per session in seconds. Bounced visits count as 0 and are included in the average |
Top Countries Object
Geographic distribution of website visitors. Keys are ISO 3166-1 alpha-2 country codes, values are proportions (0–1).
| Field | Type | Description |
|---|---|---|
data.top_countries | object | Country-level traffic distribution. Example: {"US": 0.65, "GB": 0.15, "DE": 0.10}. Only countries with meaningful traffic share are included |
Top Keywords Array
Top organic search keywords driving traffic to the domain. Up to 5 entries.
| Field | Type | Description |
|---|---|---|
data.top_keywords[].name | string | The keyword phrase |
data.top_keywords[].volume | integer | Estimated monthly search volume |
data.top_keywords[].cpc | float | Average cost-per-click for this keyword in paid search (USD). May be null for non-commercial keywords |
data.top_keywords[].estimated_value | integer | Estimated organic traffic value (USD) — what equivalent paid traffic would cost |
AI Traffic Object
Visits arriving from AI assistants (ChatGPT, Perplexity, Gemini, Claude, etc.) — increasingly important as AI-mediated discovery grows.
| Field | Type | Description |
|---|---|---|
data.ai_traffic.total_visits | integer | Estimated visits from AI platforms in the snapshot month |
data.ai_traffic.traffic_share | float (0–1) | AI traffic as a share of total traffic |
data.ai_traffic.top_platforms | array[string] | AI platforms driving the most referrals (e.g. ["chatgpt", "perplexity"]) |
data.ai_traffic.top_prompts | array[object] | Top user prompts that referred traffic, when available |
Digital Health Score
A composite 0–100 score measuring overall digital presence quality. Computed from 6 components:
- Engagement (25%) — bounce rate, pages per visit, session duration
- Volume (20%) — total monthly traffic
- Brand (15%) — direct traffic share + brand-keyword ratio
- Diversification (15%) — geographic and source diversification
- Rank (15%) — global rank percentile
- AI Readiness (10%) — AI traffic share
| Field | Type | Description |
|---|---|---|
data.digital_health_score | integer (0–100) | Composite score |
data.digital_health_label | enum | poor (≤29), fair (30–54), good (55–74), excellent (75+) |
data.digital_health_detail | string | Human-readable component breakdown |
Categorical Health Bands
Each band exposes a categorical level, a 0–100 score where applicable, and a human-readable detail string for direct use in messaging.
| Field | Type | Description |
|---|---|---|
data.engagement_quality | enum | low, moderate, high |
data.engagement_quality_score | integer (0–100) | Engagement composite |
data.engagement_quality_detail | string | Human-readable detail |
data.brand_strength | enum | weak, moderate, strong |
data.brand_keyword_ratio | string | Brand keywords in top 5 organic (e.g. "3/5") |
data.brand_strength_detail | string | Human-readable detail |
data.search_dependency | enum | low, moderate, high — what share of traffic comes from search |
data.search_dependency_detail | string | Human-readable detail |
data.social_traffic_level | enum | low, moderate, high |
data.social_traffic_detail | string | Human-readable detail |
data.referral_strength | enum | weak, moderate, strong |
data.referral_strength_detail | string | Human-readable detail |
data.ai_traffic_level | enum | none, minimal, emerging, significant |
data.ai_traffic_detail | string | Human-readable detail |
data.geo_concentration | enum | highly_concentrated, moderately_concentrated, diversified. May be null when country data is unavailable |
data.geo_concentration_detail | string | Human-readable detail |
Example Output
"Noticed DataCamp's traffic surged 47% month-over-month to 8M monthly visits — and their Digital Health Score sits at 71 with strong brand strength and diversified geographic mix. That kind of acceleration paired with high direct traffic typically signals broader growth investment. Would love to share how we're helping similar education platforms capitalize on momentum like this."
Coverage
- Refresh: Monthly
- Coverage: 4M+ companies (CB Insights universe)
- Best for: Marketing agencies, sales intelligence platforms, SEO tools, advertising platforms, analytics vendors, M&A diligence
Data Sourcing Notes
- Traffic, engagement, rank, category, keywords, AI referrals, geo distribution
- Unique visitors — derived estimate (see
uv_model) - Firmographics (LinkedIn URL, employee count, industries) — joined from Autobound's company database
- Health scores and categorical bands — computed by Autobound's pipeline from the raw metrics above
Contact [email protected] to get started.
Updated about 4 hours ago
