TL;DR WordPress core doesn't log search queries, so you need a plugin, GA4 with the
sparameter, or server logs to capture them. Every query typed into your internal search box is a ready-made prompt you can feed into an AI visibility check. Zero-result queries are the cleanest content-gap signal you'll ever get, and they're usually fixable fast. Map queries to Semly's five prompt intents, then check per prompt whether your brand is mentioned or actually cited. Publish answer-first content straight to WordPress through the Semly integration, and measure Citation Rate, not just traffic.
Your visitors are already telling you what they want. They type it into your search box, hit enter, and either find something or bounce. Most WordPress owners never look at that list. That's a wasted asset, because those queries are the same questions people now ask ChatGPT, Gemini, and Perplexity.
This guide walks you through the whole loop: capture the queries, group them, find the gaps, check what AI answers today, write content that gets pulled into answers, and publish it without copy-pasting. Six steps, one afternoon to set up, then a rhythm you can keep.
What WordPress site search data actually tells you (and what it doesn't)
First, the honest part. WordPress core does not store search queries anywhere. If you never turned on logging, you have no data. Nothing to export, nothing to analyze.
The native search itself is also basic. It matches titles and content, but it typically ignores SKUs, PDFs, and custom fields. So a visitor searching for a product code may get zero results even though the product exists. That's a search problem, not a content problem, and the two need different fixes.
Here's where each data source stands:
| Source | What it gives you | What it doesn't give you |
|---|---|---|
| Semly | Prompt-level visibility, brand mentions, citations, cited sources, competitor comparison, and a publishing path to WordPress | It doesn't log your site search box; you feed queries in as a prompt set |
| GA4 | Query text if you configure the search parameter, plus session context | Result counts per query, and it needs manual setup to work at all |
| WordPress plugin (SearchWP, Relevanssi) | Query logs, hit counts, sometimes clicks and CTR | Full tracking is often paid or limited; free tiers vary |
| Server logs | Raw requests, useful for bots and edge cases | Hard to read, no user intent context, no result counts |
A few practical notes. GA4 site search is enhanced measurement and requires you to define the query parameter, usually s. Without that, you see nothing. Jetpack Search doesn't record search terms in its dashboard at all. And cookie consent banners can cut your data significantly, because visitors who decline simply don't get tracked.
So: GA4 alone is rarely enough. Pair it with a plugin or logs, and treat Semly as the layer where those queries become something you can act on.
Step 1: Capture your WordPress site search queries
Your goal here is simple: leave this step with a file of queries.
- Pick your collection method. A search plugin with tracking, GA4 with the
sparameter configured, or server logs. If you want the least friction, a plugin is usually fastest. - Turn logging on and wait. Two to four weeks gives you a usable sample. One week is too noisy.
- Export the top 100 to 300 queries with their occurrence counts.
- Add a "number of results" column and mark every query that returned zero.
Watch out for: missing query parameter in GA4 (no data at all), cookie consent declines (partial data), and plugins that log searches but not result counts (you'll need to test zero-result queries manually).
How long should you collect? Two to four weeks for a first pass. If your site gets little traffic, extend it. A short list of real queries beats a long list of guesses.
How many queries is enough? Start with the top 100. That's usually where the intent concentrates.
Step 2: Clean and group queries into intent buckets
Raw query lists are messy. Strip out spam, bot noise, and duplicates. Then merge variants: plurals, typos, and synonyms all belong in one group.
Now assign each cluster to one of Semly's five prompt intents. This taxonomy was built for AI prompts, and it maps cleanly onto site search:
| Intent | Share in Semly's taxonomy | Content type | Example query |
|---|---|---|---|
| Discovery & recommendations | ~30% | Category guides, "best for X" roundups | "best running shoes for flat feet" |
| Problem & solution | ~25% | How-to articles, troubleshooting | "why is my order stuck" |
| Comparisons | ~20% | Head-to-head comparisons, buying guides | "memory foam vs latex mattress" |
| Product & transactional | ~15% | Product pages, sizing and spec content | "size 42 waterproof jacket" |
| Brand validation | ~10% | Reviews, trust pages, warranty info | "is [brand] legit" |
You can also tag each cluster by funnel stage: Problem Awareness, Comparing Solutions, or Ready to Buy. It helps you decide what to write first.
The rule that keeps this simple: one cluster equals one topic. Don't merge three intents into one article. If a query is ambiguous, put it where the visitor's next action would be.
How many clusters to start? Four to six. That's enough to make progress without drowning.
Step 3: Find the gaps — zero-result queries are your best brief
Zero-result queries are gold. Someone told you exactly what they wanted, and your site had nothing. That's the purest intent signal you'll get.
Benchmarks to aim at: a zero-result rate of 10 to 15% is common, and the target is under 5%. Roughly 40 to 70% of zero-result queries can be fixed with synonyms, tags, and filters rather than new content.
So split your zero-result list into two piles:
- Fix the search engine: the content exists, but search can't find it. Add synonyms, tags, and filters. Fast win.
- Write new content: nothing on your site answers the query. This becomes an AEO brief.
Decision checklist:
- Does a page already answer this? → Fix search (synonyms, tags).
- Does a page partially answer it? → Improve that page, then re-check.
- Does nothing answer it? → New article, answer-first format.
Quick example: visitors search "waterproof jacket size 42" and get zero results, but you sell that jacket. The fix is a synonym and a size tag, not a new article. Meanwhile, "how to wash a waterproof jacket" returns nothing and no page covers it. That's a content gap.
Step 4: Check how AI answers those questions today
Before you write a word, find out who's already being cited. Load your query clusters into Semly as a prompt set and check, per prompt, whether your brand shows up, where it ranks, how it's described, and which sources the models pull from.
Two numbers matter here, and they're not the same thing:
- Mention Rate — how often your brand appears in an answer.
- Citation Rate — how often your brand is actually linked as a source.
In Semly's 2026 e-commerce sample, Mention Rate reached 22.6% while Citation Rate reached 6.8%. Being named is not the same as being cited, and only citations send people your way.
| Prompt | Brand mentioned? | Brand cited? | Who's cited instead |
|---|---|---|---|
| "best running shoes for flat feet" | Yes | No | Retailer guides, review sites |
| "how to wash a waterproof jacket" | No | No | Manufacturer blogs, forums |
| "is [your brand] legit" | Yes | Yes | Your own review page |
Worth knowing: 91% of AI answers cite third-party content, and 55.2% of cited URLs didn't rank in Google's top 10. Ranking is not a prerequisite for being cited. That's good news if you're not winning classic SERPs.
What about prompts where you don't appear at all? Those are your priority list. Not every one is worth chasing, but the ones tied to real site-search demand usually are.
Step 5: Turn gaps into AEO-ready content
Now you write. The format matters as much as the topic.
Answer first. Put the direct answer in the first two or three sentences. 44.2% of LLM citations come from the first 30% of a page, so don't bury the point under a warm-up.
One topic, one page. If a query cluster has two distinct questions, write two pages.
Add structure. Definitions, numbered steps, and concrete data make content easier to extract. Add schema where it fits: FAQPage, HowTo, Product, BreadcrumbList.
Keep it fresh. Pages not updated in three or more months are around three times more likely to lose citations. Set a review cycle.
Build third-party corroboration. Since most citations come from outside your site, your content needs to be quotable enough that others reference it. For a deeper walkthrough of the full AEO plan for small businesses, it's worth reading end to end.
Here's a reusable AEO block template:
H2: [The question, phrased the way people ask it]
Answer: 2-3 sentences with the direct answer.
Then: context, steps, or comparison.
Then: FAQ with 2-3 related questions.
What to avoid: generic intros, filler paragraphs, vague claims without specifics, and pages that answer five questions badly instead of one well.
How long should an article be? As long as it takes to answer fully. Short and complete beats long and padded.
Step 6: Publish to WordPress and measure citations
This is where the loop closes. Semly publishes and updates articles directly to WordPress using Application Passwords. Set it up under Users → Profile → Application Passwords, and make sure the account has publishing rights.
The Content Generator picks topics based on your prompts, current visibility, cited sources, and competitor activity. So the queries you mined in Step 1 become the briefs it works from.
Then measure the right things:
| KPI | What it tells you |
|---|---|
| Mention Rate | How often your brand appears in AI answers |
| Citation Rate | How often you're linked as a source |
| Citation Quality (1-5) | Whether you're a name-drop or the primary source |
| AI referral traffic | Whether citations turn into visits |
Don't judge by traffic alone. A citation that never gets clicked still shapes what people believe about your brand.
When do results show up? Give it time. You need at least three to four months of data, and conclusions stabilize around four to six months. Anyone promising faster is guessing.
Common mistakes and how to fix them
| Mistake | Symptom | Fix |
|---|---|---|
| No query logging | You have no idea what people search for | Turn on tracking today |
| Treating GA4 as the full picture | Gaps in your data, missing result counts | Add a plugin or logs alongside it |
| Writing for a keyword, not a question | Content doesn't get pulled into answers | Rewrite answer-first |
| Ignoring zero-result queries | Visitors bounce, conversions leak | Fix synonyms, then write what's missing |
| No citation tracking | You can't tell if AEO works | Set up a prompt set and a report |
| Publishing in bulk without gap analysis | Lots of content, no movement | Pick four to six topics where you're losing |
What to do next
You don't need a big project to start. Pick the path that fits your time.
Fast track (about two weeks):
- Fix your zero-result queries with synonyms and tags.
- Write three answer-first articles for the clearest gaps.
- Publish them to WordPress through Semly.
Full plan (about twelve weeks):
- Weeks 1-2: audit and set up query logging.
- Weeks 3-4: build your prompt set and check current AI visibility.
- Weeks 5-10: publish gap content on a steady rhythm.
- Weeks 11-12: review Citation Rate and Citation Quality, then adjust.
Which one? If you have a small team and limited time, start with the fast track. If you can commit a few hours a week, the full plan compounds faster. You can follow the same 12-week AEO roadmap if you want a structured schedule to work from.
If you have no capacity for content at all, start with a knowledge base on a subdomain. It's a lighter lift than a full blog and still gives AI models something structured to cite.
Your three-point starting checklist:
- Turn on site search logging.
- Export your top 100 queries and mark the zero-result ones.
- Run a free AI visibility report at report.semly.ai to see where you stand today.
That's the whole loop. Capture, group, find gaps, check AI, write, publish, measure. Start with the queries you already have.