Skip to content

Joomla SEO — SEF URLs, Metadata, Sitemaps and Redirects

DodaTech Updated 2026-06-27 12 min read

In this tutorial, you'll learn how to optimize Joomla for search engines — enabling SEF URLs, configuring metadata per article and globally, generating XML sitemaps, managing redirects, and verifying your site with Google Search Console.

What You'll Learn

  • Enabling SEF URLs and URL rewriting in Global Configuration
  • Configuring article-level and global metadata (title, description, keywords, robots)
  • Adding Open Graph tags for better social media sharing
  • Generating XML sitemaps with OSMap and submitting to Google
  • Creating 301 redirects using Joomla's Redirect component
  • Customizing robots.txt for your site
  • Verifying your site with Google Search Console

Why It Matters

Search engines are how most visitors find your site. Without proper SEO configuration, your Joomla pages may not rank for relevant keywords, even if your content is excellent. SEF URLs make your links readable and keyword-rich. Metadata tells search engines what each page is about. Sitemaps ensure every page gets indexed. Redirects prevent broken links. Each of these elements contributes to higher rankings and more organic traffic. SEO is not optional — it is a fundamental part of launching any public website.

Real-World Use

A local business directory built with Joomla had 500 listing pages but only 30 were indexed by Google after three months. The default Joomla URLs were index.php?option=com_content&view=article&id=42 — Google could crawl them but did not rank them well. After enabling SEF URLs, adding unique meta descriptions to every listing, generating an XML sitemap with OSMap, and submitting to Google Search Console, all 500 pages were indexed within two weeks. Organic traffic increased by 300% over the next quarter.

Learning Path

flowchart LR
  A["Joomla Caching"] --> B["Joomla SEO"]
  B --> C["Smart Search"]
  C --> D["Media Manager"]
  D --> E["Multilingual Sites"]

  classDef current fill:#38bdf8,color:#0f172a,stroke-width:2px
  class B current

SEF URLs

Search Engine Friendly (SEF) URLs turn Joomla's default query-string URLs into readable paths. Instead of index.php?option=com_content&view=article&id=42, you get /folder-name/article-title.

Enabling SEF URLs

  1. Go to System > Global Configuration > Site
  2. In the SEO Settings section, set:
Setting Value
Search Engine Friendly URLs Yes
Use URL Rewriting Yes
Adds Suffix to URL No
Unicode Aliases No

Setting Up .htaccess for URL Rewriting

Joomla ships with a file called htaccess.txt. You must rename it to .htaccess for URL rewriting to work:

# From your Joomla root directory
cp htaccess.txt .htaccess

Your web server must have mod_rewrite enabled:

# Apache: enable mod_rewrite
sudo a2enmod rewrite
sudo systemctl restart apache2

The .htaccess file tells Apache to pass all requests to index.php for routing. Here is the key section from the default .htaccess:

## Begin - Rewrite rules to make Joomla SEF URLs work
<IfModule mod_rewrite.c>
  Options +FollowSymlinks
  RewriteEngine On

  ## Redirect from www to non-www (or vice versa)
  # RewriteCond %{HTTP_HOST} ^www\.yoursite\.com [NC]
  # RewriteRule ^(.*)$ https://yoursite.com/$1 [L,R=301]

  ## Rewrite all requests to index.php
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^(.*)$ index.php [L]
</IfModule>

Metadata Configuration

Metadata tells search engines what your page is about. You can set it at the article level and at the global level.

Article-Level Metadata

When editing an article, scroll to the Metadata tab (below the editor). Fill in:

Field Purpose Example
Meta Description The description shown in search results "Learn how to bake sourdough bread at home with this step-by-step guide."
Keywords Not used by Google, but used by some search engines bread, sourdough, baking, recipe
Robots Indexing instructions for search bots index, follow
Author The author of the article John Smith
Content Rights Copyright or license information All Rights Reserved
External Reference A URL for related external content https://example.com/recipe

Global Metadata

  1. Go to System > Global Configuration > Site
  2. In the SEO Settings, set:
Setting Value
Site Meta Description "Your site's default description for pages without their own."
Site Meta Keywords joomla, tutorials, web development

The global metadata serves as the fallback. If a page does not define its own metadata, Joomla uses the global values.

Open Graph Tags

Open Graph tags control how your pages appear when shared on Facebook, LinkedIn, Twitter, and other social platforms. Joomla does not include OG tags by default — you need a plugin.

Installing an OG Tags Plugin

  1. Go to Extensions > Manage > Install
  2. Upload a plugin like OG Tags or Joomla Social Meta
  3. Go to Extensions > Plugins, find the plugin, and enable it
  4. Configure the plugin settings:
