What a 0.85 similarity score actually means
Cosine similarity sits underneath every semantic SEO tool and is widely misread. How retrieval systems really score relevance.
If you have used any semantic SEO tool, you have seen a similarity score. Two pages are "92% similar." A page matches a query at "0.85." The number looks like a percentage, so everyone reads it like one: 0.85 must mean strongly related, 0.50 must mean halfway related, and anything above 0.90 must be nearly identical.
Almost none of that is true. And because retrieval systems — the machinery inside AI answer engines — run on these scores, misreading them means misreading how your site will be retrieved.
What the number actually is
Modern retrieval starts by converting text into embeddings: long lists of numbers that encode meaning as a direction in space. Two pieces of text about the same thing point in roughly the same direction. To compare them, systems measure the angle between the two vectors. That measurement is cosine similarity: 1.0 means identical direction, 0 means unrelated.
So far, so intuitive. The problem is what embedding models do in practice.
Why everything scores high
Embedding models don't spread text evenly across their space. They pack it into a narrow cone. Every page on your website shares an enormous amount of "sameness" before topic even enters the picture: it's all English, it's all web content, it's all one brand's voice, with similar navigation and formatting. The model encodes all of that shared context into the vector.
The result: when we measured a real 105-page crawl, randomly chosen pairs of pages from the same site — a privacy policy and a product page, say — averaged around 0.82 cosine similarity. Pages with nothing topically in common routinely scored 0.85.
Read that again with the percentage mindset and it sounds absurd: a privacy policy is "85% similar" to a product page? Of course not. The score isn't measuring topical relatedness on a 0-to-100 scale. Most of it is measuring "these are both web pages on the same site." The topical signal lives in the narrow band above that baseline. On the crawl we measured, genuine topical relationships started around 0.86, and true near-duplicates sat above 0.95. The entire useful range was squeezed into roughly a tenth of the scale.
The same number means different things in different comparisons
It gets less intuitive. Retrieval models embed queries and documents differently, because a three-word question and a two-thousand-word page are different kinds of text. That means query-to-page scores live in a completely different band than page-to-page scores.
On the same crawl, a deliberately off-topic query — pizza recipes, against a software blog — still scored 0.46 against its best "match." Genuinely on-topic queries topped out between 0.56 and 0.72. So for query matching, 0.60 is a strong retrieval hit. For page-to-page comparison, 0.60 essentially never occurs.
Same metric, same model, same website — and the meaning of "a good score" shifts entirely depending on what is being compared. Swap the embedding model and every threshold moves again. There is no universal rule that 0.75 means related. Any tool implying otherwise is smoothing over the truth.
How to actually read a similarity score
Treat the score like a raw sensor reading, not a grade. A thermometer reading of 72 means nothing until you know whether it's Fahrenheit or Celsius. A cosine score means nothing until you know three things:
- The noise floor. What does an unrelated comparison score? That is your zero, no matter how high the absolute number looks.
- The spread. For any query, the interesting signal is lift over the site's median — one page at 0.68 when the site median is 0.50 is a real match. A whole site clustered between 0.55 and 0.60 means the query is generic and nothing truly matches, including the "top" result.
- Known-good anchors. What do matches you can verify by reading actually score? Wherever verified matches separate from plausible-but-wrong ones, that is your threshold.
This is also how retrieval works in the systems answering questions about your site. An AI engine doesn't retrieve your page because it crossed some magic 80% line. It retrieves the passages that score highest relative to everything else it could have retrieved. Relevance is competitive, not absolute.
Why we show the real number
This is why Silkra's search playground shows raw cosine scores instead of dressing them up as percentages. A percentage implies a scale that doesn't exist, and it hides the most useful information: where a page sits relative to the noise floor and relative to the rest of the site.
The honest version is more useful. The raw score, the site's distribution for that query, and calibrated labels for what counts as strong, good, or loose under the actual model doing the scoring. That is what retrieval sees. If you are optimizing for AI search, that is the number worth understanding — not a percentage that was invented to feel comfortable.
Put crawl evidence to work
Download Silkra and turn audits, briefs, and fixes into one focused workflow.
Get started