Extending Reporting Frameworks for SEO for Board & Investors

Since I started to present at board meetings a few years ago, it’s been interesting to understand how board members/investors think about a business/industry. As Marketing, you’re just a tiny piece of the whole puzzle (which was my first humble learning). It is even more important to use your time with them wisely.

As marketers (and SEOs specifically), we talk a lot about the measurement of success and the way we report to our manager > manager > CEO > board. After seeing Aleyda Solis present this deck at Friends of Search and participating in the SEO MBA, I digested a lot more information about optimizing reporting up the chain. But… what we forget to talk about is the level above your bosses, bosses boss: the board & investors.

Regular Reporting Frameworks

Domain Authority, External Links, Referring Domains, # of Optimized Pages – All standard metrics for the average SEO, I bet. I’ve also reported on many of those types of metrics. They’re good metrics, but do they create a comprehensive reporting framework that can be used to strategize your SEO? I wouldn’t say so. In my blog post about Input Metrics for SEO, I wrote about some metrics mentioned previously that can add value but on the other side of the spectrum. To influence the output.

What to improve? Business-Focused Metrics!

The metrics that you report on need to be focused on the business or industry. What does that mean? They need to have an angle that can support understanding the context of the business/industry and the trajectory it’s going at.

Examples of SEO Metrics for Boards & Investors

Let’s look at a few examples of metrics that might make sense to show to a board or investors. Remember, a lot of what they care about is understanding your category and its opportunity for growth (of your business) there.

  1. Search Volume: Some of these metrics could, for example, be very simple. Certain keywords and your average position could sometimes be enough. If you’re in the red shoe space. Just overall search volume for that keyword might be enough to give you an insight into how the industry is performing. Because investors often want to know if a certain category is growing, and the top volume keyword (short head) is often enough to give a proper indication of industry size (close to it being TAM, which we’ll address right now).
  2. Keyword Categorization: Extend this initial one and try to take all keywords in a category. If you’re a shoe e-commerce shop, just gather all your Search Console data with the word shoe. This will likely show the volume on a monthly basis and see what the direction is. Combine this SEO data with your PPC data from Google or Microsoft, and you likely get an even more accurate insight into how search impressions are trending.
  3. CTR Position Analysis: You can be gaining tons of impressions, but with additional search features (local pack, more ads, featured snippets), you’ll, over time, lose click-through rate. With the pandemic, we also saw a shift in more people going back to desktop usage, impacting overall CTR trends a bit. The analysis of CTR & by position is something you can do yourself, powered by Google Search Console data. Showing this insight will help indicate where growth is coming from. Did CTRs increase per position, or did you actively improve positions.
  4. Keyword Gap Analysis: In the past, I have already blogged about how to approach this. You can find it here. Keyword Gap analysis can tell you if competitor X that you’re competing against in niche Y is delivering many more clicks & impressions on keywords that you’re not ranking for yet: opportunity. Knowing what this opportunity is and being able to go after it is in my opinion, just as important as already ranking well for stuff.
  5. Competitive Metrics: A no-brainer, but how are you stacking up against your competition. Sometimes this means that metrics like Domain Authority could be useful or knowing the number of referring domains, but don’t mistake them for leading metrics. They’re not. In itself, they’re useful for benchmarking at best.
  6. Brand Traffic %: It does need to be clear how much you’ve invested in brand-related efforts during this time period! If you don’t, it skews the view, and people want to know what has moved the needle as it creates a playbook that can determine where to invest more.

What are your thoughts on this topic? How would you extend reporting to make it relevant for the board and investors? Feel free to ping me @MartijnSch


The Concept of Input Metrics for SEO

Sessions, transactions, and revenue are not metrics that an SEO shift overnight. It’s a matter of often waiting for Google. They’re considered output metrics, the work that you’ve put in results in those.

I just put down the book: Working Backwards by Bill Carr and Colin Bryar. It’s about their many learnings working for years at Amazon. It documents the process and policies that were put in place to make it the true giant it is today (including the theory behind pizza teams, the bar-raising process, etc.). One of the chapters talks about the concept of Input Metrics. Something that we often forget about in the context of SEO (or driving traffic via other channels).

Input metrics are considered metrics that can help define progress towards an output metric.

  • How many products do you have (today versus a week/month ago)? Metric: # of SKUs.
  • How many pages do have a custom/unique title or META description? Metric: # of optimized pages.

Analysis Decision Tree

