HTML Sitemap Generator — Build a Sitemap Page

Turn a list of URLs — or the contents of an existing sitemap.xml — into a self-contained HTML sitemap page your visitors can browse. The output is a complete .html file with inline CSS, not an XML sitemap. 100% client-side — your URLs stay private.

HTML Sitemap Generator

What is an HTML sitemap? An HTML sitemap is an ordinary page on your site that lists links to your other pages, written for people rather than for crawlers. It is a normal .html document served at a URL like /sitemap.html and usually linked from the footer. That makes it different from an XML sitemap, which is a machine-readable file submitted to search engines and never meant to be read directly.

How to Use the HTML Sitemap Generator

  1. Paste your URLs, one per line — Full URLs are used as they are. A line starting with / is treated as a path and prefixed with https://example.com, so replace that placeholder afterwards or paste absolute URLs to begin with.
  2. Or paste sitemap.xml content instead — Any line containing a <loc>…</loc> pair has the URL pulled out of it. This works on a pretty-printed sitemap where each <loc> sits on its own line — a minified, single-line XML file yields only the first URL.
  3. Choose which labels to append — The three checkboxes add fixed annotations after each link: today's date, weekly, and 0.8. They are decorative captions, identical on every row, not values read from your input.
  4. Click Generate and review the markup — The output pane holds a complete HTML document — doctype, <head>, inline CSS and a flat <ul> of links. Read it before publishing; the anchor text is the raw URL.
  5. Replace the URLs with real page titles — This is the edit that makes the page worth having. <a href="/pricing">Pricing</a> helps a visitor; <a href="/pricing">https://example.com/pricing</a> does not.
  6. Download and link it from your footerDownload saves sitemap.html. Upload it, then add a footer link — an HTML sitemap nobody can navigate to helps neither visitors nor crawlers.

How the Generator Builds the Page

Generation runs in two stages: read the input into a list of URLs, then wrap that list in a document. The reading stage examines each non-empty line in turn and applies the first rule that matches.

Line looks likeWhat happens
<loc>https://a.com/p</loc>The text between the tags is extracted. Only the first pair on a line is read.
https://a.com/pUsed exactly as written.
/aboutTreated as a path and turned into https://example.com/about — a placeholder domain you must replace.
a.com/pAny other line containing a dot gets https:// prepended.
ProductsSilently skipped. Lines with no dot and no leading slash are not URLs, so section headings you paste in disappear.

The writing stage produces a complete standalone document: a doctype, a UTF-8 charset declaration, a viewport meta tag, a <title> of "HTML Sitemap", a small inline stylesheet, and a single flat <ul> in which every URL becomes one <li><a>. Ampersands, angle brackets and quotes in your URLs are escaped, so query strings survive being placed in an href.

The three checkboxes append the same text to every row. Last modified is today's date, change freq is always weekly, and priority is always 0.8 — none of these are read from your input, even when you paste a sitemap.xml that contains real values. Leave them off unless you plan to edit the numbers by hand, since publishing an identical date against every page tells a reader nothing.

Three other things the generator deliberately does not do: it does not remove duplicate URLs, it does not sort or group them, and it does not fetch any page to discover its title. The list comes out in exactly the order you pasted it in, which means the ordering decision is yours — and grouping links under headings by section is the single change that most improves a long sitemap.

HTML Sitemap vs XML Sitemap

They share a name and almost nothing else. Most sites benefit from having both, and this tool produces the first kind.

HTML sitemapXML sitemap
AudienceVisitors, and crawlers that follow its linksSearch engine crawlers only
FormatA normal web pageXML following the sitemaps.org schema
Typical location/sitemap.html, linked from the footer/sitemap.xml, referenced in robots.txt
How it is foundOrdinary internal linksSubmitted in Search Console, or a Sitemap: line in robots.txt
Carries metadataNo — just links and whatever text you writeYes — lastmod, changefreq, priority
Size limitsPractical only: keep it readable50,000 URLs or 50 MB uncompressed per file
Produced byThis toolThe Sitemap Generator

XML Sitemap Elements You Might Be Pasting

If your input came from a sitemap.xml, these are the elements defined by the sitemaps.org protocol. This tool reads only <loc> — the other three are ignored, and the labels it can append are fixed text rather than the values in your file.

ElementRequiredWhat it means
<loc>YesThe page URL, fully qualified and including the scheme. Must be under the same host as the sitemap file itself.
<lastmod>NoDate of last modification in W3C Datetime format — YYYY-MM-DD, optionally with a time. Only trustworthy if it reflects real content changes; search engines discount it when every page claims to have changed today.
<changefreq>NoOne of always, hourly, daily, weekly, monthly, yearly, never. A hint, not a directive, and largely ignored by major crawlers in practice.
<priority>NoA number from 0.0 to 1.0 defaulting to 0.5. It expresses relative importance within your own site and has no effect on ranking against other sites.

Turning the Output Into a Page Worth Publishing

