---
title: "SEO for data analysts: forecasts and attribution."
description: "Build your SEO data model with GA4 and Search Console. Score keywords, forecast ranges, compare attribution, and diagnose traffic changes."
canonical: "https://scalewithsearch.com/articles/seo-for-data-analysts"
date: "2026-03-20"
modified: "2026-09-25"
---
## Site navigation

- [Scale With Search](https://scalewithsearch.com/)
- Real estate
  - Real estate
    - [Real estate](https://scalewithsearch.com/for/real-estate)
- Work
  - Start here
    - [Send your brief](https://scalewithsearch.com/work#send-your-brief)
    - [Prepare your six-question brief](https://scalewithsearch.com/work#prepare-your-six-question-brief)
  - Build
    - [Site build, content library with SEO, signal desk](https://scalewithsearch.com/work)
- For your business
  - Trades and home services
    - [Auto body and collision shops](https://scalewithsearch.com/for/auto-body-and-collision-shops)
    - [Foundation and home repair contractors](https://scalewithsearch.com/for/foundation-and-home-repair)
    - [Garage door and fencing contractors](https://scalewithsearch.com/for/garage-door-and-fencing-contractors)
    - [HVAC contractors](https://scalewithsearch.com/for/hvac-contractors)
    - [Janitorial and commercial cleaning companies](https://scalewithsearch.com/for/janitorial-and-commercial-cleaning)
    - [Locksmiths](https://scalewithsearch.com/for/locksmiths)
    - [Moving companies](https://scalewithsearch.com/for/moving-companies)
    - [Pest control companies](https://scalewithsearch.com/for/pest-control-companies)
    - [Plumbing and electrical contractors](https://scalewithsearch.com/for/plumbing-and-electrical-contractors)
    - [Restoration and water or fire damage companies](https://scalewithsearch.com/for/restoration-and-water-fire-damage)
    - [Roofing companies](https://scalewithsearch.com/for/roofing-companies)
    - [Towing companies](https://scalewithsearch.com/for/towing-companies)
    - [Tree services and landscaping companies](https://scalewithsearch.com/for/tree-services-and-landscaping)
    - [Solar installers](https://scalewithsearch.com/for/solar-installation)
    - [General contractors](https://scalewithsearch.com/for/general-contractors-and-construction)
    - [Paving, concrete, and flooring contractors](https://scalewithsearch.com/for/paving)
  - Practices and professional services
    - [Bookkeeping and tax practices](https://scalewithsearch.com/for/bookkeeping-and-tax-practices)
    - [Dental practices](https://scalewithsearch.com/for/dental-practices)
    - [Family and criminal defense law firms](https://scalewithsearch.com/for/family-and-criminal-defense-law-firms)
    - [Med spas and aesthetics practices](https://scalewithsearch.com/for/med-spas-and-aesthetics)
    - [Personal injury law firms](https://scalewithsearch.com/for/personal-injury-law-firms)
    - [Veterinary clinics](https://scalewithsearch.com/for/veterinary-clinics)
    - [Gyms and fitness studios](https://scalewithsearch.com/for/fitness)
    - [Therapy and outpatient health practices](https://scalewithsearch.com/for/therapy-and-outpatient-health)
    - [Medical billing companies](https://scalewithsearch.com/for/medical-billing)
    - [Insurance agencies](https://scalewithsearch.com/for/insurance-agencies)
    - [Financial advisors](https://scalewithsearch.com/for/financial-advisors)
    - [Property management companies](https://scalewithsearch.com/for/property-management)
    - [Recruiting and staffing agencies](https://scalewithsearch.com/for/recruiting-and-staffing)
    - [Architects and interior designers](https://scalewithsearch.com/for/architects-and-interior-designers)
    - [Logistics and supply chain companies](https://scalewithsearch.com/for/logistics-and-supply-chain)
  - Agencies, MSPs, and manufacturing
    - [IT and managed service providers](https://scalewithsearch.com/for/it-and-managed-service-providers)
    - [Machine shops and precision manufacturers](https://scalewithsearch.com/for/machine-shops-and-precision-manufacturing)
    - [Marketing agencies and freelancers](https://scalewithsearch.com/for/marketing-agencies-and-freelancers)
    - [SEO agencies and consultants](https://scalewithsearch.com/for/seo-agencies-and-consultants)
    - [Small manufacturers and fabricators](https://scalewithsearch.com/for/small-manufacturers-and-fabricators)
  - Restaurants, shops, studios, and nonprofits
    - [Restaurants and hospitality businesses](https://scalewithsearch.com/for/restaurants-and-hospitality)
    - [Retail stores and ecommerce sellers](https://scalewithsearch.com/for/retail-and-ecommerce)
    - [Photographers, event planners, and travel agents](https://scalewithsearch.com/for/photographers)
    - [Churches and nonprofits](https://scalewithsearch.com/for/churches-and-nonprofits)
  - [All industries](https://scalewithsearch.com/for/)
- Learn
  - For your office
    - [Office job guides](https://scalewithsearch.com/guides/)
    - [Browser calculators](https://scalewithsearch.com/tools/)
  - Start here
    - [How it works](https://scalewithsearch.com/how-it-works)
    - [Free Starter Kit](https://scalewithsearch.com/kit/business-memory-starter-kit.zip)
    - [Synthetic specimen](https://scalewithsearch.com/specimen/working-session-specimen.zip)
  - Guides
    - [The Complete Guide to Business Memory for AI Agents](https://scalewithsearch.com/articles/business-memory-for-ai-agents-guide)
    - [The Complete Small-Business Guide to AI Agent Governance](https://scalewithsearch.com/articles/ai-agent-governance-guide-small-business)
    - [The Complete Guide to Leaving Vendor AI Memory](https://scalewithsearch.com/articles/leaving-vendor-ai-memory-guide)
  - Articles by cluster
    - [Business memory](https://scalewithsearch.com/articles/business-memory-for-ai-agents-guide)
    - [Agent governance](https://scalewithsearch.com/articles/ai-agent-governance-guide-small-business)
    - [Migration and ownership](https://scalewithsearch.com/articles/leaving-vendor-ai-memory-guide)
  - For machines
    - [llms.txt](https://scalewithsearch.com/llms.txt)
    - [llms-full.txt](https://scalewithsearch.com/llms-full.txt)
    - [Machine view](https://scalewithsearch.com/?view=machine)
- Company
  - Evidence
    - [Proof](https://scalewithsearch.com/proof)
  - Company
    - [About](https://scalewithsearch.com/about)

# Build SEO forecasts and attribution models that hold up to scrutiny.

A data analyst moves from paid media to SEO and finds the data hostile. Organic traffic moves with algorithm updates that have nothing to do with the team's work. Rankings shift because of competitors nobody controls. The effect of an optimization takes months to show, and the data in between is noisy.

The analysts who succeed in SEO accept those conditions and design for them. They build an analytics architecture that captures SEO-specific attributes. Their forecasts account for outside variables. Their attribution reflects how organic search really contributes. This article covers each part. For the pipeline that joins GA4, Search Console, and Ahrefs data, read the companion [SEO data analysis framework](/articles/seo-data-analysis-framework).

## Build an SEO-specific analytics architecture

Standard analytics captures pageviews and sessions. It does not have the detail you need to diagnose SEO. Google Analytics 4 (GA4) defaults also favor paid campaign attribution over organic visibility.

### Add SEO dimensions in GA4

Create custom dimensions for the attributes that explain SEO results:

- landing page template type (product, blog post, category page);
- content publication date and last update date;
- keyword difficulty of the page's target keyword;
- content author or optimization status.

These dimensions let you segment results by content type, difficulty range, or optimization approach. GA4 cannot see the search query behind a session. The Search Console link adds aggregated query reports. Join query data to GA4 at the page level, not the session level.

### Pull Search Console data into a warehouse

GA4 shows what visitors do after they arrive. Google Search Console shows impressions, average position, and click-through rate (CTR) for the queries that bring them. Build an automated daily pull from the Search Console API into your warehouse. A history of daily data supports analysis of ranking changes and visibility trends that the interface cannot give.

### Track engagement events

Track events that show whether organic visitors engage:

- reading depth at 25, 50, 75, and 100 percent scroll;
- internal link clicks, to see navigation patterns;
- time-on-page thresholds at 30, 60, and 120 seconds;
- conversion assists from organic landing pages.

### Centralize the sources

Combine six sources in one warehouse:

- GA4 session and event data;
- Search Console query performance;
- rank tracking from Ahrefs or Semrush;
- backlink acquisition data;
- content publication and update logs;
- Core Web Vitals from the PageSpeed Insights API.

Correlation analysis is not possible while the data sits in separate tools.

Use the GA4 BigQuery export for raw, event-level data. Standard GA4 reports aggregate data, which limits custom analysis. The export gives complete event streams with pseudonymous user IDs for cohort analysis, journey mapping, and custom attribution. BigQuery has a monthly free tier for storage and query processing. Check the current limits on Google's BigQuery pricing page before you plan on it.

## Score keyword opportunities

Not every keyword deserves the same investment. A scoring model ranks thousands of candidates so resources go to the best ones.

### Start with volume and difficulty

```text
Opportunity Score = Search Volume × (100 - Keyword Difficulty) / 100
```

A keyword with 5,000 monthly searches and difficulty 30 scores 3,500 (5,000 × 0.70). A keyword with 10,000 searches and difficulty 70 scores 3,000. It gets lower priority despite twice the volume.

### Add multipliers

Apply four multipliers to the base score.

| Factor | Condition | Multiplier |
|---|---|---|
| Current rank | Positions 11 to 20 (page two) | 1.5 |
| Current rank | Positions 21 to 30 | 1.2 |
| Current rank | Positions 31 to 50 | 1.0 |
| Current rank | Position 51 or lower | 0.8 |
| Intent | Transactional | 2.0 |
| Intent | Commercial investigation | 1.5 |
| Intent | Informational | 1.0 |
| Trend | Growing year over year in Google Trends | 1.3 |
| Trend | Stable | 1.0 |
| Trend | Declining | 0.7 |

The rank multiplier favors keywords where you already sit on page two, because they need less effort than a start from zero. The intent multiplier makes a 1,000-search transactional keyword equal to a 2,000-search informational one. The trend multiplier moves effort toward growing demand.

### Check competitive density

Examine the top 10 results for each high-scoring keyword. Record these items for each result:

- the domain authority of the ranking site;
- the length and depth of the content;
- the backlinks to the ranking page;
- the date of the last update.

Low-authority domains, thin content, or pages with few links make a results page easier to enter. Authoritative, complete content makes it harder.

## Forecast organic traffic as a range

Forecasts justify budgets and set expectations. Choose the method that fits the site's situation.

### Baseline trend forecast

Fit a linear regression to 12 months of organic traffic and project forward with confidence intervals. This works for a stable site. It fails during fast growth, after algorithm updates, or during a major content push. In those periods, the past no longer describes the future.

### Keyword-based forecast

Build the forecast bottom-up, one keyword at a time:

1. Estimate the achievable position from domain authority and content quality.
2. Apply a CTR for that position.
3. Multiply search volume by the CTR and by the probability of reaching the position.
4. Add the results across all target keywords.

[Backlinko's analysis of about 4 million Google results](https://backlinko.com/google-ctr-stats) put the average CTR of the top result at 27.6 percent (observed September 2026). Position 10 got about a tenth of that. Your own curve is better. Calculate it from Search Console data, grouped by position, for your site. This method needs hundreds of keywords before the total becomes reliable.

### Scenario model

Run the keyword forecast under three assumptions. In the conservative case, 20 percent of keywords reach target positions within 12 months. In the moderate case, 50 percent do. In the aggressive case, 80 percent do. Present all three. The range communicates the uncertainty and still gives a planning basis. [SEO forecasting models for data analysts](/articles/seo-forecasting-models-data-analysts) covers more advanced methods.

### Time-to-rank curve

New content seldom ranks at once. Measure the curve on your own history. Count the days from publication to first impressions, to page one, and to the top 3. Apply that curve to the forecast. A projection that ramps up over time is more realistic than a forecast that assumes the ranking arrives on day one.

### Volatility band

Measure how much your traffic moved during past Google core updates. Put that range around the forecast for update periods. Tell stakeholders plainly that algorithm changes can move results far from the forecast. SEO is not deterministic in the way paid media is.

## Model attribution fairly

Organic search contributes more than last-click attribution shows. People research through organic search, return directly or through another channel, and convert later. Attribution modeling gives organic search credit for that research role. [Attribution modeling for SEO](/articles/attribution-modeling-for-seo) compares the models in depth.

GA4's data-driven attribution distributes credit across touchpoints with machine learning, based on which touchpoints are associated with conversion. It is imperfect, but it undervalues top-of-funnel organic traffic less than last click does.

Google [removed the first-click, linear, time decay, and position-based models](https://support.google.com/analytics/answer/10596866) from GA4 in November 2023. You can still compute them yourself from the BigQuery export:

| Model | Credit rule |
|---|---|
| Position-based | 40 percent to the first touch, 40 percent to the last touch, 20 percent spread across the middle |
| Time decay | More credit closer to conversion, for example 2 times within 1 day, 1.5 times within 3 days, 1 time within 7 days, and 0.5 times for older touches |
| Markov chain | Credit by removal effect: the drop in conversion probability when you remove a channel from the paths |

A Markov chain model gives the most defensible multi-touch result. It needs a large volume of conversions each month to be statistically sound.

The Conversion paths report in the GA4 Advertising section shows where organic search appears in conversion paths. It can appear early, in the middle, or late. A channel that often appears early and seldom last is a research channel. Report that role explicitly so it does not disappear in a last-click view.

### Handle offline conversions

When sales close offline, track proxy events online. Assign points to actions that predict a sale, such as content downloads, contact form submissions, and pricing page visits. Track them as key events. For true attribution, connect the CRM and send closed-deal data back to the analytics platform with the original acquisition source. This needs sales and marketing to agree on the process, but it produces an accurate return figure for organic search.

## Diagnose traffic changes

Organic traffic moves for many reasons: algorithm updates, technical issues, competitors, and seasons. A systematic diagnosis stops the team from reacting to noise.

Segment by device first. Updates can affect mobile and desktop differently, and Core Web Vitals problems usually hurt mobile more. If traffic fell only on mobile, investigate mobile performance and usability before content quality.

Check whether the change is site-wide or concentrated. A drop across all pages points to an algorithm change or a crawling problem. A drop on specific pages points to those pages' content, targeting, or competition.

Separate impressions, CTR, and position in Search Console. Traffic can fall while rankings hold. Falling impressions mean demand dropped. Falling CTR means your result became less attractive, perhaps because a new SERP feature appeared above it. Each needs a different response.

Check for competitive displacement. Find keywords where your position fell while a competitor's position rose. Those losses need differentiation or more authority, not a quality fix.

Check update timing. Semrush Sensor and the Moz Google Algorithm Change History record update dates. A change within two weeks of a core update probably has an algorithmic cause. A change with no nearby update points to technical, competitive, or seasonal causes.

### Isolate SEO impact from other activity

Use causal impact analysis. The CausalImpact R package predicts what traffic would have been without an intervention, from patterns before it. Compare actual traffic after the intervention with that counterfactual. The result estimates the effect with confidence intervals and accounts for seasonality.

## Connect organic traffic to conversion

Traffic that does not convert has little value. Organic visitors often differ from paid visitors, so analyze them separately. [CRO and SEO data analysis](/articles/cro-seo-data-analysis) covers the testing side.

Segment landing pages by organic traffic. Calculate conversion rate, engagement time, and pages per session for each organic entry page. Optimize high-traffic, low-conversion pages first; they waste the visibility they already have.

Connect queries to outcomes. Join Search Console query data to GA4 conversions at the landing page level. Queries that lead to conversions deserve more investment even at low volume. Queries that bring traffic and no conversions may deserve less.

Map organic journeys. Use GA4 path exploration to see common page sequences from landing page to conversion. Find the step where people drop out. If blog readers seldom reach product pages, add internal links and calls to action at that step.

Test which content attributes predict conversion. Ask whether longer articles convert better, whether video helps, and whether time on page predicts conversion. A logistic regression that predicts conversion from engagement metrics shows which content characteristics move people toward a purchase.

Analyze form abandonment by source. Organic visitors may have different questions than paid visitors. Find where they abandon: a field that feels invasive, a price that surprised them, or a technical error.

## Know the limits of SEO data

Volume sets what you can conclude. Around 1,000 organic sessions a month supports directional insight. Around 10,000 supports segmentation by landing page, device, and content category. Around 100,000 supports rigorous tests and advanced attribution. Below 1,000, spend the effort on implementation and content, because analysis on that volume is close to guesswork.

Use both Search Console and a rank tracker. Search Console is authoritative but keeps only 16 months and hides rare queries for privacy. Its averaged positions also hide volatility. A rank tracker keeps longer history, measures daily, and compares competitors. But it checks from set locations that may not match real searchers. Use Search Console for query performance and the rank tracker for trends and competitors.

Avoid five common mistakes:

- Do not read short-term movement as a result. SEO changes take months to show fully.
- Do not ignore algorithm updates and competitor moves that confound the data.
- Do not treat organic traffic as one thing. Intent and landing page type change its value.
- Do not expect experimental clarity from observational data.
- Do not stop at the limitation. State it, then give the most useful conclusion the data supports.

[Organic traffic segmentation](/articles/organic-traffic-segmentation) shows how to split organic traffic into the groups that behave differently.

----

```text
                  .|########||.                                       .|########||.                                       .|########||.
               |##||.      .||##|.                                 |##||.      .||##|.                                 |##||.      .||##|.
             |#|.              .|#|.                             |#|.              .|#|.                             |#|.              .|#|.
           |#|                    |#|                          |#|                    |#|                          |#|                    |#|
         .#|                        |#.                      .#|                        |#.                      .#|                        |#.
        .#.                          .#|                    .#.                          .#|                    .#.                          .#|
       |#.                            .#|                  |#.                            .#|                  |#.                            .#|
      |#             ......             #|                |#             ......             #|                |#             ......             #|
     .#           ||#########|           #|              .#           ||#########|           #|              .#           ||#########|           #|
    .#.         |######||######|.        .#.            .#.         |######||######|.        .#.            .#.         |######||######|.        .#.
    #.        .##|###|##|#|######|        .#            #.        .##|###|##|#|######|        .#            #.        .##|###|##|#|######|        .#
   ||        |##|#||||||||||||#||#|        ||          ||        |##|#||||||||||||#||#|        ||          ||        |##|#||||||||||||#||#|        ||
   #        |#||||||||||||||||||||#|        #.         #        |#||||||||||||||||||||#|        #.         #        |#||||||||||||||||||||#|        #.
  ||       |#||||||||||||||||||||||#|       ||        ||       |#||||||||||||||||||||||#|       ||        ||       |#||||||||||||||||||||||#|       ||
  #       .#||||||||||||||||||||||||#|       #        #       .#||||||||||||||||||||||||#|       #        #       .#||||||||||||||||||||||||#|       #
 ||   ....|||#||||||##|#|||#|#||##||||....|. ||      ||   ....|||#||||||##|#|||#|#||##||||....|. ||      ||   ....|||#||||||##|#|||#|#||##||||....|. ||
 #.  .  ....|#  ....#|||   ||| .#|||  ....#. .#      #.  .  ....|#  ....#|||   ||| .#|||  ....#. .#      #.  .  ....|#  ....#|||   ||| .#|||  ....#. .#
 #   .  ||||#| .#####||  . .#| .#|||  ||||#   #.     #   .  ||||#| .#####||  . .#| .#|||  ||||#   #.     #   .  ||||#| .#####||  . .#| .#|||  ||||#   #.
.|   |||||  #. |#|||||. ||  #. |#||. .|||||   ||    .|   |||||  #. |#|||||. ||  #. |#||. .|||||   ||    .|   |||||  #. |#|||||. ||  #. |#||. .|||||   ||
||   |....  #. ....|#.      |. ...|. ....||   ||    ||   |....  #. ....|#.      |. ...|. ....||   ||    ||   |....  #. ....|#.      |. ...|. ....||   ||
#.  .||||||##||||||##||####|||||||#||||||#|   .#    #.  .||||||##||||||##||####|||||||#||||||#|   .#    #.  .||||||##||||||##||####|||||||#||||||#|   .#
#    .||####|###########################|.     #    #    .||####|###########################|.     #    #    .||####|###########################|.     #
#      .#||||||.#.|| # |. ..# #| #|||||#|      #    #      .#||||||.#.|| # |. ..# #| #|||||#|      #    #      .#||||||.#.|| # |. ..# #| #|||||#|      #
#      .#|||||| ..  |# ## |#| ...#|#|||#|      #    #      .#|||||| ..  |# ## |#| ...#|#|||#|      #    #      .#|||||| ..  |# ## |#| ...#|#|||#|      #
#      .#|||#|# .# .#| #| ##|.#..#|||||#|      #    #      .#|||#|# .# .#| #| ##|.#..#|||||#|      #    #      .#|||#|# .# .#| #| ##|.#..#|||||#|      #
#      .#||||||############|######|||||#|      #    #      .#||||||############|######|||||#|      #    #      .#||||||############|######|||||#|      #
#   |...||#||||||#||||#|#||||||#|||||#||| |.|  #    #   |...||#||||||#||||#|#||||||#|||||#||| |.|  #    #   |...||#||||||#||||#|#||||||#|||||#||| |.|  #
#. .. ||||# .|||##|.  |#| .|| || .|||#. #|  # .#    #. .. ||||# .|||##|.  |#| .|| || .|||#. #|  # .#    #. .. ||||# .|||##|.  |#| .|| || .|||#. #|  # .#
|| |  ...||  ...##| |  #| .|. |. #####  .. .| ||    || |  ...||  ...##| |  #| .|. |. #####  .. .| ||    || |  ...||  ...##| |  #| .|. |. #####  .. .| ||
|| ||||| || ||||#|  .  |. |. |#. ||||| |#| || ||    || ||||| || ||||#|  .  |. |. |#. ||||| |#| || ||    || ||||| || ||||#|  .  |. |. |#. ||||| |#| || ||
.# |.....#|....|#.||||.|||##.|#|....||.#||.#. #.    .# |.....#|....|#.||||.|||##.|#|....||.#||.#. #.    .# |.....#|....|#.||||.|||##.|#|....||.#||.#. #.
 #.|||||||#############################| ||| .#      #.|||||||#############################| ||| .#      #.|||||||#############################| ||| .#
 ||       ##||#||#||||||#||#||#||#||##.      ||      ||       ##||#||#||||||#||#||#||#||##.      ||      ||       ##||#||#||||||#||#||#||#||##.      ||
  #       .#|||||||||#||#|||||||||||#|       #        #       .#|||||||||#||#|||||||||||#|       #        #       .#|||||||||#||#|||||||||||#|       #
  ||       |#||||||||||||||||||||||#|       ||        ||       |#||||||||||||||||||||||#|       ||        ||       |#||||||||||||||||||||||#|       ||
  .#        |#||||||||||||||||||||#|        #.        .#        |#||||||||||||||||||||#|        #.        .#        |#||||||||||||||||||||#|        #.
   ||        |#||||||||||||||||||#|        ||          ||        |#||||||||||||||||||#|        ||          ||        |#||||||||||||||||||#|        ||
    #.        .######|#|#########|        .#            #.        .######|#|#########|        .#            #.        .######|#|#########|        .#
    .#.         |#####||||#####|         .#.            .#.         |#####||||#####|         .#.            .#.         |#####||||#####|         .#.
     |#           ||########||           #.              |#           ||########||           #.              |#           ||########||           #.
      |#             ......             #|                |#             ......             #|                |#             ......             #|
       |#.                            .#|                  |#.                            .#|                  |#.                            .#|
        |#.                          .#.                    |#.                          .#.                    |#.                          .#.
         .#|                        |#.                      .#|                        |#.                      .#|                        |#.
           |#|                    |#|                          |#|                    |#|                          |#|                    |#|
            .|#|.              .|#|.                            .|#|.              .|#|.                            .|#|.              .|#|.
               |##||.      .||##|                                  |##||.      .||##|                                  |##||.      .||##|
                 .||########||.                                      .||########||.                                      .||########||.

Scale With Search  2026  [scalewithsearch.com](https://scalewithsearch.com)
```