They can be influenced by the work that you do on a daily basis. Let’s say that your (output metric) revenue is down. You would likely follow a decision tree like this:

  • Did the number of transactions decrease or did the average order value decrease last week?
  • If transactions decreased, did our conversation rate change?
  • If the conversion rate didn’t change, did sessions change?
  • If sessions were down, what channels caused this? Let’s say for a minute that all channels were flat except for Social Media.
  • If Social Media was down on the metric of sessions. What caused it?

A very simple explanation often follows: We just posted less on social media channels on Tuesday because of X. Aka, you defined the input metric that is in your hands to change: the # number of posts. My take often is that any metric that you report on should be able to either trigger an action, report an outcome, or show industry-level trends/benchmarking. Knowing certain metrics is useless without context via either benchmarking or historical data.

Example: # of Posts > More Social Posts > More Traffic > Larger Community

While I led Marketing at The Next Web, we looked at our variability in traffic to figure out how to grow our audience more sustainably over time (instead of relying on content going viral). Besides the apparent focus on SEO, we realized that the # of published posts was obviously a big input. It was not too surprising in itself, but it was an input metric that could significantly impact sessions. For example, it led to us republishing or reposting old content more on Social Media and having more writer support on weekends to create a steady stream of content. Without knowing what impacts traffic on a channel, you’ll have difficulty figuring out how to change your approach.

Reporting Input Metrics versus Output Metrics

What metrics should you be reporting on to your boss or upper-level? The ones that show the impact, which is most often output metrics in my opinion. You want to show business results as that shows your contribution to the bottom line of the business (at the end of the day we’re all getting paid based on that).

Tom Critchlow has written a bit more about this subject in his blog post: Some Notes on Executive Dashboards

However, it doesn’t mean that you shouldn’t have reporting for input metrics. If you know the % of pages that aren’t indexed, you have an input metric that needs to change to grow the output metric: sessions over time. If you run an e-commerce store, the number of products has an impact on their availability. In RVshare’s case, we can have thousands of RVs, but if they’re not available at the highest peak of the year, it’s still not going to help us (or the owner) grow.

Example Input Metrics for SEO

Input to Output can often be visualized as a funnel, as in SEO there are many steps that eventually lead to an outcome:

Crawl to Indexation: Each combination of steps will provide you with a way to input the next outcome. Increasing the number of pages should increase how many are crawled.

  • Number of pages (input)
  • Number of pages that are crawled
  • Number of pages that are submitted (via XML sitemaps)
  • Number of pages that are indexed
  • Number of pages receiving traffic
  • Number of pages driving revenue (output)

What do I need to get started?

Getting this insight goes back to having access to the right data. Most of what I just talked about is available through free tools: Google Search Console and Google Analytics is your best friend. The next best source is your internal data or CMS, which can provide insights into the quality of content/products/etc.


Building a data warehouse for SEO in Google BigQuery

Why do you want/need a data warehouse for SEO?

A data warehouse (& data lake) stores and structures data (through data pipelines) and then makes it possible to visualize it. That means it can also be used to help create and power your SEO reporting infrastructure, especially when you’re dealing with lots of different data sources that you’re looking to combine. Or, if you have just a ton of data, you’re likely looking to implement a (quick) solution like this as it can power way more than your actual laptop can handle.

Some quick arguments for having a warehouse:

  • You need to combine multiple data sources with lots of data.
  • You want to enable the rest of the organization to access the same data.
  • You want to provide a deeper analysis into the inner workings of a vendor or search engine.

It’s not all sunshine and rainbows. Setting up a warehouse can be quick and easy, but maintaining is where the real work comes in. Especially when dealing with data formats and sources that change over time, it can create overhead. Be aware of that.

What can I do with a warehouse?

Imagine you’re a marketing team with a strong performance-marketing setup, you advertise in Google Ads and meanwhile in SEO try to compete for the same keywords to achieve great click share. It would be even more useful if your reporting could show an insight into the total number of clicks in search (not either paid or organic). By joining two datasets at scale you would be able to achieve this and meanwhile visualize progress. Excel/Google Sheets will give you the ability to do this (or repeat the process if you’re a true spreadsheet junkie) but not to have daily dashboards and share it with your colleagues easily. With a warehouse, you’d be able to store data from both ends (Google Ads and Google Search Console), mingle the data, and visualize it later on.

Seer Interactive wrote a good blog post about their decision to move to their own, homegrown, rank tracking solution. It provides an interesting insight into how they’re leveraging their internal warehouse for some of its data as well.

