How to build a content performance dashboard

TL;DR

You can build a fully functional content performance dashboard in about two to three hours using Google Looker Studio connected to Google Analytics 4 and Search Console. The result is a live, auto-refreshing view of traffic, engagement, rankings, and conversion data for every piece of content you publish. You need free Google accounts and a basic comfort with spreadsheets.

What You Need Before You Start

  • A Google Analytics 4 property set up on your site with at least 30 days of data collected
  • A Google Search Console account verified for the same domain
  • A Google Looker Studio account (free, just needs a Google login)
  • A Google Sheets spreadsheet for your content inventory (free)
  • Optional: an Ahrefs or Semrush account if you want keyword ranking data beyond what Search Console provides
  • Your site’s URL structure written down, for example /blog/, /resources/, or /articles/, so you can filter only content pages
  • A list of your 20 to 50 most important URLs, which you’ll use as a seed for the content inventory sheet

Step 1: Create Your Looker Studio Report

Go to lookerstudio.google.com and click Blank Report. Give it a name like “Content Performance Dashboard 2026” so it’s easy to find later.

Before adding any data, set the report-level date range. Click File > Report settings and set the default date range to “Last 90 days.” This becomes the baseline your whole team sees when they open the report. You can always override it per chart.

Now add your first data source. Click Add data in the toolbar, then choose Google Analytics 4. Select your GA4 property from the list and click Add. Looker Studio will pull in all the available dimensions and metrics automatically.

Create a simple text box at the top of the first page with the site name and the phrase “Content Performance Dashboard.” This acts as your header and makes it obvious what people are looking at when they share the link.

You should now see a blank report canvas with a GA4 data source listed at the bottom of the screen under “Data sources.”

Step 2: Connect Google Search Console

Search Console data is separate from GA4, so you need to add it as a second source.

Click Add data again and choose Search Console. Select your site property from the dropdown. Looker Studio will show two connection options: “Site Impression” and “URL Impression.” Choose URL Impression because you want page-level data, not just domain-level aggregates.

Once connected, you will have access to dimensions like Query (the search term), Landing Page, Country, and metrics like Clicks, Impressions, CTR, and Position.

To verify the connection worked, drag a simple Scorecard onto the canvas. Set the metric to Clicks. The number should roughly match the organic clicks you see in your Search Console dashboard.

You should now see two active data sources listed: your GA4 property and your Search Console site. Both appear under the “Data sources” panel on the right.

Step 3: Build Your Content Inventory in Google Sheets

Your dashboard needs a reference list of your content so you can filter, tag, and segment it properly. Open a new Google Sheet and create these columns:

URL | Title | Content Type | Publish Date | Author | Cluster | Priority

Fill in your 20 to 50 most important URLs. Content types might be “blog post,” “case study,” “landing page,” or “guide.” Cluster refers to the topic pillar the piece belongs to, such as “SEO,” “email marketing,” or “analytics.”

This sheet becomes a lookup table in Looker Studio. To connect it, go back to Looker Studio, click Add data, scroll down to Google Sheets, and select your inventory file. Now you can blend this sheet with your GA4 or Search Console data using the URL as the join key.

For the join to work, your GA4 Page Path dimension and your Sheet’s URL column need to match exactly. Strip trailing slashes and make everything lowercase in both places to avoid mismatches.

You should now see a third data source in Looker Studio pointing to your Google Sheet.

Step 4: Build the Traffic Performance Table

Add a new page to your report and name it “Traffic.” This page will show you which content drives the most sessions and how that changes over time.

Insert a Table component. Set the data source to GA4. Use these settings:

  • Dimension: Page Path
  • Metrics: Sessions, Engaged Sessions, Average Engagement Time
  • Sort by: Sessions descending
  • Filter: Add a filter where Page Path contains /blog/ (replace with your actual content path)

Add a Date Range Control widget at the top of the page so viewers can change the time window without editing the report.

Below the table, add a Time Series chart. Set the dimension to Date and the metric to Sessions. Add a breakdown dimension of Page Path limited to the top 5 pages. This gives you a quick view of traffic trajectory across your best content.

You should now see a ranked list of your content pages by sessions with a trend line chart below it.