Setting Description
og:title Use article title or custom value
og:description Use article meta description
og:image Use the first image in the article or a default image
og:url Use the current page URL
og:type article, website, or auto-detect

When the plugin is active, view your page source. You should see tags like:

<meta property="og:title" content="How to Bake Sourdough Bread" />
<meta property="og:description" content="Learn how to bake sourdough bread at home with this step-by-step guide." />
<meta property="og:image" content="https://yoursite.com/images/sourdough.jpg" />
<meta property="og:url" content="https://yoursite.com/baking/sourdough-bread" />
<meta property="og:type" content="article" />

XML Sitemap

An XML sitemap tells Google which pages exist on your site and when they were last updated. Joomla does not generate sitemaps natively.

Installing OSMap

  1. Download OSMap from the Joomla Extensions Directory
  2. Install via Extensions > Manage > Install
  3. Go to Components > OSMap

Configuring OSMap

  1. Click New to create a sitemap
  2. Select which content to include:
Content Type Include
Menu Items All public menu items
Articles All published articles
Categories All published categories
Tags All published tags
Contacts All published contacts
  1. Set Priority and Change Frequency for each item type
  2. Publish the sitemap

Your sitemap URL will be: https://yoursite.com/index.php?option=com_osmap&view=html&id=1

Submitting to Google Search Console

  1. Verify your site in Google Search Console (see below)
  2. Go to Sitemaps in the left menu
  3. Enter your sitemap URL
  4. Click Submit

Google will start crawling your sitemap within a few days. Check the Sitemaps report to see how many URLs were indexed.

HTML Sitemap

OSMap can also generate an HTML sitemap for your human visitors. Create a new module:

  1. Go to Extensions > Modules > New
  2. Select OSMap Module
  3. Assign it to a module position (e.g., sidebar-right)
  4. Configure which items to show
  5. Publish the module

Create a menu item that links to the HTML sitemap page so users can find it.

Redirect Component

When you change a page's URL (by renaming an article, changing a category, or restructuring menus), the old URL breaks. Joomla's Redirect component creates 301 redirects to send visitors and search engines to the new URL.

Enabling the Redirect Plugin

  1. Go to Extensions > Plugins
  2. Search for Redirect
  3. Enable System - Redirect

Managing Redirects

  1. Go to System > Redirect
  2. You see two tabs: Links and Redirects

When a Visitor hits a 404 (page not found), the Redirect plugin logs it in the Links tab:

Expired URL New URL Status
/old-article 404

To create a redirect:

  1. Check the checkbox next to the expired URL
  2. Enter the New URL
  3. Click Save

The redirect is now active. Joomla will send a 301 (Moved Permanently) header when someone visits the old URL.

Bulk Add Redirects

You can also add redirects manually:

# In the Redirect component, click "Add"
Expired URL: /old-category/old-article
New URL: /new-category/new-article
Status: 301

Robots.txt

The robots.txt file tells search engines which parts of your site they may or may not crawl. Joomla 4's default template (Cassiopeia) ships with a robots.txt file.

Location

The file is at: templates/cassiopeia/robots.txt

For Joomla 5, check your active template directory. You can also override it by placing a robots.txt file in your Joomla root.

Default robots.txt Content

User-agent: *
Disallow: /administrator/
Disallow: /cache/
Disallow: /tmp/
Disallow: /logs/
Disallow: /images/banners/
Disallow: /components/
Disallow: /modules/
Disallow: /plugins/
Disallow: /templates/
Disallow: /language/

Customizing for Your Site

You may want to allow Google to crawl certain parts that are currently disallowed:

User-agent: *
Allow: /images/
Disallow: /administrator/
Disallow: /cache/
Disallow: /tmp/
Disallow: /logs/

# Sitemap
Sitemap: https://yoursite.com/sitemap.xml

Testing robots.txt

In Google Search Console, go to Crawl > robots.txt Tester to see how Google reads your file.

Google Search Console Verification

Google Search Console lets you monitor your site's search performance, submit sitemaps, and check for issues.

Verification Methods

Method 1: HTML Meta Tag

  1. In Google Search Console, add your property
  2. Copy the meta tag: <meta name="google-site-verification" content="CODE" />
  3. In Joomla, go to Extensions > Plugins > System - Google Verification (install one if needed) or add the tag to your template's <head> section
  4. Click Verify in Google Search Console

Method 2: HTML File Upload

  1. Google provides a verification file
  2. Download the file and upload it to your Joomla root directory via FTP
  3. Click Verify

Submitting Your Sitemap

Once verified, submit your sitemap URL. Google will crawl it and show you:

  • Total URLs submitted
  • URLs indexed
  • Crawl errors (if any)
  • Last crawl date

Canonical URLs

Joomla automatically generates canonical URLs in Joomla 4+. The canonical URL tells search engines which version of a page is the original when multiple URLs point to the same content.