Do I actually need a warehouse?

Are you a small team, solo SEO, or work on a small site? Make this a hobby project in your time off. You likely, at your scale, don’t need this warehouse and can accomplish most things by connecting some of your data sources in a product like Google DataStudio. Smaller teams often have less (enterprise, duh!) SEO tools in their chest, so there is less data overall. A warehouse can easily be avoided at a smaller scale and be replaced by Google Sheets/Excel or a good visualization tool.

Why Google BigQuery?

Google BigQuery is RVshare’s choice for our marketing warehouse. Alternatives to Google BigQuery are Snowflake, Microsoft Azure, and Amazon’s Redshift. As we had a huge need for Google Ads data and it provided a full export into BigQuery for free, it was a no-brainer for us to start there and leverage their platform. If you don’t have that need, you can replicate most of this with the other services out there. For the sake of this article, as I have experience dealing with BQ, we’ll use that.

What are the costs?

It depends, but let me give you an insight into the actual costs of the warehouse for us. Google Search Console and Bing Webmaster Tools are free. Botify, Nozzle (SaaS pricing here), and Similar.ai are paid products, and you’ll require a contract agreement with them.

  • Google Search Console & Bing Webmaster Tools: Free.
  • Nozzle, Similar.ai, Botify: Requires contract agreements, reach out to me for some insight if you’re truly curious and seriously considering purchasing them.
  • StitchData: Starting at $1000/yearly, depending on volume. Although you’re likely fine with the minimum plan for just 1 data source.
  • SuperMetrics: $2280/yearly, this is for their Google BigQuery license that helps export Google Search Console. There are cheaper alternatives, but based on legacy it’s not worth for us to switch providers.
  • Google Cloud Platform – Google BigQuery: Storage in BigQuery is affordable, especially if you’re just importing a handful data sources. It gets expensive with larger data sets. So having the data itself is cheap. If you’re optimizing the way you process and visualize the data afterwards you can also save a lot of costs. Average costs for querying/analysis are $5 per TB to do that, and especially on small date ranges and selecting a few columns it’s hard to reach that quickly.

Loading Vendors into Google BigQuery

A few years ago, you needed to develop your data pipelines to stream data into Google BigQuery (BQ) and maintain the pipeline from the vendor to BQ yourself. This was causing a lot of overhead and required the need for having your own (data) engineers. Those days are clearly over as plenty of SaaS vendors provide the ability to facilitate this process for you for reasonable prices, as we just learned.

Bing Webmaster Tools & Google Search Console

Search Analytics reports from both Google and Bing are extremely useful as they provide an insight into volume, clicks, and CTR %. This helps you directly optimize your site for the right keywords. Both platforms have their own APIs that enable you to pull search analytics data from them. While Google’s is widely used available through most data connectors the Bing Webmaster Tools API is a different story. Find the resource link below to get more context on how to load this data into your warehouse as more steps are involved (and still nobody knows what type of data that API actually returns).

Resources

Saving Bing Search Query Data from the Bing Webmaster Tools API

→ Saving Google Search Console data with StitchData or Supermetrics

→ Alternatively, read about the Google Search Console API here to implement a pipeline yourself

Rank Tracking: Nozzle

Nozzle is our solution at the moment for rank tracking, at a relatively small scale. We chose them a few months ago, after having our data primarily in SEMrush, as they had the ability to make all our SERP data available to us via their BigQuery integration.

Technical SEO: Botify

Both at Postmates and RVshare I brought Botify in as it’s a great (enterprise) platform that combines log files, their crawl data, and visitor data with an insight into your technical performance.

Similar.ai

Lesser known is Similar.ai, which provides keyword data and entity extraction. Useful when you’re dealing with a massive scale of keywords of which you want to understand the different categories. Especially when they’re to create topical clusters it’s coming in very useful. With their Google Cloud Storage > Google BigQuery import we’re able to also show this next to our keyword data (from Google Search Console).

Bonus: Google Ads

If you’re advertising in paid search with Google Ads it can be useful to combine organic keyword data with paid data. It’s the reason why I like quickly setting up the Data Transfer Service with Google Ads so all reports are automatically synced. This is a free service between Google Ads and Google BigQuery. More information can be found here.

How to get started?

  1. Figure out what tools that you currently use provide a way to export their data?
  2. Create a new project in Google Cloud Platform (or use an existing one) and save your project ID.
  3. Create a new account for StitchData and where needed create an account (paid) for Supermetrics.
  4. Connect the right data sources to Google BigQuery or your preferred warehouse solution.