Step 5: Add a Search Rankings View

Add a second page called “Search.” This page uses your Search Console data source.

Insert a Table with:

  • Dimension: Landing Page, Query
  • Metrics: Clicks, Impressions, CTR, Position
  • Sort by: Clicks descending

Add a scorecard row at the top with four scorecards showing total Clicks, total Impressions, average CTR, and average Position for the selected period. These give a quick pulse check before anyone scrolls into the table.

To find quick-win opportunities, add a second table filtered to pages where Position is between 4 and 15 and Impressions is greater than 500. These are pages sitting just outside the top 3 that have real visibility but haven’t cracked the first few results yet. Updating those pieces tends to produce the fastest ranking gains.

For more on extracting insight from this data, see How to use Google Search Console for content audits.

You should now see a full-page view of your top organic landing pages with their associated queries and ranking positions.

Step 6: Build a Content Decay Tracker

Content decay is when a piece of content that used to perform well starts losing traffic month over month. Catching it early saves you from a slow bleed you don’t notice until it’s significant.

Add a third page called “Decay.” Insert a Table with GA4 data showing:

  • Dimension: Page Path
  • Metrics: Sessions (current period), Sessions (comparison period set to “Previous period”)
  • Sort by: Percent change ascending (worst performers first)

In Looker Studio, enable the comparison date range by clicking on your Date Range Control widget and toggling on “Include comparison.” This adds the delta column automatically.

Add a conditional formatting rule: any row where sessions dropped more than 20% compared to the prior period gets highlighted in red. Use the style panel on the table component to set this up under “Conditional formatting.”

You should now see a table sorted from biggest traffic losers to biggest gainers, with red rows flagging urgent decay cases.

Step 7: Add Conversion Tracking

Traffic without conversion context is incomplete. Add a fourth page called “Conversions.”

In GA4, make sure you have at least one key event set up, such as a form submit, a content download, or a newsletter signup. If you haven’t done this yet, see Setting up GA4 key events for content marketers.

In Looker Studio, build a table with:

  • Dimension: Page Path
  • Metrics: Sessions, Key Events (choose your conversion event name), Conversion Rate (calculated field)

To create Conversion Rate as a calculated field, click Add a field in the data source panel and enter:

Key Events / Sessions

Format it as a percentage. Now you have a direct view of which content pages are generating actual business outcomes, not just pageviews.

You should now see a table showing both traffic volume and conversion rate side by side for every content page.

Step 8: Add a Summary Overview Tab

Rename the first page of the report “Overview.” This is what opens by default and should give anyone a 30-second read of content health.

Use Scorecards at the top for: Total Sessions (organic), Total Clicks (Search Console), Average Position, and Total Conversions.

Below those, add a mini version of each page’s key table, limited to the top 10 rows. Use the Page Navigation feature in Looker Studio to add clickable links so viewers can jump to the full page for any metric.

Add a text note at the bottom of the overview page explaining what the dashboard covers and who to contact with questions. This sounds minor but saves a lot of Slack messages when you share the link with stakeholders.

You should now see a complete overview page that works as a landing pad for anyone opening the dashboard for the first time.

Step 9: Schedule a Weekly Email Snapshot

Looker Studio lets you email a PDF snapshot of your report on a schedule. Click Share > Schedule email delivery. Set it to send every Monday morning to your content team. Choose the Overview page as the default.

This means even team members who never open the link directly still see a weekly snapshot in their inbox. It keeps the data visible without requiring everyone to remember to check the dashboard.

For teams using Slack, the free Zapier tier can turn the scheduled Looker Studio email into a Slack message by forwarding the PDF attachment to a dedicated #content-metrics channel.

You should now see a confirmation screen with the scheduled delivery details and recipient list.

Step 10: Validate and Share

Before sharing the dashboard link with your team, run a quick sanity check across all four pages.

Compare the sessions on your Traffic page against the numbers you see directly in GA4 for the same date range. They should match within a few percentage points. If they’re wildly different, check whether your content path filter is too restrictive.

Do the same for Search Console: compare the total clicks in your dashboard scorecard against the Overview section in Search Console itself.

