All articles
Technical3 minute read

A tidy sitemap: the first requirement for a chatbot to answer correctly

Almost all ingest failures we handle end up in the sitemap. This is a checklist before registering a site.

When a site is registered and the chatbot answers nonsense from day one, the cause is rarely the model. It's almost always that the knowledge base is empty or half-filled, and that starts with the sitemap.

The sitemap is the only entry point the system uses to know what pages you have. There's no crawling of links one by one, no guessing of URL patterns. If a page isn't listed in the sitemap, its content is never read.

Check the essentials

Open the sitemap address of your site directly in the browser, usually at /sitemap.xml. What you should see is XML containing a list of loc tags, not 404 pages and not a regular HTML page.

xml
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://situsmu.com/</loc>
    <lastmod>2026-09-10</lastmod>
  </url>
  <url>
    <loc>https://situsmu.com/layanan</loc>
  </url>
  <url>
    <loc>https://situsmu.com/harga</loc>
  </url>
</urlset>

If you see an error page instead, fix that first before continuing. Registering a site with an unreadable sitemap only results in an empty knowledge base, and the bot will answer guardrail for all questions.

Four most common problems

Double slashes in the address

The base site address and the sitemap path are combined as-is. If the base address is written with a slash at the end, the combined result has two slashes, and some servers treat that as a different address and respond with 404.

text
Salah  : https://situsmu.com/  +  /sitemap.xml
         hasilnya https://situsmu.com//sitemap.xml

Benar  : https://situsmu.com   +  /sitemap.xml
         hasilnya https://situsmu.com/sitemap.xml

Now the base address format is normalized automatically when a site is registered, so this case shouldn't happen anymore. Still useful to know if you call the ingest webhook directly from the other side.

SPA sites with empty content before JavaScript runs

React or Vue sites rendered entirely in the browser send almost empty HTML to the content fetcher. The sitemap exists, the page opens, but only the skeleton is read without text. The result is a knowledge base containing many fragments that are all empty.

  • The safest way: enable server-side rendering or prerender in the framework you use.
  • Alternative: provide a static version of important pages and point the sitemap to it.
  • Quick check: open the view-source of your page, then search for a sentence that appears on the screen. If you don't find it in the source, the content fetcher won't find it either.

A sitemap index points to other sitemaps.

Large sites often use a sitemap index, which is one file containing a list of other sitemap files. Make sure the address you register points to a file containing loc tags with pages, not one containing a list of sitemaps.

Irrelevant pages are included.

Tag archive pages, internal search results, shopping cart pages, and thank you pages don’t add value to answering. They dilute search results because irrelevant snippets compete.

Page structure for good answers

Once the sitemap is readable, page structure determines answer quality. Some helpful patterns:

  • One page covers one topic. ‘Gado-gado’ pages (pages covering many topics) produce unfocused snippets.
  • Write facts in complete sentences. Price tables without context often lose meaning when cut off.
  • Use descriptive headings. Headings are read and help search find the right section.
  • Avoid putting important information only in images. Text inside images isn’t readable.

After content changes

Your knowledge base is a copy, not a mirror. When you change prices or add service pages, trigger a Refresh from the dashboard to rebuild the copy from the latest sitemap. Otherwise, the bot will still answer using the old version.

If your site changes often, connect the refresh step to your content release process. The webhook can be called from CI or your CMS, keeping the copy fresh without needing to remember to press a button.

Further reading

Try it on your own site

Register one site, test the answers in the widget preview, then decide if it’s worth installing for your visitors.

Your Site
Usually replies in seconds
  1. Your Site:Hello! I'm your site's virtual assistant. How can I help?

You can adjust the color, theme, and position from the dashboard.