How to create an HTML sitemap page in WordPress
To create an HTML sitemap in WordPress, add a page called "Sitemap", insert Hydrogen SEO's HTML Sitemap block or the [hydrogen_seo_html_sitemap] shortcode, publish it and link to it from the footer. The list is built from your published, indexable content each time, so it stays current without editing.
An HTML sitemap is a page for people: one place that links to every important page. It also gives each of those pages an internal link, which helps deep or forgotten content get found.
Step by step
1. Create the page
Go to Pages → Add New Page and give it a plain title such as Sitemap. The slug /sitemap/ is fine and does not clash with the XML sitemap, which lives at /sitemap.xml.
2. Insert the block
Click +, search for HTML Sitemap and insert it. The block is in the Widgets category and shows the list in the editor as visitors will see it. By default it lists every post type that your XML sitemap includes, with pages ordered by title and posts by date, newest first. Each type gets its own heading, and child pages are nested under their parents.
3. Or use the shortcode
In the Classic editor or a page builder's shortcode element:
[hydrogen_seo_html_sitemap]
Attributes narrow it down:
[hydrogen_seo_html_sitemap post_types="page,post" taxonomies="category" show_dates="true" limit="200"]
Hydrogen SEO → Sitemap shows an HTML sitemap note with the shortcode ready to copy.
4. Choose what to list
In the block sidebar, the Content panel has a checkbox per post type and taxonomy, and Display has the rest:
- Order by: title, publish date or last modified date.
- Show dates: prints each entry's date after its title.
- Entries per section: 500 by default, 2,000 at most.
- Section heading level: H2 by default. Use H3 if your theme already prints an H2 above the content.
Taxonomies are not listed unless you tick them. Adding Categories gives visitors a second way in, by topic.
5. Understand what can never appear
The HTML sitemap follows the XML sitemap. Noindexed posts and terms, drafts, scheduled and private posts, password-protected posts and terms with no published posts are always left out, whatever you tick. A post type that is switched off on Hydrogen SEO → Sitemap, or set to Noindex on the Robots screen, is dropped without an error. If something is missing, check those two screens first.
6. Publish and link to it
Publish the page, then add it to your footer menu under Appearance → Menus, or in the footer's Navigation block in a block theme. A sitemap page that nothing links to cannot do its job. Leave the page itself indexable: it is a normal, useful page.
7. Build one without the plugin
Core blocks get you most of the way. On a new page, add a Page List block, which prints every published page as a nested list, then a Latest Posts block set to show as many posts as you need, and a Categories List block (named Terms List in recent WordPress versions). In a classic theme template, wp_list_pages( array( 'title_li' => '' ) ) prints the page tree. The limitation is control: these list everything published, including pages you have noindexed, so you have to exclude those by hand.
Sites with thousands of posts
A single page with 5,000 links is slow to load and hard to use. Keep each section to a few hundred entries with Entries per section, list categories, and let each category archive carry its own posts. You can also place several blocks on separate pages, for example one page per post type. The limit counts only entries that are listed, so noindexed posts do not use it up.
HTML sitemap or XML sitemap
They do different jobs and most sites should have both. The XML sitemap is a machine-readable file submitted in Search Console. The HTML sitemap is a navigational page whose links visitors click and crawlers follow. The comparison is laid out in HTML sitemap vs XML sitemap, and the block's full option list is in the HTML sitemap documentation.
Common questions
Do HTML sitemaps still help SEO?
They add an internal link to every listed page and help visitors find content. That is useful on larger sites and on sites with weak navigation, though it is no substitute for linking pages from related content.
Why is a page missing from my HTML sitemap?
It is noindex, private, password-protected, a draft, or its post type is switched off in the XML sitemap settings. Only content in the XML sitemap can be listed.
Should the sitemap page be noindexed?
No. It is a normal page that helps people navigate, and its links are followed either way.