A chat that recommends articles you never wrote is worse than no chat at all. Here is why it happens, and how to check any widget in five minutes.
You add an AI chat to your site. A visitor asks for a guide about something you have definitely covered. The assistant answers warmly and links to "Our Complete Guide to Choosing a Mattress" — a title you have never published, at a URL that returns 404.
Nothing malfunctioned. The model did exactly what it is built to do.
A language model predicts plausible text. Asked to recommend an article from a site, and given nothing else to work with, it produces what an article title and URL on such a site would most likely look like. Plausible is the goal; true is not part of the mechanism. The output is fluent, confident and fictional.
This gets worse, not better, as the model gets more capable, because the invented titles get more convincing. It is also worse on a website than in a chatbot window: your visitor blames you for the broken link, not the AI vendor.
Grounding means the model is not asked to remember anything. It is handed the real, current list of your pages, and instructed to answer only from that list.
In practice a grounded backend does three things:
That third point is the one most implementations miss. An assistant that is never allowed to come up empty will always fill the gap with fiction.
You do not need access to the code. Run these four checks on the live widget:
| Ask this | A grounded chat | An ungrounded one |
|---|---|---|
| For a topic you have definitely not written about | Says it could not find anything on this site, and may offer general advice clearly marked as such | Recommends a confident-sounding article that does not exist |
| For a topic you have covered | Links the real article, with its real title | Paraphrases a title that is close but not quite yours |
| Then click every link it produced | All resolve to real pages on your domain | One or more 404 |
| Publish a new post, then ask about it an hour later | Finds it | Never heard of it, because nothing re-reads your site |
That last check matters for a second reason: a backend that only indexed your site once will drift further from reality every week you keep publishing.
Kivunly is built around the three rules above. It reads your site's published pages through the public WordPress content API, searches them for each question, and hands the model only those real titles and URLs. It is instructed never to compose a title or a link, and it is explicitly allowed to say it could not find a matching page — which it does, rather than inventing one.
The catalog is refreshed on a schedule, so posts published after setup are picked up without you doing anything. The exact request and response format is on the docs page, and the same approach works if you run your own backend instead of ours.