Back to Tools

LLM Sitemap Creator

Use cases

Planning new site architecture Organising keyword research into content structure Category taxonomy planning Information architecture design

OpenAI chat completion with JSON mode (guarantees valid JSON but does not enforce a schema).

GPT-4o-mini/4o/4.1 organises keywords by search volume and semantic relationships.

Warns about input keywords missing from the output; inclusion is requested in the prompt, not enforced.

Recursive dictionary traversal for tree rendering.

Max categories 3-15 (default 8), depth 2-5 (default 3).

Streamlit App Requires API Key

Platform

Browser-based (no installation required)

Input

OpenAI API key

Keywords CSV with volumes

Output

CSV: Level, Parent, Keyword, Volume. JSON: nested hierarchy. TXT: ASCII tree with volume annotations.

Launch App View Source

Features

  • GPT-4o-mini, GPT-4o, or GPT-4.1 models
  • OpenAI JSON mode output (temperature 0)
  • Post-generation check warns of missing and model-invented keywords
  • Max top-level categories (3-15, default 8)
  • Max depth (2-5, default 3)
  • Recursive tree rendering

How to use

  1. 1 Enter your OpenAI API key
  2. 2 Select model (GPT-4o-mini recommended)
  3. 3 Upload keyword CSV and map columns
  4. 4 Set max categories (3-15) and depth (2-5)
  5. 5 Generate sitemap
  6. 6 Download CSV, JSON, or TXT tree

Frequently asked questions

Why are some of my keywords disappearing before generation?
Every keyword must have a numeric search volume. CSV rows where the volume cell is empty or non numeric are skipped silently, and in manual entry any line that is not a keyword,volume pair is ignored. Compare the "Prepared N keywords" count against your file before generating.
Is every keyword guaranteed to appear in the sitemap?
No. Inclusion is requested in the prompt, then after generation the app compares output against input case insensitively and shows a warning listing missing keywords, plus an info notice for extra category names the model invented. There is no automatic retry, so regenerate if the missing list matters.
Is there a practical size limit on the keyword list?
The model response is capped at 4,000 tokens, and the entire hierarchy including every keyword has to fit in that JSON response. Very large lists can be truncated mid JSON and fail to parse, so split big keyword sets into batches if generation errors.
What does it cost to run?
One OpenAI chat completion per generation on your own API key. Input tokens scale with the keyword list, which is sent as JSON with volumes, and output tokens with the hierarchy size. gpt-4o-mini is the default and cheapest of the three model options, and temperature is fixed at 0.

Need something built for your business?

This tool started as bespoke client work. I build custom scripts, data pipelines, and full apps for SEO and product data problems that off-the-shelf tools don't solve.

Book a Call