
An automated SEO dashboard in Looker Studio pulls live data from Google Search Console and GA4, refreshes itself every 12 hours, and lands in your inbox on a schedule you set once. Most reporting setups take about two hours to build properly, and after that you stop exporting CSVs entirely. The pieces that matter are the right connectors, clean filters, and a blend that does not silently duplicate your numbers.
What Belongs on an SEO Dashboard (and What Does Not)
Before you connect anything, decide what question the report answers. A dashboard built for a client executive and one built for the person doing the optimisation work look nothing alike, and trying to serve both produces a cluttered page nobody reads.
A working SEO dashboard usually covers five data points:
- Organic clicks and impressions from Search Console, with a comparison against the previous period.
- Average position and CTR by query and by landing page, so you can spot pages stuck on page two.
- Organic sessions, engaged sessions and conversions from GA4, filtered to organic search only.
- Top gaining and losing pages over the last 28 days versus the prior 28.
- Indexing or coverage signals, if you are pushing Search Console API data into Sheets.
Leave out bounce rate as a headline metric, leave out domain authority scores from third-party tools, and resist the urge to add a live keyword rank grid of 400 terms. Those tend to generate questions rather than answers.
Connecting Google Search Console Correctly
In Looker Studio, create a blank report and add the Search Console connector. You will be asked to pick a property and then a table type, and this choice trips up almost everyone building their first report.
Site Impression gives you query-level data aggregated across the whole property, which is what you want for keyword tables and overall click trends. URL Impression gives you page-level data with dimensions like landing page, device and search appearance, which is what you want for page performance tables.
You cannot mix query and landing page in a single Site Impression table reliably, so the clean approach is to add both data sources to the same report and use each where it fits. Also select Web rather than Image or Video under search type unless you specifically report on image traffic.
Search Console keeps 16 months of performance history, per Google’s documentation on the performance report, so a year-over-year comparison works from month 13 onward. Data also lags by roughly two to three days, which means a dashboard set to “yesterday” will frequently show zeros.
Adding GA4 and Filtering Down to Organic Search
Add the GA4 connector next and select the property, not a specific data stream, unless you genuinely report on one subdomain in isolation. The raw connection includes every traffic source, so the first thing to build is a filter.
Create a report-level or chart-level filter where Session default channel group equals Organic Search. If you also want organic social or referral traffic from citations, use an “include” filter with multiple conditions rather than building separate duplicated data sources.
Your conversion numbers are only as good as the events feeding them, so it pays to confirm your key events are firing before you chart them. If form submissions or calls are not registering as conversions in GA4, the dashboard will cheerfully display an accurate zero. Campaign tagging matters here too, and consistent UTM parameters stop paid and email traffic from leaking into your organic figures.
Blending Search Console and GA4 Without Breaking the Numbers
Blending is where most dashboards go wrong. Looker Studio joins data sources on a shared key, and the only sensible key between Search Console URL Impression and GA4 is the page path, which the two tools format differently.
Search Console returns full URLs including the protocol and domain, while GA4 returns a page path starting with a forward slash. To join them, build a calculated field in your Search Console source that strips the domain:
- Use
REGEXP_EXTRACT(Landing Page, '^https?://[^/]+(/.*)$')to isolate the path. - Normalise trailing slashes on both sides with
REGEXP_REPLACEso/services/and/servicesdo not count as two rows. - Choose a left outer join with Search Console on the left, so pages with impressions but no sessions still appear.
Set the date range on both sides of the blend to match, otherwise the join quietly compares different windows. If a blended table starts showing inflated impressions, you almost always have a many-to-many join caused by leaving device or country in one source and not the other.
Building the Core Charts
Start with a scorecard row across the top: clicks, impressions, average CTR, average position and conversions. Turn on comparison to the previous period so every scorecard shows a percentage delta, which is the single highest-value configuration change in the whole build.
Below that, add a time series of clicks and impressions on dual axes. Daily granularity looks noisy for smaller sites, so switch the date dimension to ISO Year Week when a property gets under roughly 500 clicks a month.
Then add two tables. The first is queries sorted by clicks with CTR and position columns, limited to 25 rows with pagination enabled. The second is landing pages with the same metrics, which is where you spot cannibalisation patterns worth investigating further using Search Console query filtering.
Conditional formatting earns its keep on the position column: green under 3.5, amber between 3.5 and 10.5, red above that. Reviewers scan colour before they read numbers.
Setting Up Controls, Date Ranges and Page Structure
Add a date range control to the report header and set its default to Last 28 days rather than last 30, because 28 days always contains four complete weeks and removes day-of-week distortion from comparisons.
Add a drop-down control bound to the landing page dimension so anyone reading the report can isolate a single service page or blog category. If you manage multiple sites, use a data source control rather than duplicating the entire report.
Split the report into pages: an overview page, a query page, a page-level page, and a technical or conversions page. Reports longer than about four pages tend to get skimmed, and the Looker Studio help centre covers the navigation styles that keep multi-page reports readable.
Automating Refresh, Delivery and Data Extracts
The Search Console and GA4 connectors cache data with a default freshness of 12 hours, which you can shorten to one hour or extend to 12 hours in the data source settings. Shorter freshness means more API calls and slower loading, and for SEO reporting there is rarely a reason to refresh hourly.
Scheduled delivery is the part that makes the dashboard genuinely automated. Open the Share menu, choose Schedule email delivery, and set a cadence:
- Weekly on Monday morning for internal teams who act on the numbers.
- Monthly on the third of the month for client-facing summaries, which allows Search Console’s reporting lag to settle.
- Quarterly for a trimmed executive version with scorecards only.
If a report with large query tables loads slowly, use the Extract Data connector to snapshot up to 100 MB on a daily schedule. Extracts load dramatically faster because they query a static table rather than hitting the API each time a filter changes.
For anything beyond the connector’s row limits, push Search Console API data into Google Sheets on a scheduled script, then connect the sheet. That is also the route for adding rank tracking exports, backlink counts or Core Web Vitals field data from CrUX.
Common Mistakes That Make Dashboards Misleading
Comparing an incomplete current month against a full previous month is the most frequent error, and it makes healthy sites look like they are collapsing every first week. Use rolling 28-day windows or add a note explaining the partial period.
Average position across a whole property is close to meaningless because it weights thousands of long-tail impressions equally with your money terms. Filter position charts to branded or priority query groups instead.
Sharing permissions catch people out too. A report shared with “anyone with the link” still requires viewers to have access to the underlying data source unless you set the data source credentials to Owner rather than Viewer.
The same build logic transfers neatly to paid media, and the approach in our walkthrough on custom PPC reporting in Looker Studio pairs well with this one if you report on both channels in a single file.
Frequently Asked Questions
How Long Does It Take to Build a Looker Studio SEO Dashboard?
A functional dashboard with Search Console, GA4, five scorecards and three tables takes roughly 90 minutes to two hours the first time. Once you have a template, duplicating it for a new site and swapping data sources takes about 10 minutes, since Looker Studio lets you remap sources during the copy process.
Is Looker Studio Free for SEO Reporting?
Yes, the standard version of Looker Studio is free with no cap on reports, viewers or scheduled emails. Looker Studio Pro costs around $9 per user per month and adds team workspaces, content governance and Google Cloud support, which only matters for larger agencies managing dozens of reports.
Why Do My Search Console Numbers Not Match GA4?
They will never match, because Search Console counts clicks from Google search results while GA4 counts sessions that fired a tag. Expect a gap of 10 to 25 percent from bounced loads, ad blockers, consent rejections and redirects, and treat the two as answers to different questions rather than a reconciliation exercise.
How Often Does the Dashboard Refresh Automatically?
By default, Google connectors cache data for 12 hours, so a report opened twice in a morning shows the same figures. You can change this to as little as one hour per data source, though Search Console itself only publishes data two to three days behind real time regardless of your refresh setting.
Can I Add Keyword Rank Tracking From a Third-Party Tool?
Yes, through a Google Sheets export or a paid partner connector from tools such as Semrush, Ahrefs or AccuRanker. The Sheets route is free and reliable: schedule your rank tracker to export daily, point Looker Studio at the sheet, and the dashboard updates without manual input.
Get Help Setting Up Your SEO Reporting
If you would rather have a reporting stack built and tested for your site than spend an afternoon fighting with blend keys, SEO Quirk builds these dashboards as part of ongoing SEO work. You can see how I work on the about page, browse more technical walkthroughs on the blog, or get in touch to talk through what your reporting needs to show.