To check that canonical URLs are working, view your page source:

<link rel="canonical" href="https://yoursite.com/folder/article-title" />

Schema.org via Plugin

Schema.org structured data helps search engines understand your content. Install a plugin like Joomla Structured Data or Schema.org to add schema to your pages.

Types of schema you can add:

Schema Type Best For
Article Blog posts and news articles
Organization Your business or site
Person Author profiles
BreadcrumbList Navigation breadcrumbs
FAQPage FAQ sections

Common Mistakes

  1. Forgetting to rename htaccess.txt to .htaccess: SEF URLs will not work without .htaccess. You must rename the file and ensure mod_rewrite is enabled on your server.

  2. Using the same meta description for every page: Google penalizes duplicate meta descriptions. Write unique descriptions for every article. At minimum, match the description to the article's content.

  3. Not submitting a sitemap: Without a sitemap, Google must discover your pages through internal links alone. New pages may not get indexed for weeks or months.

  4. Creating redirect loops: If you redirect /old-page to /new-page, then redirect /new-page to /old-page, visitors get stuck in a redirect loop. Always check your redirects.

  5. Blocking CSS and JavaScript in robots.txt: Some old robots.txt templates block /components/ and /modules/. This prevents Google from rendering your pages correctly. Only block sensitive directories.

Practice Questions

  1. What is the purpose of SEF URLs in Joomla, and what server feature must be enabled for them to work? Answer: SEF URLs turn query-string URLs into readable, keyword-rich paths. Apache's mod_rewrite module must be enabled, and the htaccess.txt file must be renamed to .htaccess for URL rewriting to work.

  2. Where do you configure Open Graph tags in Joomla, and why are they important? Answer: Joomla does not include OG tags by default. You must install a plugin like OG Tags. Once enabled, configure it in Extensions > Plugins. OG tags control how your pages appear when shared on social media platforms.

  3. What is the difference between XML sitemaps and HTML sitemaps? Answer: XML sitemaps are for search engines — they list all URLs on your site with metadata like last modified date and priority. HTML sitemaps are for human visitors — they display a navigable list of links on a page. Both help with SEO but serve different audiences.

  4. Challenge: Audit a live Joomla site (or your test site) for SEO issues. Check: SEF URLs are working, every article has a unique meta description, an XML sitemap exists and is submitted to Google Search Console, robots.txt is configured correctly, and there are no broken links. Create a report with issues found and fixes applied.

FAQ

How do I enable SEF URLs in Joomla?

Go to System > Global Configuration > Site > SEO Settings. Set Search Engine Friendly URLs to Yes and Use URL Rewriting to Yes. Rename htaccess.txt to .htaccess in your Joomla root directory and ensure mod_rewrite is enabled on your server.

Does Joomla support Open Graph tags?

Joomla does not include Open Graph tags by default. You need to install a plugin such as OG Tags or Joomla Social Meta to add og:title, og:description, og:image, and og:url tags to your pages.

How do I create an XML sitemap in Joomla?

Install the OSMap extension from the Joomla Extensions Directory. Go to Components > OSMap, create a new sitemap, select which content types to include, publish it, then submit the sitemap URL to Google Search Console.

How do I set up redirects in Joomla?

Enable the System - Redirect plugin in Extensions > Plugins. Go to System > Redirect to view broken URLs and create 301 redirects. You can also manually add redirects for known URL changes.

What should I put in my Joomla robots.txt file?

Disallow sensitive directories like /administrator/, /cache/, /tmp/, and /logs/. Allow search engines to crawl your media files. Include your sitemap URL at the bottom of the file. Test the file in Google Search Console.

Mini Project

Your task is to fully configure SEO for a Joomla site.

Set up a Joomla installation with at least 10 sample articles and 5 categories. Perform the following:

  1. Enable SEF URLs and URL rewriting. Verify that article URLs are readable paths.
  2. Write unique meta descriptions for all 10 articles. Write a global meta description.
  3. Install an OG Tags plugin. Verify the tags in your page source.
  4. Install OSMap and generate an XML sitemap. Include articles, categories, and menu items.
  5. Verify your site with Google Search Console using the meta tag method.
  6. Submit your sitemap to Google Search Console.
  7. Customize robots.txt to allow Google to crawl images and reference your sitemap.
  8. Create a 301 redirect from an old URL to a new one and test it.

Document each step with screenshots or notes. This exercise mirrors what you would do for a real client site before launch.

What's Next

Now that your site is optimized for search engines, make it easy for visitors to find content:

Continue to Lesson 31: Joomla Smart Search — Configure the search index, filters, and search results page.

Related lessons:

Built by the developers of DodaTech

Doda Browser, DodaZIP & Durga Antivirus Pro