Rank Tracking Report Template for Client SEO Reporting
A useful rank tracking report answers three questions: did visibility change, why, and what happens next. Keep it to one page: a summary sentence, a table of money keywords with this period's position, last period's position and the page that ranks, a group view of the wider keyword set, the competitors that moved, and a list of work shipped beside the results. Report on a fixed date, from the same location and device each time, and add clicks from Search Console so position is never the only number. The template below can be copied straight from this page.
This template is ours, written for agencies and in-house teams. Replace the sample values with your own. The figures in the tables are placeholders to show the layout, not results from any client.
What a rank tracking report should include
| Section | What it answers | Source |
|---|---|---|
| Summary | What changed and does it matter? | Written by a person |
| Money keywords | Are the terms that drive revenue moving? | Rank tracker |
| Keyword groups | Is the wider set trending up or down? | Rank tracker |
| Clicks and impressions | Is position turning into traffic? | Search Console |
| Competitors | Did someone else move? | Rank tracker |
| Work shipped | What did we change in this period? | Your change log |
| Next steps | What will we do about it? | Written by a person |
The template
1. Header
Client: [name]
Period: [start date] to [end date]
Tracking setup: [country or city], [mobile or desktop], [search engine]
Data sources: [rank tracker], Google Search Console
Prepared by: [team]2. Summary
[Number] of [number] money keywords improved this period and [number] fell.
The main change was [keyword or page], which moved from [x] to [y] after [work shipped].
Clicks from organic search were [up or down] [number] against the previous period.
Next period we will [one specific action].3. Money keywords
| Keyword | Page that ranks | Last period | This period | Change | Clicks | Note |
|---|---|---|---|---|---|---|
| sample keyword one | /service-page | 14 | 9 | +5 | 38 | Title and intro rewritten |
| sample keyword two | /pricing | 6 | 7 | -1 | 52 | Normal movement |
| sample keyword three | /blog/guide | Not in top 100 | 61 | New | 0 | Page published this period |
4. Keyword groups
| Group | Keywords | In top 3 | In top 10 | In top 20 | Average position |
|---|---|---|---|---|---|
| Service pages | 40 | 3 | 11 | 22 | 18.4 |
| Comparisons | 25 | 0 | 4 | 9 | 27.1 |
| Guides | 60 | 1 | 6 | 20 | 31.8 |
Position bands are easier to read than a single average, because one keyword falling out of the top 100 can drag an average without meaning much.
5. Competitors
| Competitor | Keywords in top 10, last period | This period | Which pages moved |
|---|---|---|---|
| competitor-one.com | 12 | 15 | /comparison-page |
| competitor-two.com | 9 | 9 | No change |
6. Work shipped
| Date | Change | Page | Status | Expected effect |
|---|---|---|---|---|
| 2026-11-04 | Rewrote title and intro | /service-page | Live | Better match for the main query |
| 2026-11-11 | Added internal links from 3 guides | /service-page | Live | Stronger signals to the target page |
Keep shipped work separate from results. A change does not cause every movement that follows it, so show them side by side and let the reader see the timing.
7. Next steps
1. [Action], owner: [name or role], due: [date]
2. [Action], owner: [name or role], due: [date]
Decision needed from you: [question, or none]Sample commentary you can adapt
- A clear win: [Keyword] moved into the top 10 for the first time, two weeks after the page was rewritten. Clicks have started to follow, but one period is too short to call this a trend.
- A fall: [Keyword] dropped from 6 to 11. A competitor published a new comparison page in the same week, and we will update ours next period.
- No change: Rankings were flat this period, which is expected while the new pages are indexed. We will look again on [date].
- Normal movement: Small moves of one or two positions are normal and are not a reason to change anything.
How to report keyword rankings without misleading anyone
- State the setup. Position depends on country, city and device, so write it at the top of every report.
- Do not mix sources in one column. A tracker reports a position from a set location, while Search Console reports the topmost position averaged across real impressions. Google's documentation describes that second number, and it often differs from a tracker's.
- Use a fixed comparison window. Compare the same weekday or the same length of period each time.
- Report bands and trends rather than one-day wobble.
- Include the keywords that fell. A report that only lists wins stops being trusted.
- Never present a ranking as a guarantee. Nobody controls a position, and a contract should not promise one.
Which keywords belong in the report
A report gets worse as it gets longer. Name only the keywords a client would notice, and group the rest. These rules keep the money keyword table to a length someone will read.
- Name 10 to 25 keywords that map to a service, product or page the client earns money from.
- Agree that list with the client at the start, and change it only with a note in the report, since swapping keywords quietly breaks the comparison.
- Separate brand from non-brand. Brand terms usually rank well regardless of your work and can flatter a summary.
- Show the page that ranks as well as the position. If the wrong page ranks, the fix is different from the one for a low position.
- Group the rest by topic or service line, and report them in position bands.
- Add a keyword only when you intend to act on it. Keywords nobody will act on belong in Search Console, which is free.
How often to send it
Monthly suits most retainers. Weekly suits a migration or launch where someone will act on the data. Daily reports rarely change a decision, so keep daily data in the tool for your own team and send a summary. Most trackers can schedule this: Wincher offers scheduled PDF reports, Keyword.com has shared reports and ProRankTracker lists schedulable reports and shared live reports.
Add AI answers as a separate section
If clients ask about AI search, add a short section after rankings rather than blending the numbers. A position and a mention in an answer are different measurements. Our weekly AI visibility report template shows that layout. Fenn can supply that section: it asks ChatGPT, Claude, Gemini, Perplexity and Grok your client's buyer questions when you start a check, and exports to CSV. It does not track rankings, so the keyword tables above still come from your tracker. Plans are set up after a demo.
FAQ
What should a rank tracking report include?
A summary, money keywords with period-over-period position, keyword groups by position band, clicks from Search Console, competitor movement, work shipped and next steps.
How often should you report rankings to a client?
Monthly for most retainers, and weekly during a migration or launch. Keep daily data for your own team.
Why do my report's rankings differ from what the client sees?
Search results vary by location, device and search history. Google says the same about Search Console's average position. State your tracking setup in the header so the difference is expected.
Is average position a good metric to report?
Only with care. One keyword leaving the top 100 can move an average sharply, so position bands and named money keywords are easier to act on.
Can I automate this report?
You can automate the tables with a scheduled report or a Looker Studio connector. Write the summary and next steps yourself, since those are what a client pays for.
Put this to work on your own website.
Fenn finds what your customers ask, drafts the articles and site fixes, and measures what ChatGPT, Claude, Gemini, Perplexity and Grok say about you — with every change waiting for your approval.