Skip to content

Add Your Heading Text Here

Search Console keeps sixteen months of data, then quietly deletes the oldest month. That limitation alone justifies moving SEO reporting into Power BI: the day you schedule an export, you start owning a history Google will not hold for you, and history is what turns a chart into a decision. This is the practical setup, followed by the four dashboards that earn their screen space, each tied to the one decision it exists to support.

Get the data in without a development project

Two routes cover most teams. The fuller one is the Search Console bulk data export into BigQuery, which delivers unsampled daily rows and connects to Power BI through the native BigQuery connector; pair it with the free GA4 BigQuery export and both sources share a home. The lighter one is scheduled CSV exports dropped into a OneDrive or SharePoint folder that Power Query reads as a folder source, so each new file appends on refresh without anyone touching the model. Either way, build a proper date table, relate everything on date and landing page, and leave the raw tables untransformed so a schema change upstream breaks one query, not the whole report.

Dashboard one: query movement

A matrix of your priority queries showing clicks and average position for the last 28 days against the previous 28 and the same period last year, with conditional formatting on the deltas. The decision it supports: which pages receive this month’s refresh time. A query sliding from position three to seven on a page nobody has touched in a year is a work order with a name on it. Without the year-on-year column, seasonal dips get misread as decay, and teams end up refreshing pages that were never broken.

Dashboard two: page decay

One line per URL of trailing 28-day clicks across at least eighteen months, with a flag on any page running more than 30 percent below its own peak. The decision: refresh, consolidate or prune, chosen page by page. Catching decay at 30 percent down is cheap, because the page still has rankings to defend; catching it at 80 percent down usually means a full rewrite and a long climb back. Review the flagged list monthly and record the action taken, so the same page does not get debated twice.

Dashboard three: conversion by landing page

Join GA4 sessions and key events to Search Console clicks per landing page, and show four columns: clicks, sessions, key events and conversion rate. The decision: where the next unit of content budget goes. Pages converting well on modest traffic are the growth list, since ranking gains there pay back immediately. Pages with heavy traffic and near-zero key events have an intent or offer problem that more traffic will not fix. This dashboard is also the honest answer to the budget question, because it prices organic pages in outcomes rather than sessions.

Dashboard four: cannibalisation

Group the query table by query, count distinct URLs earning impressions in the same week, and filter to queries with two or more. Add average position per URL so you can see which page is winning. The decision per row: merge, differentiate or leave alone. Two URLs splitting one commercial query usually calls for a merge and a redirect from the weaker page. Two URLs matching genuinely different intents need their titles and headings pulled further apart instead. Leave informational overlaps alone when both pages hold stable positions, because not every duplicate signal is a problem worth an afternoon.

One decision per screen

The discipline that keeps this useful is refusing dashboards that merely describe. Every page of the report should end in a verb: refresh this, merge that, fund this. Start the bulk export today, since history only accrues from the day you switch it on, and build the query movement matrix first; it pays back inside a month.

More from the blog