What Semantic Search Actually Does (And Why Keyword Search Keeps Failing You)

3 min read

Someone lands on your site and types “do you help small teams?” into the search box. You have a whole page about it — titled “Solutions for growing businesses.” WordPress returns nothing, because the words don’t match. The visitor concludes you don’t do it, and leaves.

That’s not a bug in WordPress. Its search does exactly what it was designed to do: find posts containing the letters you typed. The mismatch is that people don’t search in your vocabulary. They search in theirs.

In short

Keyword search matches letters; semantic search matches meaning. IrisAI runs both, so a visitor asking “do you help small teams?” reaches your page about growing businesses — with no shared vocabulary at all.

Keyword search matches strings, not meaning

Default WordPress search runs a LIKE query against post titles and content. If the query is “staff”, it finds the literal string “staff”. It has no way of knowing that “our team”, “the people behind this”, and “who works here” all point at the same page.

This produces two failures, and the second is worse than the first. Sometimes you get nothing back, which at least tells the visitor to try again. Other times you get a long list ranked by nothing in particular, where the genuinely relevant page sits eighth. Most people don’t scroll to eighth.

Semantic search matches meaning

Semantic search takes a different approach. Instead of storing your words, it stores what your words mean — as a list of numbers called an embedding. Passages about similar topics end up with mathematically similar embeddings, whether or not they share vocabulary.

When a visitor asks a question, that question gets converted the same way. Finding relevant content becomes a matter of finding the stored passages whose numbers sit closest to the question’s numbers. “Do you help small teams?” lands near your growing-businesses page because the ideas overlap, even with zero words in common.

Why the best systems use both

Semantic search has a blind spot of its own: exact strings. Product codes, version numbers, surnames, SKUs. “Error 502” and “error 504” mean nearly the same thing to an embedding model and something completely different to the person reading your docs.

So IrisAI runs both. A keyword pass catches literal matches and exact identifiers. A semantic pass catches paraphrases and synonyms. The results are scored together, which means a page can surface either because it used the visitor’s exact words or because it covered their actual question.

What this changes for your visitors

The practical difference is that visitors stop having to guess your terminology. They can ask the way they’d ask a person:

  • “How much does this cost for a small site?” finds your pricing page, even though it never says “small site”.
  • “Can I cancel?” finds your refund terms, even though they’re written as “termination”.
  • “Is my data safe?” finds your security section, even though it’s headed “Data protection”.

None of this requires you to write differently, maintain a synonym list, or predict every phrasing in advance. It just requires that the answer exists somewhere on your site.

The honest limitation

Semantic search finds what you’ve written. It cannot find what you haven’t. If three visitors a week ask about your refund window and your site never states it, no retrieval method will produce that answer — and a well-behaved assistant will say so rather than invent one.

That’s worth treating as a feature. The questions your assistant declines are a live list of the content gaps costing you conversions. Most site owners have never had that list before.

See what your visitors are really asking.

Test your reading