A client forwards a screenshot on a Monday morning. Their Search Console says the main service page sits at position 3.2. Your rank report says 7. Their in-house marketer says “we’re on page one, so why are leads down?” Three numbers, one keyword, and every one of them is correct for what it measures. That is the real problem with SEO metrics: most of the arguments come from people reading different fields as if they were the same field.
This guide sorts the common SEO metrics into two groups. Some you can verify: anyone with the same inputs gets the same number. Others you can only report: they are estimates, averages or model outputs, and they need a caveat every time they leave your hands.
Disclosure: I build Rankfinity, a rank tracker for local SEO work, so I have an interest in how position data gets read. Every definition below links to the source that publishes it, so you can check each claim without trusting me.
Key takeaways. A metric is only as useful as its definition. Position from a SERP check, clicks and impressions from Search Console, and conversions from your own analytics are verifiable. Estimated traffic, keyword difficulty, domain authority scores and visibility indexes are vendor models. Put the definition next to the number in every report and most client arguments disappear.
A metric you can verify has a published definition, comes from a record you can inspect, and returns the same value for two people with the same settings. Everything else is a model output and needs a caveat every time.
Measurable vs reportable: the only split that matters
A measurable metric has three properties. It has a published definition, it comes from a record you can inspect, and two people pulling it with the same settings get the same value. A reportable metric fails at least one of those. It may still be useful, but it is an opinion with a number attached.
Take position. When a tracker checks a keyword, it stores the rendered results page and records where your listing sits. DataForSEO, which supplies the SERP data behind Rankfinity, defines two fields for this. rank_absolute is “the absolute position among all the elements found in SERP”, and rank_group is the “position within a group of elements with identical type values” (DataForSEO help center, checked 2026-09-19). A local pack, an AI Overview and a video carousel all push rank_absolute up while rank_group stays put. Both numbers are verifiable. They answer different questions.
Now take “estimated organic traffic” from a third-party tool. It multiplies an estimated search volume by an assumed click-through rate for an estimated position. Three estimates stacked on each other. You can quote it, but you cannot verify it, and the client’s analytics will disagree with it every single month.
Same inputs, same number
- Published definition
- A record you can inspect
- Two people get the same value
An opinion with a number attached
- Fails at least one of the three
- Often a vendor model
- Useful, but carries a caveat
The SEO metrics table: source, definition, verdict
Here is the working list most agency reports draw from. The last column is the one to put in your reporting template.
| Metric | Where it comes from | What it measures | Verdict |
|---|---|---|---|
| Position (rank_group) | A stored SERP check | Place among organic results only, for one location, device and date | Measurable |
| Position (rank_absolute) | A stored SERP check | Place among every element on the page | Measurable |
| Search Console average position | Google Search Console | Topmost position of your link, averaged across queries and impressions | Measurable, but an average |
| Clicks and impressions | Google Search Console | Recorded Google Search activity for your property | Measurable |
| Conversions from organic | Your analytics and CRM | Leads or sales attributed to organic sessions | Measurable if tracking is audited |
| Geo-grid coverage | Checks at fixed coordinates | Share of grid points where the listing appears in the map results | Measurable, per grid and date |
| Estimated traffic | Third-party tool model | Volume x assumed CTR x estimated rank | Reportable only |
| Keyword difficulty | Vendor formula | A score built from backlink data of ranking pages | Reportable only |
| Domain authority style scores | Vendor link index | A relative ranking inside one vendor’s crawl | Reportable only |
| Visibility or share of voice index | Tool-specific weighting | Weighted blend of positions and volumes | Measurable only if the formula is published |
Nothing on the “reportable” side is useless. Keyword difficulty helps you pick battles. The mistake is presenting it on the same line as clicks, in the same font, as if it had the same standing.
Why the three position numbers never agree
Back to the Monday screenshot. Search Console reports position as “the topmost position occupied by a link to your property or page in search results, averaged across all queries” (Search Console Help, checked 2026-09-19). Google even answers the exact complaint on that page: “The Performance report says my page position is 5, but when I do a search it’s in position 8!” The explanation it gives is personalisation, including “your search history, location, and so on”.
So the 3.2 is an average across every query that showed the page, weighted toward the impressions it won. The 7 in your rank report is one keyword, one location, one device, one day. The client’s “page one” is a personal search from their office. None of them is wrong. They are three different measurements.
Featured snippets add one more twist. Google describes a featured snippet as a result where “the format of a regular search result is reversed” (Google Search Central, checked 2026-09-19). In Rankfinity a featured snippet counts as position 1 and the organic results below it shift by one. Other tools make other choices. Ask your vendor which rule they use before you compare two reports; why two rank trackers show different positions walks through the full list of causes.
If position is the metric your client cares about most, track it the way it can be defended: organic rank tracking with the SERP record stored per check, so any number can be traced back to the page it came from.
3.2
An average across every query that showed the page, weighted toward the impressions it won.
7
One keyword, one location, one device, one day.
“Page one”
A personal search from their own office, with their history and location.
None of them is wrong. They are three different measurements.
Local SEO metrics need a location, or they mean nothing
For a plumber or a dental clinic, one position for “emergency plumber” is close to meaningless. Map results change block by block. A listing can sit first at the client’s front door and vanish two miles out.
That is why grid checks exist. Each point in the grid is a separate search run at exact latitude and longitude, and the listing is matched by its Google place_id, not by business name, so a similarly named competitor never gets counted as your client. The verifiable output is simple: at this grid point, on this date, the listing appeared at this position or did not appear. How to read the patterns is covered on the geo-grid rank tracking page.
The reportable version of the same idea is a single “local visibility score”. Useful as a headline, but only if the report also states the grid size, the spacing and the keyword. Without those three inputs nobody can reproduce it, including you next quarter.
- Fix the pointAn exact latitude and longitude on the grid.
- Run the searchA separate search at that point, on that date.
- Match the listingBy Google place_id, so a similarly named competitor is never counted.
- Record the resultThe position at that point, or not found. Nothing is averaged away.
AI visibility metrics are the least settled of all
Clients now ask whether ChatGPT or Google’s AI Overviews mention them. The honest answer is that measurement here is young. Answers vary by prompt wording, by session and by model version, so any single check is a sample, not a position. We covered what current tools record in what AI visibility tools measure, and there is a manual method in how to check whether AI assistants recommend your business.
Rankfinity’s AI visibility module is in development, so I will not describe it as a finished measurement. Until methods settle, treat every AI mention number as reportable: state the prompts, the date and the number of runs.
Answers vary by prompt wording, session and model version, so any single check is a sample, not a position.
- The prompts you ran, word for word
- The date of the run
- The number of runs per prompt
- The assistant and, where shown, the model version
How to put SEO metrics in a client report without starting an argument
The fix is boring and it works. Every metric in the report carries its definition, its source and its scope in one short line. “Position 7 (organic results only, Chicago, mobile, 22 Sep)” ends the screenshot debate before it starts. “Estimated traffic 1,400 (tool model, not analytics)” stops a client from comparing it to GA4.
Lead with measurable metrics: conversions, clicks, positions with scope. Put reportable ones in a separate block labelled as estimates. When a client pushes back on a number, you can open the stored record instead of arguing about whose tool is right. Branded client reports in Rankfinity are built around that layout, with the check date and location printed next to each position.
Position 7
The client compares it with Search Console and the argument starts.
Position 7 (organic results only, Chicago, mobile, 22 Sep)
The screenshot debate ends before it starts.
Estimated traffic 1,400
Gets compared with GA4 and loses.
Estimated traffic 1,400 (tool model, not analytics)
Read as what it is.
Every position with its date and place
Rankfinity stores each check with its location, device and SERP record, and prints the check date and location next to each position in branded reports.
Audit your report in ten minutes
- List every metric in your current client report
- Mark each one measurable or reportable using the table above
- Add a definition, source and scope line beside each number
- Move the reportable metrics into a separate block labelled as estimates
- Print the check date and location next to every position
Common questions
What are the most important SEO metrics for a local business?
Conversions from organic search, Search Console clicks for non-branded queries, and map positions measured across a geo-grid. Those three are verifiable and tie directly to revenue. Everything else supports them.
Is Search Console average position the same as rank?
No. It is the topmost position of your link, averaged across all queries and impressions over the date range. A tracked rank is one keyword at one place and time. Expect them to differ.
Should I stop reporting domain authority?
You can keep it, but label it as a vendor score from one link index. It is not a Google metric and it does not move rankings by itself.
Which position field should a rank tracker use?
For comparing organic performance over time, rank_group, because page features like AI Overviews do not distort it. rank_absolute is useful when you want to show how far down the page a result has been pushed.
Next step: list every metric in your current client report and mark each one measurable or reportable using the table above. Then see how Rankfinity stores each position check with its location, device and SERP record, so every number in that report can be traced.