HTML Sitemap: User Navigation and Internal Linking Boost

An HTML sitemap complements the XML one - it serves humans, helps internal linking, and improves user experience.

An HTML sitemap is a human-readable page that links to every important page on the site. Unlike the XML sitemap which serves bots, the HTML sitemap serves visitors - and improves SEO at the same time.

Why this matters

An HTML sitemap has three main functions. First, user experience: visitors looking for a specific page that is not in the main navigation use the sitemap as a fallback. Second, internal linking: every link from the sitemap to a page sends Google a signal that the page exists and belongs to the site - especially valuable for deep pages that receive few other internal links. Third, bot access: crawlers that do not heavily rely on XML sitemaps (Ahrefs Bot, Bing) parse HTML sitemaps to map site structure.

On a complex WordPress site (custom post types, custom taxonomies) the XML sitemap sometimes misses pages. A hand-curated HTML sitemap guarantees coverage. From an accessibility standpoint, a sitemap is one of the recommended ways to satisfy international accessibility guidelines.4.5 (Multiple Ways), which requires multiple paths to find a page.

How to detect

Browse the site and look for a "Sitemap" link in the footer. Absent? No HTML sitemap. Check common URLs: /sitemap/, /site-map/, /site-map.html. If none resolve, you need to build one.

Complementary check: in Google Analytics > Pages and screens, see whether deep pages get any traffic. Pages receiving under 1 visit per month and not appearing in the main menu are excellent candidates for the sitemap.

How to fix

The easiest path is a plugin. Popular options:

  • WP Sitemap Page - free, simple, exposes a shortcode [wp_sitemap_page] that lists pages and posts.
  • Simple Sitemap - free with premium upgrades for fancier styling.
  • Yoast SEO Premium ships an HTML sitemap block.
  • Rank Math Pro includes an HTML sitemap module.

After installing, create a new page titled "Sitemap" (Pages > Add New). Paste the plugin's shortcode, publish, and add a footer link (Customize > Menus > Footer Menu).

To build manually without a plugin, create a new page and use List blocks with links to every important page. Organize into logical sections: services, recent posts, category pages, resource pages.

Common mistakes

First mistake: listing hundreds of pages. On a large site (1000+ posts), do not include everything - it makes the page unusable. Limit it to top-level content: service pages, categories, and core static pages. Leave individual posts to the XML sitemap.

Second mistake: failing to update. A hand-built sitemap drifts. Every time you publish an important page, add it to the list. Plugins that generate automatically avoid this drift.

Third mistake: not linking from the footer. If the sitemap exists at /sitemap/ but no page links to it, neither users nor bots will find it. Add a footer link present on every page.

Fourth mistake: noindexing the sitemap. Some owners set noindex thinking the sitemap is utility content. That is a mistake - the sitemap should be indexable so it amplifies internal linking. Leave it index.

Verifying the fix

Open the sitemap URL in a browser and click a few random links to confirm they work. View source and verify links are plain <a href elements rather than dynamic JavaScript - Google prefers static HTML links. Submit the sitemap URL via Google Search Console > URL Inspection > Request Indexing. After two weeks, watch the Coverage report for newly discovered pages reached via the sitemap.

Tip: Add a short intro paragraph at the top of the sitemap page - 2-3 lines describing what visitors will find. This boosts UX and lets the page rank for niche brand queries like "[brand name] services".