Sitemap Generator
XML & HTML sitemaps for Joomla β the right way.
Most Joomla sites have no sitemap or a static one with a single entry. This plugin generates XML sitemaps automatically when you publish content, pings search engines instantly via IndexNow, and provides a Bootstrap-styled HTML sitemap page with collapsible categories for your visitors.
Sitemap Index + Sub-sitemaps
Generates sitemap.xml (index), sitemap-articles.xml, and sitemap-categories.xml. Proper sitemap architecture that Google recommends.
Static File Generation
XML files are written to disk on content save β served directly by Apache with zero PHP overhead. Auto-regenerates on a configurable schedule.
Clean URL Filtering
Automatically excludes login pages, admin URLs, component fallbacks, duplicates, and non-page URLs. Only real, public SEF pages make it into the sitemap.
HTML Sitemap Page
Add {retrovault-sitemap} to any article for a visitor-friendly sitemap with collapsible categories. Supports Bootstrap 5, UIkit 3, and semantic HTML.
3 Layout Options
Bootstrap 5 for standard Joomla templates, UIkit 3 for YOOtheme, or framework-free semantic HTML that works anywhere.
Access-Aware
Only includes publicly accessible content. Respects Joomla access levels, publish dates, and category exclusions. No private content leaks.
IndexNow Integration
Instantly notify Bing, Yandex and other search engines when you publish or update content. One toggle to enable β API key auto-generates, zero configuration.
Zero Database Tables
No extra tables, no migrations, no cleanup. Everything is file-based and generated on the fly from your existing Joomla content.
Auto-Regeneration
Sitemaps rebuild automatically when you save or delete content. Configurable time-based regeneration as a safety net. Always fresh, always accurate.
<sitemapindex> β sitemap-articles.xml + sitemap-categories.xmlJoomla 4, 5 & 6 compatible β’ No account required β’ Unlimited sites
Retro Media Vault Sitemap Changelog
Version1.2.0 March 29 2026
- Fixed `robots.txt` data loss: plugin now aborts with a warning if the file cannot be read, in stead of overwriting it with only the Sitemap directive
- Fixed `robots.txt` sitemap detection now checks for the specific sitemap URL rather than any `sitemap:` substring
- Fixed blocked URL patterns `/remind` and `/reset` incorrectly excluding legitimate URLs containing those substring (e.g. `/reminders`, `/reset-guide`); patterns now match complete path segments only
- Fixed invalid `<lastmod>` in XML sitemap when both `modified` and `created` dates are zero or null; affected URLs are now skipped
- Fixed IndexNow key validation silently rejecting uppercase hex keys; key is now normalised to lowercase before validation
- Fixed IndexNow key generation not atomic: DB failure no longer produces orphaned key files on disk
- Fixed `json_encode` failure not checked before sending cURL POST to IndexNow
- Fixed `regenerate_hours = 0` clamping to 1 hour instead of disabling auto-regeneration
- Fixed `onAfterRespond` triggering sitemap regeneration on admin, CLI, and API requests; now restricted to frontend only
- Fixed `{retrovault-sitemap}` placeholder: only first occurrence was replaced; all occurrences now replaced via `str_replace`
- Fixed `strpos` called twice on same string in `onContentPrepare`
- Fixed excluded category's child categories being promoted to top-level in HTML sitemap; descendants are now excluded recursively - Fixed `whereIn` with empty access level array producing invalid SQL; both DB query methods now return early if guest access levels are empty
- Fixed `Factory::getUser()` deprecation in Joomla 4+; replaced with `UserFactoryInterface::loadUserById()`
- Fixed `Factory::getCache()` deprecation in Joomla 4+; replaced with `Factory::getApplication()->getCache()`
- Fixed page cache flush not clearing nested cache subdirectories; now uses recursive directory iterator
- Fixed unused `level` column being fetched from `#__categories` on every query
- Fixed `changefreq` param not validated; invalid values now fall back to `weekly`; added full spec-compliant options (`always`, `hourly`, `yearly`, `never`) to manifest
- Fixed `exclude_categories` param not handling `null` return from Joomla params; now null-safe
+ Added `Sitemap:` directive written to `robots.txt` automatically so Google can discover the sitemap
+ Bug fixes and stability improvements
+ Added automatic `Sitemap:` directive to `robots.txt` for Google discovery
+ Added `<lastmod>` to sitemap index entries
Version 1.1.0 March 10, 2026
- Added IndexNow integration: automatically notify search engines (Bing, Yandex, etc.) when articles are saved
- IndexNow API key auto-generated and served at site root
- No registration required uses the free IndexNow protocol
Version 1.0.0 March 6, 2026
- Initial release
- XML sitemap generation (index, articles, categories)
- HTML sitemap via {retrovault-sitemap} content placeholder
- Bootstrap 5, UIkit 3, and semantic HTML layout options
- Configurable change frequency, priority, and excluded categories
- Auto-regeneration on article/category save and on a configurable interval
Add {retrovault-sitemap} to any article
Add {retrovault-sitemap} to any article for a visitor-friendly sitemap with collapsible categories. Supports Bootstrap 5, UIkit 3, and semantic HTML.
{retrovault-sitemap} add to any Joomla page and save to show the HTML sitemap.