Good luck with the setup and let me know if I can help in any way. I’m curious how you’re getting value from your SEO warehouse or what use cases you’d like to solve with it. Leave a comment or find me on Twitter: @MartijnSch


The top metrics & KPIs other teams care about for SEO

SEOs care about many metrics, often the wrong ones (rankings, DA, PA, you name it, etc.). What is often forgotten are the metrics that are important for the other teams/departments within their organization. In the end, building a company isn’t just done by one company. Over the years, it’s been clear that you work with many departments simultaneously on the same effort, and often they care about your channels’ metrics. Just not always the same ones, so in this blog post, I wanted to shine some additional light on what metrics you should think about for other departments. It’s the followup to this tweet that got quite the attention, and this post gives me the ability to go a bit more into depth on the whys?

This list is likely incomplete and is using some generic names. Your organization might have different names or have additional departments that might not be covered here. Hopefully, this gives you a better insight into how to think about various departments related to SEO.

🏢 C-Level

Depending on what type of organization you work in and how broad your C-suite is, you are likely to report at some level into a COO/CMO that cares about the SEO metrics. But often in 100+ person companies, they don’t have the depth anymore to really deep dive into the SEO cases that you’re facing within an SEO team on a day-to-day basis.

Metrics:

  • Revenue, average order value (this number should in most use cases not be too much different from the performance of other channels), and the number of Transactions.
  • Sessions from organic search as an absolute number but also the percentage of total traffic. Primarily the latter as you want to keep a healthy/diverse balance for your marketing mix. Something that I blogged about before.

🛠 Product

What is Product building that you can benefit from, and how are you working with Product to prioritize the most important changes to the product to drive additional growth from organic search. No product is finished so there is always something that you can help prioritize from an SEO point-of-view.

Metrics:

  • Load time: There has been enough buzz about the importance of site speed for good reason.
  • Number of Pages per Template
  • Growth in Sessions
  • Best Performing Page Segments
  • Conversion Rate from Organic Search, etc.

Not necessarily in that order, but usually, metrics that are impacted with/by the Product organization.

💻 Engineering

Sitespeed, code velocity, sitespeed and load times. Well you get the point. It’s all about how fast the site is and how quickly you can work with an engineering team to get changes that you want fixed implemented.

Metrics:

  • Load times/site speed, traffic to specific sections of the site.
  • Velocity of tickets/items that you want Engineering to implement.

💲 Finance

Metrics that show the potential for growth and the return on investment. In the end, in many companies, Finance is the gatekeeper of money flowing in and out. They want to get a better insight into what you’re spending and how that eventually contributes to the bottom line. Providing a simple version of a P&L for SEO will likely return a happy smile if you’re able to produce that.

Metrics:

  • ROI % (how much have you spend on SEO resourcing: team, tools, other expenses for content) versus what will it return
  • Budget Spend, Returned Revenue, and future growth.

🖼  Marketing

Likely your closest allies in the ‘battle of SEO’ together with Product. Depending on the organizational structure, you probably find the SEO team itself here or in Product. So having enough impact on the metrics that your marketing team cares about is important.

📝 Content: Do you have a separate content team? They’ll likely care about the organic traffic coming to their pages, and they should care about the impact on those business metrics too. Besides that, any insight into specific keywords (volume, CTR) is always useful for a team like this to help optimize existing content.

Metrics:

  • Impact on branded search terms: sessions.
  • Increase/decline so you can measure the uplift of other brand awareness campaigns.

🧳   Sales & Business Development

At what scale are you still able to set up partnerships and does that actually fit into the scope of SEO at scale? Likely the answer is, no. That’s why you want to partner with a sales/biz dev team that can help you solidify partnerships and companies to work within your space. They have better skills and you can likely provide them meanwhile with more useful input on who to go after.

Metrics:

  • The number of big partnerships.
  • A shortlist of partners that you want them to go after, not just for dumb link building (preferably not, in my opinion). Instead, create lasting relationships that impact the industry, TAM (Total Addressable Market), and market presence.

📞  Customer Service

The better, faster, and more quickly you can answer your customers’ questions likely the better your business will thrive in today’s environment. Often this means that providing the answer directly in search (think featured snippets). You can’t just do this alone as an SEO team, you need the input from people in Customer Service, they’re the ones talking to your customers about the (mainly) negative and positive situations. The more you can support them with the metrics that they care about, the more comfortable both your lives might become.

