Update: I’ve since put Breezy AI Search on this blog and re-run these searches. The before and after is in WordPress search vs AI site search.
I’ve switched WordPress’s built-in search off on this blog. The search bar on the home page isn’t connected to anything yet, because I’m replacing it with an AI search that reads meaning instead of matching words. Before I flip that switch, I wanted a baseline. So I ran WordPress’s own search, the one most WordPress sites are stuck with, against my real posts and wrote down what came back.
This is that audit, step by step, so you can run it on your own site without special tools. The short version: on my blog, 7 of the 23 searches I tried returned nothing, and every one of them had a good answer sitting on the site.
What WordPress search actually does
WordPress search is a plain text match. It looks for each word you type, as a fragment of text, in a post’s title, excerpt and body, and lists whatever contains them. That’s all, and the details explain almost every miss below. (The WP_Query documentation describes the s search parameter behind it.)
- Every word has to be there. A post only comes back if it contains all the words you typed. WordPress skips a short list of filler words such as “how”, “the” and “to”, and single letters.
- Words match as fragments. “move” won’t find “moving”, but “ssl” will find “hassle”.
- By default, only three places are searched: the title, the excerpt and the body. Not the URL slug, and not categories, tags or custom fields.
- Title matches rank first. Beyond that, there’s no real relevance scoring.
- It has no idea what anything means. No synonyms, no plurals or tenses, no forgiveness for typos.
The audit, in five steps
Five checks will tell you how well your search serves your visitors: find out what they search for, test your own questions, sort the misses by cause, check for noise, and look at what a failed search looks like.
- Find out what people actually search for. WordPress doesn’t keep a record of searches, so start one. If your results pages use the
sparameter in the URL (the WordPress default), Google Analytics 4 can log them. Turn on the site search option under enhanced measurement and it records aview_search_resultsevent with the search term. It readsq,s,search,queryorkeywordfrom the URL, and needs no code change (Google’s documentation). I have no visitor data yet, which is why the audit below uses searches I wrote myself. - Write about 20 searches in your visitors’ words. Pick posts you know are on your site, then write what someone might type to find each one. Use the way people describe a problem, not the way you titled the post. I ran mine from the server with WP-CLI (
wp post list --s="..."), which runs the same underlying search query as the search box, so my theme couldn’t get in the way. - Sort every miss by cause. Almost every miss falls into one of four buckets: the word form is different (“move” versus “moving”), a synonym was used (“jogging” versus “running”), an abbreviation wasn’t spelled out (REIT), or the phrasing or spelling differs from yours.
- Test for noise. Search a few short terms your site uses. Fragment matching means short words pull in unrelated pages.
- Look at what a miss looks like. When a search finds nothing, what does your visitor see? Is there anywhere for them to go next?
What I found on my own blog
I wrote 23 searches for things I knew were on this site. They weren’t a random sample: I picked several on purpose to probe the four causes above. Even so, 7 of them returned nothing at all, and each had a matching post.
- “real estate investment trust” found nothing. My post is What I look for before I buy a REIT. It says “REIT” and never spells it out. (Abbreviation.)
- “move ssl certificate to a new server” found nothing. My post is Moving an SSL certificate from one Windows Server to another. It says “moving”. The URL even contains “move”, but WordPress doesn’t search URLs. (Word form.)
- “jogging route” found nothing, while “running route” found four posts, such as Run at Marina Bay and Run at Pandan Reservoir. I wrote “run”. (Synonym.)
- “running shoes” found nothing. The Nike Dualtone Racer review says “shoe”, singular, and a search for “shoes” doesn’t match “shoe”. (Word form.)
- “sneakers” found nothing, for the same post. I never used the word. (Synonym.)
- “cant connect to sql server remotely” found nothing, while “sql server remote connection” found the right post, SQL Server 2016: allowing remote connections on Windows Server 2016. The word “cant” appears nowhere on this blog, and “remotely” isn’t “remote”. (Phrasing.)
- “seo checklist” found nothing. I called my practical SEO tutorial a tutorial, and the only post on this blog that contains the word “checklist” is one about REITs. (Synonym.)
The noise test was just as telling. Searching for “ssl” returned five posts, and two of them (a Parking.sg review and a Western Australia trip) only matched because they contain the word “hassle”.
In fairness, it did well when my wording happened to match the post’s. “how do I fix a 500 error on IIS” found the right post first time, and so did “best chicken wings in singapore”. The searches that worked were the ones where I happened to use the same words I’d used when writing.
What to fix first
Fix what costs nothing first: put your visitors’ words on your pages, and start measuring. None of this needs new software.
- Add the missing words to the pages. Spell out abbreviations once, and mention the common alternative wording. My REIT post needs “real estate investment trust” in its first paragraph. Titles and opening lines carry the most weight, as I covered in my practical SEO tutorial.
- Fill in excerpts. WordPress searches them, and they’re a natural home for alternative wording. Only 1 of my 32 posts has one.
- Start recording searches, as in step 1.
- Give the no-results page a way out: your most useful posts, or a way to contact you.
When patching stops paying off
Patching helps until you notice that every miss above is a problem of meaning, not spelling. An abbreviation, a synonym, a different word form and a different phrasing are all the same problem: the search compares letters, and your visitor is asking about an idea. Adding words to pages means guessing every phrasing in advance, forever.
That is the case for a search that reads meaning. Full disclosure: I am a tech enthusiast at WhooshPro, which makes Breezy AI Search, so weigh what follows accordingly. According to its features page, Breezy installs with one snippet in your site’s head, crawls and re-indexes your pages automatically, and matches questions to your content even with typos, slang or vague wording. It answers only from the pages it has indexed and shows its sources, and when your content doesn’t cover a question it says so and logs the question. The dashboard lists searches that found weak or no results, which is exactly the record step 1 of this audit is trying to build. We wrote up the broader thinking in our guide to AI search for websites.
I’ve since put Breezy AI Search on this blog and run these same 23 searches again. The before and after, misses and all, is in WordPress search vs AI site search. If you’d rather see it against your own content than take my word for it, you can try Breezy AI Search.


