Custom SEO KPIs in Looker Studio: The Complete 2026 Guide
A technical guide to building custom SEO KPIs in Looker Studio using calculated fields, including weighted position, share of voice, and engagement-adjusted metrics in 2026.
- The standard average position metric from GSC is misleading because it weights all queries equally regardless of impression volume.
- Share of voice SOV measures your visibility relative to all search appearances on your tracked queries.
- Clicks alone do not measure SEO success.
- Monitor position volatility with a KPI that measures week-over-week position change for tracked queries.
- Custom KPIs require validation against raw data every quarter.
Looker Studio's calculated fields and custom metrics turn raw SEO data into decision-ready KPIs. Default metrics like clicks and impressions are useful but insufficient for diagnosing search performance. Custom KPIs surface patterns that raw data obscures: position-weighted visibility, share of...
Weighted Visibility Score

The standard average position metric from GSC is misleading because it weights all queries equally regardless of impression volume. A query at position 5 with 10,000 impressions matters more than a query at position 2 with 50 impressions. But average position treats them identically.
Build a weighted visibility score as a calculated field:
Weighted Visibility = SUM(Clicks * (10 - Average Position))
This formula assigns higher scores to pages that generate clicks from competitive positions. The "10 - position" component normalizes the scoring: a position 1 query contributes 9 points per click, while a position 9 query contributes 1 point. For a normalized version that delivers a 0-to-100 score, compute:
Weighted Visibility Index = (SUM(Clicks * (10 - Position)) / SUM(Clicks * 9)) * 100
This index is comparable across pages and time periods regardless of traffic volume. A score of 100 means every click came from position 1. A score of 50 means the average click position was 5.5 [1].
Share of Voice from GSC Data

Share of voice (SOV) measures your visibility relative to all search appearances on your tracked queries. GSC provides impression data but not competitor impression share. For a practical SOV approximation, compute:
SOV = SUM(Impressions for tracked queries) / SUM(Total industry impressions)
Since GSC does not expose industry impressions, approximate total industry impressions by summing all impressions across your tracked query set and applying an estimated coverage ratio. A more precise method uses a reference keyword list from a rank tracking tool. Import the list into a Google Sheet, blend it with GSC data in Looker Studio, and compute:
SOV = SUM(Your brand impressions) / SUM(Total impressions for all brand competitors)
This blended approach requires competitive domain data exported from a rank tracker. Without that data, use the GSC-only approximation and label it "estimated SOV" in the dashboard [2].
Engagement-Adjusted Traffic Quality

Clicks alone do not measure SEO success. A click that bounces in 5 seconds adds no business value. Build an engagement-adjusted traffic metric by blending GSC with GA4:
Quality Clicks = SUM(Clicks) * (Engaged Sessions per Page / Total Sessions per Page)
This formula discounts GSC clicks by the GA4 engagement rate for each page. A page with 1,000 clicks and a 40% engagement rate produces 400 quality clicks. A page with 500 clicks and an 80% engagement rate produces 400 quality clicks as well. This KPI reveals which pages drive traffic that actually engages, versus pages that attract low-quality sessions [3].
Implement this in Looker Studio by creating a blend between GSC (page, clicks) and GA4 (landing page, engaged sessions, sessions). Add a calculated field in the blend output:
Engagement Rate = SUM(Engaged Sessions) / SUM(Sessions)
Quality Clicks = SUM(Clicks) * Engagement Rate
Competitive Position Change Delta
Monitor position volatility with a KPI that measures week-over-week position change for tracked queries. Create a calculated field in the GSC data source:
Position Delta = AVERAGE(Position) - LOOKUP(AVERAGE(Position), -7)
The LOOKUP function references the value from 7 days prior. Positive values indicate position drops. Negative values indicate position improvements. Add conditional formatting: green for negative delta (improvement), red for positive delta (decline). Use this KPI in a table chart sorted by absolute delta to surface the most volatile queries first.
Audit
Custom KPIs require validation against raw data every quarter. Confirm that calculated field formulas still reference correct field names after any GSC or GA4 schema updates. Test weighted visibility scores against manual position-CLICK calculations for a sample of 20 pages. Verify that engagement-adjusted quality clicks do not produce values exceeding total clicks. A broken calculated field returns null or zero values without any error indicator in Looker Studio. Build a validation page in your dashboard that shows raw source data alongside custom KPI values so discrepancies are visually obvious.
References
[1] T. Capper. "Better SEO Metrics: Weighted Visibility and Position Value." Moz Blog, 2025. https://moz.com/blog/better-seo-metrics-weighted-visibility
[2] A. Ginn. "Share of Voice for SEO: Measuring Brand Visibility in Search." Search Engine Land, 2025. https://searchengineland.com/share-of-voice-seo-measurement
[3] B. Kamal. "Connecting Search Visibility to Business Value." SparkToro Blog, 2026. https://sparktoro.com/blog/search-visibility-business-value