ROI of SEO - how to measure business results from SEO changes

Written by Nick Swan. Updated on 04, December 2023

As SEOs, we celebrate when rankings go up and clicks increase, and often seem confused why clients and management aren't as jubilant as we are.

"What is the Return on Investment (ROI)" you might be asked, and this is something that has sometimes been tricky to answer.

Calculating the ROI of SEO has been possible, but only with the exporting of data to spreadsheets and the wrangling of rows and columns to get it in the format to present.

Without being able to show how moving up the rankings has impacted business performance and revenue, you won't get the people around the boardroom table high-fiving you.

At SEOTesting we have been using the Google Search Console API to help you run SEO tests for 3+ years.

Wouldn't it be great to also bring GA4 event data into time-based tests so you can see how changes to a site or page have not just affected SEO results but also impacted GA4 events and conversions?

Well, we have great news. SEOTesting now integrates with GA4 to supplement your time-based SEO tests with event and conversion data, helping you show the ROI your SEO work has brought about.

Adding GA4 event data to SEO tests

There are a couple of integration steps that need to be done to set up your SEOTesting site property with GA4, which are outlined below.

Once these are done, whenever you go to set up a time-based SEO test, you will see a new checkbox on the first screen for "Track GA4 events".

Screenshot showing the SEOTesting interface with an option to track GA4 events, which is unchecked, and a separate option to display on graphs, marked with a blue check.

The next step in setting up the test will be selecting the GA4 events you want to track in your time-based test. SEOTesting will bring in all default and any custom events you have created in GA4.

SEOTesting interface displaying a list of Google Analytics Events like click, file_download, and page_view with checkboxes to select events for tracking, currently all unmarked.

You can also select the session source to be filtered to just Google or None (None effectively means all traffic). Having the traffic source filter set to None is a good way to record the results around how event and conversion metrics from all traffic sources are affected by the SEO changes you are testing.

Once your dates have been confirmed on the third step of creating an SEO test, SEOTesting will collect the data that is already available from Search Console and GA4, and as the days progress, update each day as new data becomes available.

Reviewing GA4 SEO test results

When data is available from Search Console for the test period of time, you can start to analyze the results. The GA4 events selected during the setup of the test will be displayed in the main test scorecard area.

Chart comparing web performance data before and after content updates, showing significant increases in clicks, impressions, and GA4 event tracking like clicks and scrolls, along with instructions on how to fix a specific error.

You'll see the SEO metrics from Search Console at the top, split into two columns based on data before and after changes were made.

Below these SEO metrics, you'll see the summarised event data from GA4.

The events are calculated on a per day basis, so you do not need to wait until the end of the test period to start to see whether the changes made are trending towards a positive or negative outcome.

This also helps in the case of a drastically negative change, in that you can spot it early and potentially reverse the page change or look to further optimize.

While the default GA4 events such as clicks and scroll can measure basic user engagement, custom GA4 events like signups and conversions can be added to GA4 and also tracked through SEOTesting. This can help you show ROI from SEO work as these custom events are usually set up to equate to real business results.

There are two main scenarios that can now be dealt with when making SEO and CRO changes to pages...

When making changes for SEO, check the CRO metrics

With the addition of GA4 data reported in SEO test results, we can now measure how changes that are made to positively impact SEO and improve rankings affect conversions.

There is little point in doubling the traffic to the page and patting yourself on the back if it has negatively affected conversions and led to a massive drop in sales!

When making CRO changes, check how they affect SEO

When making a page change to hopefully improve CRO metrics such as engagement or conversions, how does that change affect SEO metrics? Does making the call to action section twice as big, which pushes content further down the page, mean your target query ranking drops from #3 to #34.

There's little point in improving conversions from 3% to 4% if your landing page traffic drops from 1,000 visitors per week to 30-40.


As before, you are able to run backtests on Search Console and GA4 data. How far back you can go depends on how long you've had GA4 up and running.

But this does mean if you forget to setup a test for changes you made two months ago, you can setup the Changed Date accordingly when creating the test, and SEOTesting will go and collect the historical data for you.

Integrating GA4 with SEOTesting

You need to set up the integration between SEOTesting and GA4 for each website separately.

To do this, navigate to the Dashboard of the site in SEOTesting, and click the Edit button to go into the website's settings

SEOTesting dashboard for with options for Daily, Weekly, Monthly views, and switches for Algorithm Updates and Annotations, and a red arrow points to the 'Edit' button.

On the settings page click on the Integrations tab. Down towards the bottom of this section you'll see the GA4 area.

A screenshot showing a GA4 Integration module with a description and a button labeled Allow GA4 Read Only Access.

Click the button to 'Allow GA4 Read Only Access', and follow the steps to authorize GA4.

Please ensure you use a Google account that has access to both the Google Search Console site property and the GA4 property for the relevant site in SEOTesting.

SEOTesting now has permission to read the GA4 data you have access to, but you still need to let SEOTesting know which GA4 property it should be getting data from.

Go into GA4 and get the property ID in one of two ways:

  1. When in the correct GA4 property, click the settings icon to go to the admin section of GA4
  2. From the admin home screen, use the left nav menu to find Property -> Property details
  3. On the property details page you'll see the property ID in the top right of the screen.
  4. Copy this ID.


  1. When in the correct GA4 property, look at the URL in the browser address bar
  2. There will be a fragment of the URL that is in the format /p#######/ where the hashes represent the GA4 property ID.
  3. Copy this ID.

Take the GA4 property ID you copied from GA4 and now add it to the property ID field that has become available in SEOTesting since you authorized GA4 access

A screenshot of a GA4 Integration settings page on SEOTesting with a field to enter a Property ID and instructions on how to find your Property ID from Google Analytics.

Upon entering the property ID and clicking the Save button, SEOTesting will check it has the necessary permissions to GA4, and if successful you'll see a Saved message appear in the top right corner of the app.

Now you are ready to start running SEO tests and collecting event and conversion data from GA4.