Fix Your Sitemap for Joomla

Updated April 2026·By SitemapFixer Team

Optimize your Joomla sitemap: choose between OSMap, JSitemap, and XMap, configure menu coverage, handle multi-language hreflang, and stop unpublished articles from leaking into search.

Analyze your Joomla sitemap nowTry Sitemap Fixer Free

Joomla sites have unique sitemap challenges because Joomla core does not generate a sitemap - every site relies on an extension, and each extension behaves differently. This guide covers the most common Joomla sitemap issues and exactly how to fix them.

Common Joomla Sitemap Issues

Understanding OSMap, JSitemap, and XMap

OSMap (by Joomlashack) is the most popular free option. It is a fork of XMap that is actively maintained for Joomla 4 and 5. Pro version adds priority settings and news/image/video sitemaps.

JSitemap Pro (by joomlatools) is a paid commercial extension with Google News, video, image, and geo sitemaps built in, plus real-time content analysis.

XMap is the original but has not been updated in years and is not Joomla 4 compatible. Legacy sites only.

Step-by-Step Fix Guide

  1. Install OSMap (or JSitemap Pro) via System > Install > Extensions and enable the system plugin
  2. Go to Components > OSMap and create a new sitemap - select only the menu items you want indexed, typically Main Menu and any language-specific menus
  3. Uncheck irrelevant menu items: login forms, search, tag pages with no content, and legacy menus
  4. Enable SEF URLs in System > Global Configuration > SEO so the sitemap contains clean URLs instead of index.php?option=com_content&view=article&id=42
  5. For multi-language sites, enable the language plugin and configure OSMap to include hreflang alternate links - each language gets its own URL entry with alternates
  6. Configure state filter to include only Published articles - exclude Unpublished, Archived, and Trashed
  7. Exclude unwanted components like com_users login pages, com_search results, and com_tags dynamic pages from the sitemap configuration
  8. Set sensible priority per content type (or skip - Google ignores priority) and configure changefreq based on actual update cadence
  9. Create a menu item of type "OSMap - XML Sitemap" aliased to sitemap.xml so your sitemap is accessible at yoursite.com/sitemap.xml
  10. Add a Sitemap line to robots.txt: Sitemap: https://yoursite.com/sitemap.xml
  11. Submit the sitemap URL in Google Search Console under Indexing > Sitemaps and monitor coverage

Example Joomla sitemap URL structure

# With OSMap and a SEF menu alias
https://yoursite.com/sitemap.xml

# Multi-language (language-prefixed)
https://yoursite.com/en/sitemap.xml
https://yoursite.com/fr/sitemap.xml

# Sitemap index referencing each language
https://yoursite.com/sitemap_index.xml

Multi-language hreflang in Joomla sitemaps

Joomla's multi-language feature associates each article with a language, and OSMap/JSitemap can emit xhtml:link alternate entries inside each URL. Enable the "Include hreflang" option in OSMap Pro or JSitemap Pro. Verify in GSC's International Targeting report that alternate URLs are detected without errors. If your alternates are missing, check that each article has a content association set up under Content > Articles > Associations.

What I see when I audit Joomla sitemaps

Most Joomla sitemaps I audit fall into one of two categories: the sitemap mirrors the menu structure (so it has your About, Contact, Services menu items and maybe a dozen top articles, missing the 600 actual content pieces), or it went the other way and includes every com_content, com_k2, com_virtuemart, and com_users URL including admin panels and user profiles.

One Joomla 4 site I looked at last month had 8,400 URLs in its sitemap. Turned out 6,200 of them were /component/users/ profile URLs for registered commenters. Every commenter created a public profile URL, all indexed, all indexed as thin content. They'd lost 40% of their organic traffic over 9 months and didn't understand why.

Fix was to exclude com_users from OSMap's sitemap config, noindex the user profile view globally, and resubmit. Traffic recovered in 7 weeks. The lesson: Joomla's extensibility is great, but every component silently adds URLs to your sitemap unless you explicitly exclude them.

OSMap-specific fix steps

If you're on OSMap (free or Pro), here's my usual sequence for cleaning up a broken Joomla sitemap:

  1. Go to Components > OSMap > Sitemaps. Most sites have a default "Default Sitemap" you can edit.
  2. Under "Menus," select ONLY your public content menus. Uncheck "User Menu," "Admin Menu," and any backend or hidden menus.
  3. For each included menu item, click the item and check "Change frequency" and "Priority" - set blog to weekly/0.6, main pages to monthly/0.8. Google ignores these but Bing doesn't.
  4. Go to OSMap plugin settings (System > Manage > Plugins, search "OSMap") and disable plugins for components you don't want in the sitemap.
  5. In System > Global Configuration > SEO, enable "Search Engine Friendly URLs" and "Use URL rewriting." Without these, your sitemap is full of ?option=com_content&view=article&id=42 junk.
  6. Create an .htaccess-level redirect from /sitemap.xml to your OSMap URL so you get a clean public URL.

JSitemap-specific fix steps

JSitemap Pro is heavier on features and lighter on sensible defaults. The "automatic data source" scanner is aggressive - it'll pick up every component including ones you don't want indexed.

  1. Go to Components > JSitemap > Data Sources.
  2. Disable the "com_users," "com_search," "com_finder," "com_mailto," and "com_wrapper" data sources. These add admin and utility URLs.
  3. For your content source (com_content, com_k2, or whatever CMS you use), click Edit and set "Published state" to Published only. Default is often "all states" which leaks unpublished drafts.
  4. Enable "Exclude by URL pattern" and add patterns like /component/, /administrator/, /tag/ if tag pages are thin.
  5. JSitemap Pro ships with /index.php/sitemap.xml by default. Create an alias menu item at /sitemap.xml to get a clean URL.
  6. Under "Settings > Image sitemap" and "Video sitemap" - enable these if you actually have images/videos worth indexing, otherwise leave them off. JSitemap will otherwise list every decorative site image.

Joomla-specific mistakes I keep seeing

Quick diagnosis commands

# Count URLs in your Joomla sitemap
curl -s https://yoursite.com/sitemap.xml | grep -c '<loc>'

# Hunt for component leakage
curl -s https://yoursite.com/sitemap.xml | \
  grep -oE '<loc>[^<]+</loc>' | \
  grep -iE 'component/|option=com_|administrator|index.php\?'

# Check for unpublished articles sneaking in
# (any URL returning 404 when you GET it)

If the second command returns results, your SEF URLs aren't fully applied or your sitemap extension is bypassing them. Fix the SEF config first, then regenerate.

Frequently Asked Questions

Which Joomla sitemap extension is best?
OSMap (free and pro versions) is the most widely used and actively maintained. JSitemap Pro is more feature-rich with built-in Google News, video, and image sitemaps. XMap is the legacy option still used on older Joomla 3 sites. For most new Joomla 4+ sites, start with OSMap.
Does Joomla have a built-in sitemap generator?
No. Joomla core does not generate an XML sitemap out of the box - you need an extension like OSMap, JSitemap, or XMap. This is different from WordPress, where SEO plugins include a sitemap by default.
Where do I find my Joomla sitemap URL?
After installing OSMap or JSitemap, the XML sitemap is usually at yoursite.com/index.php?option=com_osmap&view=xml&tmpl=component&id=1 or a friendlier URL like /sitemap.xml if you have enabled SEF URLs and configured the extension's menu item.
Analyze your Joomla sitemap
Find all issues in your sitemap - free, no credit card needed
Analyze My Sitemap Free
Other platform guides