PHPackages                             mage2kishan/module-html-sitemap - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. mage2kishan/module-html-sitemap

ActiveMagento2-module[Utility &amp; Helpers](/categories/utility)

mage2kishan/module-html-sitemap
===============================

Theme-agnostic HTML sitemap page for Magento 2 (Hyva + Luma). Renders categories (tree), products (grid), CMS pages, store switcher, and custom links at /sitemap with a built-in client-side search. Extracted from Panth\_AdvancedSEO for independent installation.

1.0.7(1mo ago)029↓50%1proprietaryPHPPHP ~8.1.0||~8.2.0||~8.3.0||~8.4.0

Since Apr 20Pushed 1mo agoCompare

[ Source](https://github.com/mage2sk/module-html-sitemap)[ Packagist](https://packagist.org/packages/mage2kishan/module-html-sitemap)[ RSS](/packages/mage2kishan-module-html-sitemap/feed)WikiDiscussions main Synced 1w ago

READMEChangelogDependencies (6)Versions (9)Used By (0)

Panth HTML Sitemap — Customer-facing /sitemap Page for Magento 2 (Hyva + Luma)
==============================================================================

[](#panth-html-sitemap--customer-facing-sitemap-page-for-magento-2-hyva--luma)

[![Magento 2.4.4 - 2.4.8](https://camo.githubusercontent.com/079c832211eed4f9451ebe264e3865f825b0f9f31b041cbf03676c6e254535d4/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4d6167656e746f2d322e342e342532302d2d253230322e342e382d6f72616e67653f6c6f676f3d6d6167656e746f266c6f676f436f6c6f723d7768697465)](https://magento.com)[![PHP 8.1 - 8.4](https://camo.githubusercontent.com/56b3cce18841623e2cbed2ebf09b06be1be8807e99e6e054a89d304ab4790b8e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d382e312532302d2d253230382e342d626c75653f6c6f676f3d706870266c6f676f436f6c6f723d7768697465)](https://php.net)![License: Proprietary](https://camo.githubusercontent.com/958a686bca30b64428b7c382fde17cb2f6457efe3d39db6fe0c8e6fa45623276/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d50726f70726965746172792d726564)[![Packagist](https://camo.githubusercontent.com/3cc43d922fc8b960481de7124d28f2d8f59c9c664b5aec64543aff1d033f7e94/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5061636b61676973742d6d616765326b697368616e2532466d6f64756c652d2d68746d6c2d2d736974656d61702d6f72616e67653f6c6f676f3d7061636b6167697374266c6f676f436f6c6f723d7768697465)](https://packagist.org/packages/mage2kishan/module-html-sitemap)[![Hyva Compatible](https://camo.githubusercontent.com/14365166e02048aff917dd0a015feecdae28499fbde05fa17abd4f7821ea1139/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f487976612d436f6d70617469626c652d3134623861363f6c6f676f3d616c70696e65646f746a73266c6f676f436f6c6f723d7768697465)](https://hyva.io)![Luma Compatible](https://camo.githubusercontent.com/3c1945ee121ef64870a6f3583c91ffdfb4d8ffc35809e7ce34ca549a357e1ded/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c756d612d436f6d70617469626c652d6f72616e6765)[![Upwork Top Rated Plus](https://camo.githubusercontent.com/6f72584179420c41ed90432fd2579a4ed36199d4229e8181d20f353c1c4ee4eb/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5570776f726b2d546f702532305261746564253230506c75732d3134613830303f6c6f676f3d7570776f726b266c6f676f436f6c6f723d7768697465)](https://www.upwork.com/freelancers/~016dd1767321100e21)[![Panth Infotech Agency](https://camo.githubusercontent.com/401a792e990131002e91054d1b04494af5a2152fcc891ca000eb683786770abf/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4167656e63792d50616e7468253230496e666f746563682d3134613830303f6c6f676f3d7570776f726b266c6f676f436f6c6f723d7768697465)](https://www.upwork.com/agencies/1881421506131960778/)[![Website](https://camo.githubusercontent.com/f1ae86d28e2b505aee60f240d3e5508e390b0a8dc7a9b7ecf1b450fad862053f/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f576562736974652d6b697368616e736176616c6979612e636f6d2d304439343838)](https://kishansavaliya.com)[![Get a Quote](https://camo.githubusercontent.com/0b6c02cc1ad00f11bf1b0164a9998734bd716473db36cc2a5c1517e3d3578d1b/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4765742532306125323051756f74652d46726565253230457374696d6174652d444332363236)](https://kishansavaliya.com/get-quote)

> **A complete, theme-agnostic HTML sitemap page** for Magento 2 at `/sitemap` — categories as a nested tree, products in a paginated grid that handles **100k+ catalogs**, CMS pages, store switcher and custom links. Works identically on **Hyva** and **Luma**. Plain PHP + vanilla JS + scoped CSS — no Alpine / RequireJS / mage-init glue.

Magento's built-in XML sitemap is for Google. This module is for **humans** — a readable page your customers land on when they're lost, and an internal-linking surface that spreads PageRank across every category and product on your store.

---

Preview
-------

[](#preview)

### Admin Configuration

[](#admin-configuration)

[![Admin Configuration — Stores → Configuration → Panth Infotech → HTML Sitemap](docs/admin-configuration.png)](docs/admin-configuration.png)

*All 15 toggles at **Stores → Configuration → Panth Infotech → HTML Sitemap** — master switch, show categories (with max-depth limit), show products (with sort order, URL structure, pagination), show CMS pages (with exclude list), show store switcher, show custom links, meta title / description, client-side search field, and **products-per-page** (50–2000, default 500 — the sitemap handles 100k+ products via `?p=N` pagination).*

---

### Frontend — Hyvä theme

[](#frontend--hyvä-theme)

**Hero + Categories tree****Product grid****CMS pages**[![Hyvä — hero banner + category tree with 'On this page' sidebar](docs/hyva-hero.png)](docs/hyva-hero.png)[![Hyvä — paginated product grid with image, name, price](docs/hyva-products.png)](docs/hyva-products.png)[![Hyvä — CMS pages section and footer](docs/hyva-pages.png)](docs/hyva-pages.png)*Native Hyvä styling — gradient hero with live counts (categories / products / pages), sticky "On this page" sidebar, and a scoped stylesheet so nothing leaks into the theme's Tailwind bundle.*

---

### Frontend — Luma theme

[](#frontend--luma-theme)

**Hero + Categories tree****Product grid****CMS pages**[![Luma — hero banner + category tree with 'On this page' sidebar](docs/luma-hero.png)](docs/luma-hero.png)[![Luma — paginated product grid](docs/luma-products.png)](docs/luma-products.png)[![Luma — CMS pages section and footer](docs/luma-pages.png)](docs/luma-pages.png)*Identical markup on Luma — the template is plain PHP + vanilla JS + prefix-scoped CSS (`.panth-htmlsitemap`), so the same rendering logic produces the same output under Luma's RequireJS layer without any theme-specific overrides.*

---

Need Custom Magento 2 Development?
----------------------------------

[](#need-custom-magento-2-development)

 [ ![Get a Free Quote](https://camo.githubusercontent.com/eac8c45d21cff8b139ddc392325f3bd6c8266a6f3d7b23f15131c958f3d3c8d0/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f476574253230612532304672656525323051756f74652532302545322538362539322d5265706c7925323077697468696e2532303234253230686f7572732d4443323632363f7374796c653d666f722d7468652d6261646765) ](https://kishansavaliya.com/get-quote)

### Kishan Savaliya

[](#kishan-savaliya)

**Top Rated Plus on Upwork**

[![Hire on Upwork](https://camo.githubusercontent.com/b69353d3c6e192f4d03cc36bb8883612004e32f54dd2dbcc1e700dd791acd875/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f486972652532306f6e2532305570776f726b2d546f702532305261746564253230506c75732d3134613830303f7374796c653d666f722d7468652d6261646765266c6f676f3d7570776f726b266c6f676f436f6c6f723d7768697465)](https://www.upwork.com/freelancers/~016dd1767321100e21)

### Panth Infotech Agency

[](#panth-infotech-agency)

[![Visit Agency](https://camo.githubusercontent.com/bbf04bdd2aff502082508568ec42ace3a7475c98756f596e2013056c89726ed6/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f56697369742532304167656e63792d50616e7468253230496e666f746563682d3134613830303f7374796c653d666f722d7468652d6261646765266c6f676f3d7570776f726b266c6f676f436f6c6f723d7768697465)](https://www.upwork.com/agencies/1881421506131960778/)

---

Table of Contents
-----------------

[](#table-of-contents)

- [Features](#features)
- [Scales to 100k+ Products](#scales-to-100k-products)
- [Compatibility](#compatibility)
- [Installation](#installation)
- [Admin Configuration](#admin-configuration)
- [Hiding a Category](#hiding-a-category)
- [Troubleshooting](#troubleshooting)
- [Support](#support)

---

Features
--------

[](#features)

- **`/sitemap` URL** — clean custom-router URL, no `/seo/` or `/htmlsitemap/` prefix visible to customers.
- **Nested category tree** — respects store root, max-depth limit, `is_active`, and a per-category `exclude_from_html_sitemap` flag.
- **Product grid with pagination** — `?p=N` pagination for large catalogs, admin-configurable page size (50–2000, default 500), absolute hard cap of 2,000 pages, efficient `COUNT(DISTINCT)` + `LIMIT/OFFSET` on indexed EAV joins.
- **Product sort options** — name A→Z, name Z→A, newest, oldest, price ascending, position.
- **Short vs category URLs** — choose whether product links are `/product.html` or `/category/product.html`.
- **CMS pages list** — excludes homepage + `no-route` automatically; admin-configurable extra exclusions (e.g. `privacy-policy,cookie-policy`).
- **Store switcher** — optional list of all active stores with their base URLs.
- **Custom links** — free-form admin textarea, one link per line (`URL | Label`).
- **Client-side search** — optional search box filters the visible sections in real time, no network calls.
- **SEO-friendly meta** — admin-configurable meta title and meta description.
- **Theme-agnostic rendering** — plain PHP + inline vanilla JS + prefix-scoped CSS class. No Alpine, no RequireJS, no mage-init.

---

Scales to 100k+ Products
------------------------

[](#scales-to-100k-products)

The product section is designed for real catalogs:

- **Pagination:** default 500 products per page via `?p=N`. Admin-configurable 50–2000.
- **Absolute hard cap:** 2,000 pages regardless of catalog size — beyond that an XML sitemap is the right tool.
- **Efficient queries:** one `COUNT(DISTINCT e.entity_id)` for total count (memoised per request), then `LIMIT/OFFSET` on the paged SELECT. No `array_slice` on giant arrays, no full catalog load into memory.
- **Indexed joins only:** `catalog_product_entity` × `catalog_product_website` × `catalog_product_entity_int` (visibility + status) — every filter column is indexed in stock Magento.

Benchmarked render time per page is roughly constant regardless of total catalog size: **the sitemap page for product #50,000 renders as fast as the one for product #1**.

---

Compatibility
-------------

[](#compatibility)

RequirementSupportedMagento Open Source2.4.4, 2.4.5, 2.4.6, 2.4.7, 2.4.8Adobe Commerce2.4.4 — 2.4.8PHP8.1, 8.2, 8.3, 8.4Hyva Theme1.0+ (theme-agnostic template)Luma ThemeNative supportPanth Core^1.0 (installed automatically)---

Installation
------------

[](#installation)

```
composer require mage2kishan/module-html-sitemap
bin/magento module:enable Panth_Core Panth_HtmlSitemap
bin/magento setup:upgrade
bin/magento setup:di:compile
bin/magento cache:flush
```

### Verify

[](#verify)

```
bin/magento module:status Panth_HtmlSitemap
# Module is enabled
```

Then visit `https://your-store.example/sitemap`.

---

Admin Configuration
-------------------

[](#admin-configuration-1)

Navigate to **Stores → Configuration → Panth Infotech → HTML Sitemap**. A direct link also appears under the **Panth Infotech** admin sidebar.

SettingDefaultPurposeEnable HTML SitemapYesMaster switch. No = `/sitemap` returns 404.Show CategoriesYesRender the nested category tree.Max Category Depth0Limit tree depth. 0 = unlimited.Show ProductsYesRender the paginated product grid.Product Sort OrderName (A-Z)Name/newest/oldest/price/position.Product URL StructureShort`/product.html` vs `/category/product.html`.Products Per Page500Pagination size. Range 50–2000.Show CMS PagesYesInclude active CMS pages.Show Store SwitcherNoList all active stores.Show Custom LinksNoRender admin-editable link list.Custom Links(empty)`URL | Label` one per line.Meta TitleSite Map`` on the sitemap page.Meta Description(empty)``.Exclude CMS Pages(empty)Comma-separated identifiers to hide.Show Search FieldNoClient-side filter across visible sections.---

Hiding a Category
-----------------

[](#hiding-a-category)

Every category now has an **"Exclude from HTML Sitemap"** field in *Catalog → Categories → {category} → Search Engine Optimization*. Flip it to **Yes** to hide that category (and its link-children reset to the catalog root, not the hidden category) from the rendered tree. Flush the sitemap's layout cache after changes.

---

Troubleshooting
---------------

[](#troubleshooting)

### `/sitemap` returns 404

[](#sitemap-returns-404)

Check the master toggle: **Stores → Configuration → Panth Infotech → HTML Sitemap → Enable HTML Sitemap** must be *Yes*. If the module is installed but the config was never saved, the `config.xml` default (enabled=1) still applies — flush config cache.

### Products page shows empty after pagination

[](#products-page-shows-empty-after-pagination)

Two causes: (a) `?p=N` is beyond the last page — clamp client-side to `getTotalProductPages()`; (b) the visible-product join returns nothing because the store has no products with `visibility IN (2,4)` and `status = 1`. Run `SELECT COUNT(*) FROM catalog_product_entity` to sanity-check the catalog.

### DI compile fails after `composer require`

[](#di-compile-fails-after-composer-require)

Ensure `Panth_Core`, `Magento_Store`, `Magento_Catalog`, `Magento_Cms` and `Magento_Eav` are all enabled — they are hard dependencies.

---

Support
-------

[](#support)

- **Issues:** [github.com/mage2sk/module-html-sitemap/issues](https://github.com/mage2sk/module-html-sitemap/issues)
- **Agency:** [Panth Infotech on Upwork](https://www.upwork.com/agencies/1881421506131960778/)
- **Direct:** [kishansavaliya.com](https://kishansavaliya.com) — [Get a free quote](https://kishansavaliya.com/get-quote)

###  Health Score

45

—

FairBetter than 91% of packages

Maintenance94

Actively maintained with recent releases

Popularity11

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity56

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~2 days

Total

8

Last Release

32d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/343e344aa298f189db888b32d62f9202d31ced1a5ea23411850a63dc4a30299c?d=identicon)[kishansavaliya](/maintainers/kishansavaliya)

---

Top Contributors

[![KishanSavaliya](https://avatars.githubusercontent.com/u/16853223?v=4)](https://github.com/KishanSavaliya "KishanSavaliya (8 commits)")

---

Tags

Sitemapseomagento2magento2 modulehyvalumahtml-sitemappanth

### Embed Badge

![Health badge](/badges/mage2kishan-module-html-sitemap/health.svg)

```
[![Health](https://phpackages.com/badges/mage2kishan-module-html-sitemap/health.svg)](https://phpackages.com/packages/mage2kishan-module-html-sitemap)
```

###  Alternatives

[run-as-root/magento2-prometheus-exporter

Magento2 Prometheus Exporter

68353.9k](/packages/run-as-root-magento2-prometheus-exporter)[mollie/magento2

Mollie Payment Module for Magento 2

1131.8M12](/packages/mollie-magento2)[opengento/module-category-import-export

This module add the capability to import and export the categories from the back-office.

1310.2k1](/packages/opengento-module-category-import-export)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
