Client SEO portfolio dashboard for your whole agency

See every client's rankings, traffic, backlinks and site health on one screen, then build their monthly report in a click.

App
AhrefsGoogle DocsSlack BotMarketingOperationsAI ReportsResearch & Monitoring
PromptCreate

I run an SEO agency and I want one screen that shows how every client is doing, instead of opening Ahrefs project by project. Build me an interactive client SEO portfolio dashboard. The home screen is a board with one row per client, where each client is a Rank Tracker project pulled from Ahrefs List Rank Tracker Projects.

Each client row shows Domain Rating (Get Domain Rating), tracked keyword movement since last month plus the share of tracked keywords sitting in the top three and the top ten (Get Rank Tracker Overview), organic traffic and traffic value (Get Metrics, with Get Metrics History for the month over month change), referring domain count (Get Backlinks Stats), and site health score (Get Site Audit Health Score). For every metric show the current value and the change since last month side by side, because the change is what I look at first.

Be careful with Ahrefs API units. The Rank Tracker, Management and Site Audit project endpoints are in the free category and do not consume units, so load those immediately for every client whenever the board opens. The Site Explorer metrics (Get Domain Rating, Get Metrics, Get Metrics History, Get Backlinks Stats, List Top Pages) do consume units, so fetch them per client on demand rather than on every page load. Store the last fetched values with a timestamp, show me when each row was last refreshed, and give me a refresh button on each row plus a refresh all button on the board.

Color code the board so accounts that slipped jump out. A client whose keyword movement, traffic, or top ten share fell since last month reads red, flat reads neutral, and improvement reads green. Let me set the threshold for what counts as a slip and default it to a drop of more than five percent. Sort the board worst first by default so the accounts that need attention sit at the top.

Let me tag each client with their account manager and store that in the app. The app should know who is signed in, so I can flip the board to just my accounts with one toggle and have it remember my choice. Let me also pin the three or four metrics my agency actually reports on so the table matches what our retainers promise, keeping the remaining columns available behind a show all columns control. Pinned columns are an agency wide setting that anyone can change. Per client, also store which Slack channel their reports go to (let me pick it from Slackbot List Channels) and which Ahrefs Site Audit project maps to them.

Clicking a client opens their detail view. It shows keyword winners and losers for the month, meaning the biggest position gains and the biggest drops with the keyword, its old position and its new position (Get Rank Tracker Overview, with List Project Keywords for keyword tags and locations). It shows a competitor position comparison of where the client sits against each tracked competitor (Get Rank Tracker Competitor Overview) and which competitor pages are taking those keywords (Get Rank Tracker Competitor Pages). It also shows the client's top traffic pages (List Top Pages).

Put a Build monthly report button on the client detail view. It creates a formatted Google Doc using Google Docs Create Document and then Batch Update Document to lay out the content, titled with the client name and the month. The doc contains a headline summary, a table of this month's numbers against last month's, the biggest keyword wins and losses, competitor movement, top traffic pages, and a written summary in plain client facing language explaining what changed and why, connecting the numbers to each other rather than restating them. Use real headings, bold labels and a table so I can hand it to a client without reformatting it.

Once the doc exists, show it to me in the app so I can read it before anything goes out, then let me post the link into that client's Slack channel with Slackbot Send a Message, along with a short message naming the client, the month, and a two line headline of how the month went. Keep a history of every report built for each client with the month, the build date and the doc link, and list those past reports on the client view.

If a client has no Site Audit project connected, leave the health score blank rather than failing the row. If any single metric fetch fails for one client, that must not break the rest of the board.

What does this prompt do?

  • Lists every client you track in Ahrefs as one row on a single board, with Domain Rating, keyword movement since last month, share of keywords in the top three and top ten, organic traffic and traffic value, referring domains, and site health score
  • Color codes the board so any account that slipped since last month jumps out before the client asks about it, worst accounts sorted to the top
  • Opens a client detail view with the month's keyword winners and losers, how the client compares to each tracked competitor, and their top traffic pages
  • Builds a formatted monthly report in Google Docs with the numbers, the biggest wins and losses, and a written summary of what changed and why, then posts the link into that client's Slack channel

What do I need to use this?

  • An Ahrefs account on a paid plan, with each client set up as a Rank Tracker project
  • Ahrefs Site Audit projects for any client whose site health score you want on the board
  • A Google account for creating the monthly report documents
  • A Slack workspace, ideally with a channel per client

How can I customize it?

  • Pin the three or four metrics your retainers actually promise so the table matches what you report on, and keep the rest tucked behind a show all columns control
  • Set how big a monthly drop counts as a slip before a client row turns red
  • Tag each client with their account manager so every person on the team can filter the board down to just their own accounts
  • Change the report layout and the tone of the written summary to match how your agency writes to clients

FAQs

Do I need a separate Ahrefs project for each client?
Yes. The board is built from your Ahrefs Rank Tracker projects, one row per project, so each client you want on the dashboard should already be set up as its own project. Clients you have not set up yet simply will not appear until you add them in Ahrefs.
Will this burn through my Ahrefs API allowance?
It is built to avoid that. The rank tracking data behind most of the board is free and does not consume your allowance, so the board loads without cost. The metrics that do cost, like traffic and backlinks, are fetched per client and then saved with a timestamp, so you refresh a client when you want fresh numbers rather than paying for every page load.
Can each account manager see only their own clients?
You tag every client with their account manager, and anyone can flip a toggle to show just their accounts. It is a filter rather than a permission wall, so the whole team can still see the full portfolio when they need to.
Can I read the monthly report before the client sees it?
Yes. The report is created as a normal Google Doc and shown to you in the app first, so you can read it, edit anything, and only then send the link to the client's Slack channel. Every report stays listed on the client view with its month and link.
What if a client has no Site Audit set up?
That client's health score column is simply left blank and the rest of their row works normally. The same goes for any single metric that fails to load, so one gap never takes down the whole board.

Related templates

Share of voice dashboard for your brand and competitors

See how your brand's news coverage and sentiment stack up against four competitors, then let an assistant write the weekly report for you.

GDELT
Notion
Slack Bot
App
Approval war room for every social post awaiting sign-off

One screen showing every social post waiting on approval, sorted by deadline, so reviewers can approve or reject without leaving the page.

Hootsuite
Slack Bot
App
Turn champion job changes into new pipeline in Attio

Every Monday, find the past champions and closed-won contacts who changed jobs, update Attio, and get the moves worth chasing in Slack.

Boomerang
Attio
Slack Bot
Agentic Task
Collect social post requests and schedule them in Hootsuite

Staff submit what happened, your social manager edits the copy, picks the accounts and puts it on the calendar without a single spreadsheet.

Hootsuite
Slack Bot
General Input Database
App
Voice agent QA review board for your Hume EVI calls

Open one board each morning, see which voice calls went badly, replay the exact moment the caller got frustrated, and file the fix.

Hume
Linear
Slack Bot
App
Clear your Guru verification backlog in one weekly app

A personal queue of every overdue Guru card, sorted by how late it is, with one-click verify, reassign, comment, and an agent that drafts the refresh for you.

Guru
Slack Bot
App

Stop opening Ahrefs project by project.

Give your agency one board for every client's SEO numbers, and build the monthly report from the same screen.