This simple plugin adds an HTML (Not XML) sitemap of your pages (not posts) by using the shortcode [html_sitemap] . This plugin can display a sitemap with specific depths, from a specific parent page and include/exclude specific pages by ID. The sitemap uses the unordered HTML list tags <ul> and <li
PricingFree downloadThe WordPress.org download is free. Pro versions, add-ons or external services may cost extra.
CompatibilityRequires WordPress 4.2 and PHP 5.4.
SourceWordPress plugins · Oct 19, 2026
01 / Source details
About this tool.
This simple plugin adds an HTML (Not XML) sitemap of your pages (not posts) by using the shortcode [html_sitemap] . This plugin can display a sitemap with specific depths, from a specific parent page and include/exclude specific pages by ID. The sitemap uses the unordered HTML list tags <ul> and <li> .
New for 2.0 is the HTML Sitemap Block , now you can add a HTML Sitemap using the WordPress Block Editor.
Attributes include sort_column , sort_order , exclude , include , depth , child_of , meta_key , meta_value , authors , number , offset , post_type , and post_status parameters from the wp_list_pages function. In addition you can also set class , id , and ordered_list_type to further customize the html page sitemap.
This plugin is perfect for those who use WordPress as a CMS.
Block / Shortcode Tag Attribute Options
The following wp_list_pages tag attribute options are supported:
authors — Comma-separated list of author IDs. Default empty (all authors).
child_of — ID of child page, ‘CURRENT’, or ‘PARENT’. The value ‘CURRENT’ will use the current page ID. The value ‘PARENT’ will use the current page parent ID.
depth — -1 (any depth), 0 (all pages), 1 (top-level pages only), 2 (top-level and 2nd level pages only), etc.
date_format — e.g. ‘l, F j, Y’. See WordPress Date Format
exclude — Comma-separated list of page IDs to exclude.
include — Comma-separated list of page IDs to include.
item_spacing — Whether to preserve whitespace within the menu’s HTML. Accepts ‘preserve’ or ‘discard’.
meta_key — Limits output to pages having a specific custom field key.
meta_value — Limits output to pages having a specific custom field value.
number — Limits the number of links displayed (SQL LIMIT).
offset — Skips a specific number of pages before displaying the list.
post_type — Post type to query for. Default ‘page’
post_status — Comma-separated list or array of post statuses to include. Default ‘publish’
show_date — Whether to display the page publish or modified date for each page. Accepts ‘modified’ or any other value. An empty value hides the date.
sort_column — Comma-separated list of column names to sort the pages by. Accepts ‘post_author’, ‘post_date’, ‘post_title’, ‘post_name’, ‘post_modified’, ‘post_modified_gmt’, ‘menu_order’, ‘post_parent’, ‘ID’, ‘rand’, or ‘comment_count’. Default ‘menu_order, post_title’.
sort_order — ‘ASC’ or ‘DESC’. Default ‘ASC’.
Please see documentation for the wp_list_pages function for reference.
Demos
Demo of the HTML Sitemap Block
Demo of the HTML Sitemap shortcode
In addition the following tag attributes are available exclusively for this plugin:
class — Specify class values for the initial HTML Page Sitemap <ul> list tag.
id — Specify ID values for the initial HTML Page Sitemap <ul> list tag.
ordered_list_type — Specify the ordered list type. Accepts ”, ‘1’, ‘A’, ‘a’, ‘I’, and ‘i’. Default empty value will display an unordered list.
The ordered_list_type attribute options in more detail:
ordered_list_type="" — The list items will be unordered
ordered_list_type="1" — The list items will be numbered with numbers
ordered_list_type="A" — The list items will be numbered with uppercase letters
ordered_list_type="a" — The list items will be numbered with lowercase letters
ordered_list_type="I" — The list items will be numbered with uppercase roman numbers
ordered_list_type="i" — The list items will be numbered with lowercase roman numbers
Note: This plugin only works with Hierarchical Custom Post Types such as pages . This plugin will not work if your post type is not hierarchical. Not setting an ordered_list_type will use an unordered list (default).
Examples
First example shows how to add a sitemap for the entire site.
[html_sitemap]
Example shortcode will add a sitemap to a page displaying a depth limit of 3 and exclude page ID 708.
[html_sitemap depth=3 exclude=708]
Example shortcode will add a sitemap to a page displaying only children and grandchildren of the current page.
[html_sitemap depth=2 child_of=CURRENT]
Example shortcode will add a sitemap to a page displaying children and grandchildren of the parent page (would include the curent page as well).
[html_sitemap depth=2 child_of=PARENT]
Example shortcode will add a sitemap displaying the page modified date with the pages sorted by the menu order number.
Angelo Mandato , founder of Painless Analytics and FrontPup – Plugin author
See it in action
Screenshots & previews.
HTML Page Sitemap in the Default WordPress theme.HTML Sitemap Block found in widgets category.HTML Sitemap Block in editor.Preview of Sitemap block in page "Level 1" with child_of set to CURRENT.
02 / Source details
Getting started.
Automatic Plugin Installation
Install using the built-in plugin installer :
01Go to Plugins > Add New.
02Type in “HTML Page Sitemap” in Search Plugins box.
03Find “HTML Page Sitemap” in the search results.
04Click Install Now to install the WordPress Plugin.
05Click Activate to activate it.
06Add the shortcode [html_sitemap] to the page(s) of your choice.
Manual Plugin Installation
07Download this plugin to your desktop.
08Extract the plugin zip file (or compressed folder) to your desktop.
09With your FTP program, upload the plugin folder to the wp-content/plugins folder in your WordPress directory online.
10Go to Plugins screen and find “HTML Page Sitemap” plugin in the list.
11Click Activate to activate it.
12Add the shortcode [html_sitemap] to the page(s) of your choice.
03 / Source details
Frequently asked questions.
Why is there no settings page for the plugin?
I put together this plugin in less than 2 hours, this readme.txt actually took longer to create. This plugin is meant to be simple and easy to use. To keep it simple, it doesn’t add settings to your database or clutter to your admin screens.
How do I style the html sitemap?
The HTML sitemap can be styled by specifying your own CSS class or unique element ID. The classes and ID are added to the top level <ul> element of the sitemap.
Does this plugin support Blocks?
YES! As of version 2.0, you can now add an HTML Sitemap block to your page and customize all of the parameters.
Does the addition of the HTML Sitemap Block impact the performance of my website?
NO! The new HTML Sitemap Block is a wrapper around the [html_sitemap] shortcode that utilizes the built-in wp_list_pages function.
Do I have to use the new Blocks feature to use this plugin?
NO! The original shortcode still works as it did in version 1.3.
Website LLMs.txt and LLMs-Full.txt Generator is an LLMs.txt generator and llms-full.txt generator for WordPress. It helps site owners generate, manage, preview, validate, and serve AI discovery files from published public content. Use it to create structured /llms.txt and optional /llms-full.txt end
EngageDock AI is a customizable floating contact widget for WordPress websites that want more leads and faster visitor communication. It helps small businesses turn website traffic into calls, texts, emails, and callback requests from one clean contact panel. Key Features: Click-to-Call – One tap ca
Altify AI is an auto ALT text and AI ALT text plugin for WordPress images. It helps generate descriptive image ALT text for accessibility and image SEO. Use bulk image ALT text tools for your Media Library, generate featured image ALT text automatically, and scale WooCommerce image ALT updates with
The Accepted Payment Methods plugin is a straightforward, lightweight solution that enhances your website by displaying visually appealing icons of the payment methods you accept. This plugin is ideal for a variety of websites, including e-commerce platforms, service-oriented websites, and informati