Once validated, click Share and switch the access setting to “Anyone with the link can view.” Copy the link and paste it into your team wiki, your content calendar doc, and your regular reporting email template.

You should now see a fully functional, shareable content performance dashboard with live data across traffic, rankings, decay, and conversions.

Common Mistakes To Avoid

  • Using Sessions instead of Engaged Sessions as your primary metric. In GA4, a session counts if someone lands and immediately bounces. Engaged Sessions (sessions lasting 10+ seconds or including a key event) tell you whether anyone actually read the content.
  • Forgetting to filter for content pages only. If you don’t filter by your blog or content path, your dashboard will mix homepage traffic, category pages, and product pages into your content numbers, making everything look better than it is.
  • Not accounting for GA4 data sampling. GA4 samples data on free properties above certain thresholds. If your site gets over 500k monthly sessions, your dashboard numbers may be estimates. Check for the green shield icon in Looker Studio, which signals unsampled data.
  • Blending data without matching URL formats. If your GA4 data shows /blog/post-name and your Sheet inventory shows https://yoursite.com/blog/post-name, the join will fail silently and you’ll get blank cells everywhere in blended views.
  • Sharing with edit access by default. Anyone with edit access can accidentally delete charts or change filters. Always share as “view only” and only grant edit access to people actively maintaining the dashboard.
  • Only looking at top performers. The decay tracker on page three exists specifically because most people only check their best pages. Your traffic losses almost always come from the middle of the pack, not the bottom.

When To Level Up

This Google-native setup works well for most content teams publishing up to a few hundred pieces. Once you hit the limits of what free-tier tools can do, the cracks start showing: you can’t pull in CRM data, you can’t track content across multiple domains easily, and blending three or more data sources in Looker Studio becomes brittle.

The tipping point is usually one of three things. First, you start needing to correlate content performance with pipeline or revenue data from HubSpot or Salesforce. Second, you’re managing more than 500 URLs and the Sheets inventory becomes unmanageable. Third, your team has grown to the point where multiple people are editing the dashboard and breaking each other’s filters.

At that stage, dedicated content intelligence tools like Semrush’s Content Audit or a purpose-built analytics stack with a proper data warehouse become worth the cost. See /category/growth/ for a full breakdown of the options at each stage of content operation maturity.

Frequently Asked Questions

How often does Looker Studio refresh the data?
GA4 data in Looker Studio refreshes approximately every 12 hours. Search Console data can lag by two to three days. If you need more frequent updates, you can manually trigger a cache refresh by opening the report and pressing the refresh icon in the top right corner.

Do I need a paid GA4 account to use this dashboard?
No. The free tier of GA4 (called Google Analytics 4 standard) works for this entire setup. Google Analytics 360 removes data sampling and increases processing limits, but you don’t need it for a site under a few million monthly sessions.

Can I track multiple websites in one dashboard?
Yes. You can add multiple GA4 properties and multiple Search Console sites as separate data sources. Create a filter control at the top of each page tied to the data source selector. It gets complex quickly though, so consider a separate dashboard per domain until you have a strong reason to consolidate.

What if my content team doesn’t trust the data?
The fastest way to build trust is to show exactly how each number is calculated. Add a hidden “Data Dictionary” page at the end of the report with a table listing every metric, its data source, and the formula or definition used. Skepticism usually comes from people not knowing where a number came from.

How do I track content by topic cluster or pillar?
This is where the Google Sheets inventory from Step 3 becomes essential. Blend your GA4 traffic data with the Sheet using the URL as the join key, then add a filter control tied to the “Cluster” column. You can now slice every chart by topic pillar with a single click.

Bottom Line

Building a content performance dashboard does not require a data engineer or a six-figure analytics budget. With GA4, Search Console, a Google Sheet, and Looker Studio, you can have a live, segmented view of your entire content library in a single afternoon. The ten steps above give you traffic trends, search rankings, content decay alerts, and conversion tracking all in one shareable link. Start with the Overview and Traffic pages if you’re short on time and add the Decay and Conversion views once those are stable. The dashboard pays for itself the first time you catch a decaying post before it loses half its traffic. Ready to take the next step? Head to /category/growth/ for a curated list of tools that layer on top of this foundation as your content operation scales.