Required Datapoints
- Organic Sessions (or Users) from Search Engines
- Two time periods to compare (e.g., current month vs. last month)
SEO Traffic Growth Rate measures the rate of change in organic search traffic to your website over a defined time period. It helps track the effectiveness of your SEO strategy and content discoverability.
SEO Traffic Growth Rate is a key indicator of organic visibility, content relevance, and keyword footprint health, showing whether your site is gaining traction in search engines.
Its impact varies by funnel stage:
A positive trend reflects rising domain authority and effective content strategy. A plateau or decline may point to content decay, tech SEO issues, or search intent misalignment.
By segmenting by topic, intent, or funnel stage, you can optimize what to scale, refresh, or retire.
SEO Traffic Growth Rate informs:
These are the main factors that directly impact the metric. Understanding these lets you know what levers you can pull to improve the outcome
Actionable ideas to optimize this KPI, from fast, low-effort wins to strategic initiatives that drive measurable impact.
Activities commonly tied to improving or operationalizing this KPI.
| Activity | Description |
|---|---|
| SEO Strategy | SEO Strategy requires thorough research, strategic prioritization, and continuous optimization of website and content initiatives. It gives teams a clear plan for where to focus, how to sequence work, and what to measure. Relevant KPIs include Branded Search Volume and New Visitors. |
| Blog Optimization | Blog Optimization involves a strategic approach to optimizing blog articles and related resources, aiming to boost lead generation, customer acquisition, and user engagement. It improves performance by removing friction, testing changes, and scaling what works. Relevant KPIs include SEO Traffic Growth Rate. |
| Web Analytics | Web Analytics focuses on the systematic collection, measurement, and analysis of data generated by user interactions across web platforms and digital products. It turns signals into decisions, interventions, and measurable follow-up. Relevant KPIs include Return Visitor Rate to Product Pages and SEO Traffic Growth Rate. |
| Keyword Tracking | Keyword Tracking involves the systematic observation and analysis of specific keywords or search terms relevant to a company’s product, brand, or market. It turns signals into decisions, interventions, and measurable follow-up. Relevant KPIs include SEO Traffic Growth Rate. |
| Technical SEO Fixes | Technical SEO Fixes focuses on Modern go-to-market strategies depend on website discoverability and a seamless user experience across digital channels. It helps teams translate strategy into repeatable execution. Relevant KPIs include SEO Traffic Growth Rate. |
Organic search sessions in April: 18,500
In March: 15,000
Formula: (18,500 − 15,000) ÷ 15,000 = 23.3% SEO Traffic Growth Rate
This KPI is associated with the following stages in the AAARRR (Pirate Metrics) funnel:
This KPI is classified as a lagging Indicator. It reflects the results of past actions or behaviors and is used to validate performance or assess the impact of previous strategies.
This role is directly accountable for the KPI and is expected to drive progress and decisions around it.
These roles contribute directly to performance and typically partner on execution, reporting, or optimization.
These leading indicators influence this KPI and act as early signals that forecast future changes in this KPI.
These lagging indicators confirm, quantify, or amplify this KPI and help explain the broader business impact on this KPI after the fact.
How this KPI is structured in Cube.js, including its key measures, dimensions, and calculation logic for consistent reporting.
cube('OrganicTraffic', { sql: `SELECT * FROM organic_traffic`,
measures: { organicSessions: { sql: `organic_sessions`, type: 'sum', title: 'Organic Sessions', description: 'Total number of organic sessions from search engines.' }, seoTrafficGrowthRate: { sql: `( (SUM(CASE WHEN ${timeDimension} >= DATE_TRUNC('month', CURRENT_DATE) THEN organic_sessions ELSE 0 END) - SUM(CASE WHEN ${timeDimension} >= DATE_TRUNC('month', CURRENT_DATE - INTERVAL '1 month') AND ${timeDimension} < DATE_TRUNC('month', CURRENT_DATE) THEN organic_sessions ELSE 0 END)) / NULLIF(SUM(CASE WHEN ${timeDimension} >= DATE_TRUNC('month', CURRENT_DATE - INTERVAL '1 month') AND ${timeDimension} < DATE_TRUNC('month', CURRENT_DATE) THEN organic_sessions ELSE 0 END), 0) )`, type: 'number', title: 'SEO Traffic Growth Rate', description: 'Rate of change in organic search traffic over the current month compared to the previous month.' } },
dimensions: { id: { sql: `id`, type: 'string', primaryKey: true, title: 'ID', description: 'Unique identifier for each record.' }, timeDimension: { sql: `event_time`, type: 'time', title: 'Event Time', description: 'Time of the recorded organic session.' } }});Note: This is a reference implementation and should be used as a starting point. You’ll need to adapt it to match your own data model and schema