Metrics:

  • Organic Traffic to Support related pages, the number of calls/chats that you avoid by better-optimized pages, etc.
  • The top questions that you can answer directly via featured snippets.
  • The top 100 pages on your support portal, based on organic search segmentation.

📈 Growth

When I was on the Growth team at Postmates the insane velocity that was produced there to grow faster was great to see. As SEO isn’t the fastest-growing channel often (especially not in the short-term, as I can throw 1M towards PPC tomorrow and create near-instant results) it’s important to show how it’s attributing to the mix of long and short-term initiatives of a growth team.

Metrics:

  • Growth % of the SEO channel, compared to MoM, WoW or YoY.
  • Long term contributions of growth, as lots of SEO growth is evergreen and at relatively low costs.

👩‍💻 Human Resources

Admittedly, this one is one of the most distanced departments from just SEO, but if you’re a big organization and recruiting for dozens or even hundreds or roles, how important it could be to help drive traffic to a Careers/Jobs section on a site. If that’s the case showing the importance of driving job applicants could be incredibly helpful to help understand what SEO can do for them.

Metrics:

  • The number of job applicants that applied because they found the jobs via Search.
  • Traffic to a specific segment of the site from Organic Search: Careers/Jobs.
  • The number of pages marked up properly with structured data for Jobs.

What metrics are missing? What do you measure for your organization? There are so many different business models out there that likely this list is far from complete for; for example, B2B cases are likely to be missing here.


Saving Bing Search Query Data from the Bing Webmaster Tools’ API

Over the last year, we spent a lot of time working on getting data from several marketing channels into our marketing data warehouse. The series that we did on this with the team has received lots of love from the community (thanks for that!). Retrieving Search Query data from Bing has proven to be one of the ‘harder’ data points: there is a lack of documentation, there a no real connectors directly to a data warehouse, and as it turns out the returned data (quality) is … ‘interesting’ to say the least. That’s why I wanted to write this blog post, to provide the code to easily pull out your search query data from Bing Webmaster Tools and give more people to evaluate their data. Hopefully, this provides the overall community with a better insight into the data quality coming out of the API.

Getting Started

  1. Create an account on Bing Webmaster Tools.
  2. Add & Verify a site.
  3. Create an API Key within the interface (help guide).
  4. Save the API Key and the formatted site URL.

The code

These days I spent most of my time (whenever I get to write code) coding in Python, that’s why these.

import datetime
import requests
import csv
import json
import re

URL = "https://example.com"
API_KEY = ''

request_url = "https://ssl.bing.com/webmaster/api.svc/json/GetQueryStats?apikey={}&siteUrl={}".format(API_KEY, URL)

request = requests.get(request_url)
if request.status_code == 200:
    query_data = json.loads(request.text)

    with open("bing_query_stats_{}.csv".format(datetime.date.today()), mode='w') as new_file:
        write_row = csv.writer(new_file, delimiter=',', quotechar='"')
        write_row.writerow(['AvgClickPosition', 'AvgImpressionPosition', 'Clicks', 'Impressions', 'Query', 'Created', 'Date'])

        for key in query_data["d"]:
            # Get date
            match = re.search('/Date\\((.*)\\)/', key["Date"])

            write_row.writerow([key["AvgClickPosition"] / 10,
                                key["AvgImpressionPosition"] / 10,
                                key["Clicks"],
                                key["Impressions"],
                                key["Query"],
                                datetime.datetime.now(),
                                datetime.datetime.fromtimestamp(int(match.group(1)) // 1000)])

Or find the same code here in a Gist file on Github.

Steps to take

  • Make sure you have all the needed dependencies installed: json, re, requests, csv.
    • pip install requests json re csv
  • Run the script: python bing_query_stats.py and enter the API Key and Site URL in the constants at the top of the script.
  • If everything is successful the information is saved in this file: bing_query_stats_YYYY-MM-DD.csv

Data Quality

As I mentioned in the intro, the data quality is questionable and leaves very much up to the imagination. It’s one of the reasons why I wanted to share this script, so others can get their data out and we can hopefully learn more together on what the data represents. The big caveat seems that the data is exported at the time of extraction with a date range of XX days and it’s not possible to select a date range. This means that you can only make this data useful if you save it over a longer period of time and based on that calculate daily performance. This is all doable in the setup we have where we’re using Airflow to save the data into our Google BigQuery data lake, but because it isn’t as straight forward this might be harder for others.

So please share your ideas on the data and what you ran into with me via @MartijnSch