We deleted search volume from our own product

Brown notebooks with black binding on a dark surface, ideal for stationery themes.
Photo by PNW Production on Pexels

Every SEO tool puts a number next to each keyword. 2,400 searches a month. 880. 70. The number looks like a measurement.

Visorank used to show one too. We took it out, and we are not putting it back.

Where our number came from

The honest version: we asked a language model to estimate monthly search volume, and wrote its answer into the database in the same column that holds data we actually collected.

It was convenient. A keyword with no number next to it looks unfinished, and a product that shows "unknown" looks less capable than one showing 1,300. So the field got filled.

Nothing about that estimate was measured. The model had never seen a query log. It produced a plausible number because producing plausible numbers is what it does. Then that number sat in a table, got sorted on, got used to rank which article to write next, and looked exactly like a fact.

We found it while building something else, and deleted every value in that column.

Why this matters more than it sounds

A wrong number is worse than no number, because of what happens next.

You sort your keyword list by volume. The top of that list is now ordered by a guess. You write the first five articles. You spend a month on content aimed at queries that may or may not have demand behind them. Nothing in the tool ever tells you the ordering was arbitrary, because the column looks the same whether the number was measured or invented.

A blank cell is annoying. It is also honest, and it makes you go and find out.

What "unknown" means in Visorank now

If Visorank has not been given a source for real search volume, the volume column is empty. Not zero. Empty.

Zero and unknown are different facts, and conflating them buries good keywords. A query with genuine demand that we have no data for would sort to the bottom of a volume-ordered list if we called it zero, and you would never see it.

So the sort order falls back to things we did observe:

How many of Google's own surfaces suggested the query. If a phrase appears in autocomplete, in People Also Ask, and in related searches, Google is telling you people type it. That is not a volume figure, but it is evidence, and it came from Google rather than from a model.

Where your competitor ranks for it. A competitor sitting at position 2 on a query you do not appear for is a gap with a known shape.

How contested the results page looks.

When you do connect a real volume source, the numbers appear and lead the ranking, because then they are measurements.

The uncomfortable part

Search volume in every tool you have used is modelled to some degree. Clickstream panels, extrapolation, smoothing, rounding to buckets. Providers are generally open about this in their documentation and quiet about it in the interface. A number rounded to the nearest 10 and shown without an interval is a confidence claim the data does not support.

We are not claiming our competitors invent numbers with a language model. We are saying we did, and that the interface gave no hint of the difference, and that we suspect we are not the only product where the gap between the column and its label is wider than it looks.

The test worth applying to any tool, including ours: ask where a specific number came from. If the answer is a method, good. If the answer is a shrug, treat the column as decoration.

What we would do differently

We should have shipped the empty state first. The pressure to fill the field came from the field existing. Once a column is in the schema and rendered in the UI, something will go in it, and the easiest something is a guess.

Build the honest version first, then earn the data to fill it.

If you want to see what a keyword list looks like when nothing in it is invented, that is what Visorank shows you by default.