What comes out of the generator is scaffolding: correct, valid HTML that saves you the typing, but not yet a good sitemap. Four edits do most of the work.

  • Write real link text. Anchor text is the strongest signal on the page for both readers and crawlers, and a bare URL wastes it. Swap each one for the page's actual title.
  • Group the list under headings. Break the single <ul> into sections — Products, Guides, Company — with an <h2> above each. A flat list of two hundred links is a wall; the same links in eight labelled groups are navigable.
  • Leave pages out on purpose. Admin screens, thank-you pages, paginated archives, tag pages and anything marked noindex do not belong here. A sitemap that lists everything is a directory listing, not a guide.
  • Pick one URL form and keep it. Decide on trailing slashes, and on www or not, then use the canonical version everywhere. Linking to both /about and /about/ splits signals for no benefit.

Then keep it current. A sitemap page that still lists routes you removed a year ago sends visitors to 404s, which is worse than having no sitemap at all. Regenerating takes a minute whenever you restructure the site, and it is worth adding to whatever checklist you already use for launches.

Bear in mind what an HTML sitemap can and cannot do for search. Because it is a real page full of internal links, crawlers that reach it will follow those links, which genuinely helps pages buried deep in your navigation get discovered. What it does not do is replace an XML sitemap: there is no way to declare modification dates, no way to submit it in Search Console, and no coverage reporting against it. Publish both, and treat the HTML version as a navigation aid whose main audience is human.

Frequently Asked Questions

No. It produces an HTML page — a complete .html document with a doctype, inline CSS and a list of links, saved as sitemap.html. If you need the XML file that search engines consume at /sitemap.xml, use the Sitemap Generator instead. Most sites publish both, since they serve different audiences.

An XML sitemap is a machine-readable file that follows the sitemaps.org schema, is submitted through Search Console or referenced in robots.txt, and can carry lastmod, changefreq and priority for each URL. An HTML sitemap is an ordinary page with links on it, found through your footer and read by people. Neither replaces the other.

Anywhere you can link to it — /sitemap.html at the root is the convention, but a path like /site-map works just as well. What matters is the footer link, because a sitemap page with no inbound links is invisible to both visitors and crawlers. Keep it out of robots.txt disallow rules and do not mark it noindex.

No, and this is worth knowing before you publish. The three checkboxes append fixed text to every row: today's date, weekly, and 0.8. Nothing is read from your input, not even when you paste a sitemap.xml that contains genuine values. They are captions in a human-readable page, with no effect on search engines. Leave them switched off unless you intend to edit the numbers yourself.

Yes, with one caveat. Each line that contains a <loc>…</loc> pair has its URL extracted, so a normally formatted sitemap with one <loc> per line works well. A minified sitemap that puts the whole document on a single line yields only the first URL, because just one match is taken per line. Run it through an XML Formatter first if that happens.

Because you pasted paths rather than full URLs. A line beginning with / is assumed to be a path and gets https://example.com prefixed to it as a placeholder. Either paste absolute URLs to begin with, or do a find-and-replace on https://example.com in the output. Lines with neither a leading slash nor a dot are dropped entirely, which is why pasted section headings vanish.

Neither. The list is emitted in exactly the order you pasted it, duplicates included. That is deliberate — ordering is an editorial decision on a page meant for humans, and alphabetical order is rarely the most useful arrangement. Deduplicate your input first with the Duplicate Line Remover, then group the output under section headings by hand.

No. Parsing and generation both run in JavaScript in your tab, and nothing is uploaded. One caution: pressing Generate writes your full URL list into this page's address bar so the result can be bookmarked or shared. If the list includes staging hosts or unreleased paths, avoid sharing that link, and clear the box when you are done.

There is no technical limit here, but readability sets a practical one. Past a couple of hundred links a single flat list stops being useful to anyone. Large sites usually split the sitemap by section — one page per category, linked from an index page — which keeps each page browsable. The 50,000-URL cap you may have read about applies to XML sitemap files, not to this.

Use Cases

Giving a Documentation Site an Index

Docs built from Markdown often have a sidebar but no single page listing everything. Paste the routes from your build output, group them under section headings, and link the result from the footer.

Surfacing Pages Buried in Navigation

Older articles four clicks from the homepage get crawled rarely. A sitemap page linked from the footer puts a direct internal link on every one of them, which is the cheapest way to shorten that path.

Turning a Crawl Export Into a Browsable List

Export the URL column from a crawler or analytics report, paste it in, and get a clickable page you can hand to a colleague for a content audit — far easier to work through than a spreadsheet of raw links.

Checking a Redirect Map After Migration

Paste the old site's sitemap.xml to get every legacy URL as a live link, then click through to confirm each one redirects to its new home instead of returning a 404.

Handing a Client a Page Inventory

Before a redesign, turn the current sitemap into a single browsable page so a non-technical stakeholder can mark up what to keep, merge or retire without opening a crawler.