🏠 Home πŸ–₯️ Hosting 🎨 Themes πŸ”Œ Plugins πŸ› οΈ Dev Tools ⚑ WordPress πŸ”₯ Joomla!
Tutorial

How to Set Up 301 Redirects in Joomla 6 (Complete Guide)

How to Set Up 301 Redirects in Joomla 6 (Complete Guide)

Quick Answer

To create a 301 redirect in Joomla, go to System β†’ Manage β†’ Plugins, enable System - Redirect, then open Components β†’ Redirects β†’ New and enter your old and new URL. For large site migrations, use the Redirect Manager's Import feature to add many URLs at once, or edit .htaccess directly for server-level redirects that run before Joomla loads.

πŸ–ΌοΈ [SCREENSHOT NEEDED] Hero image β€” simple diagram or browser mockup showing an old URL arrow-pointing to a new URL with a "301" badge, to visually anchor the topic.
Suggested alt text: "Diagram showing a 301 redirect sending an old Joomla URL to a new URL"

This guide covers every practical way to redirect URLs on a Joomla site: Joomla's built-in Redirect component, bulk redirects for migrations, and server-level .htaccess rules. Steps and screenshots below reflect the Joomla 6 admin layout; the menu labels are effectively unchanged going back to Joomla 4.

What you'll needNotes
Joomla admin (Super User) accessRequired for all steps below
Joomla 4, 5, or 6The Redirect component and plugin ship with Joomla core since version 1.6
FTP or hosting File Manager accessOnly needed if you also want .htaccess-level redirects
Apache with mod_rewriteOnly needed for the .htaccess method β€” Nginx users edit their server block instead
A list of old URLs mapped to new URLsA simple spreadsheet works well for migrations with many pages

Step 1: Know When You Actually Need a Redirect

You need a redirect any time a URL that used to exist stops existing at that address: renaming a menu item alias, moving an article to a different category, merging or deleting categories, switching domains, or moving from HTTP to HTTPS. A 301 redirect tells browsers and search engines the move is permanent β€” bookmarks get updated and most of the page's ranking signals carry over to the new URL. A 302 redirect signals a temporary move; search engines keep indexing the original URL, which is only appropriate for short-lived situations like a maintenance placeholder.

Step 2: Enable the System - Redirect Plugin

A fresh Joomla install ships with the Redirect plugin disabled. Until it's on, nothing you save in the Redirect component will fire.

  1. Go to System β†’ Manage β†’ Plugins.
  2. Search for redirect.
  3. Open System - Redirect, set Status to Enabled, and click Save & Close.
πŸ–ΌοΈ [SCREENSHOT NEEDED] Joomla admin, System β†’ Manage β†’ Plugins, search results filtered to "redirect", with the System - Redirect row and its Enabled toggle visible.
Suggested alt text: "Joomla Plugin Manager showing the System - Redirect plugin enabled"

πŸ’‘ Tip

If your redirects still don't work after saving them in Components β†’ Redirects, this plugin being disabled is the most common cause.

Step 3: Create a Single Redirect

  1. Go to Components β†’ Redirects.
  2. Click New.
  3. In Source URL, enter the old path as a relative URL (e.g. /old-page) β€” do not include the domain.
  4. In Destination URL, enter the new path or full URL.
  5. Optionally add a Comment so future editors know why the redirect exists.
  6. Set Status to Enabled and click Save & Close.

Visit the old URL in a browser and it will now forward to the new one with a 301 status by default.

πŸ–ΌοΈ [SCREENSHOT NEEDED] Components β†’ Redirects β†’ New form, with the Source URL and Destination URL fields filled in with example values, and the Status field highlighted.
Suggested alt text: "Joomla Redirect Manager New Redirect form with source and destination URL fields"

Step 4: Turn On Custom Status Codes (If You Need 302s)

By default, the Redirect component sends every redirect as a 301, no matter what you pick per row. To use other codes:

  1. In Components β†’ Redirects, click Options in the toolbar.
  2. Set Use Custom Redirect Status Codes to Yes and save.
  3. Now the HTTP Status Code dropdown on each redirect row actually takes effect β€” pick 301, 302, or another code as needed.

⚠️ Watch out

Turn this option on before importing a CSV that mixes 301 and 302 codes β€” otherwise every imported row is silently flattened to 301.

πŸ–ΌοΈ [SCREENSHOT NEEDED] Redirect Manager Options panel with "Use Custom Redirect Status Codes" set to Yes, circled in red.
Suggested alt text: "Joomla Redirect options screen with Use Custom Redirect Status Codes enabled"

Step 5: Bulk-Import Redirects for a Migration

If you're restructuring a large site or migrating from another CMS, creating redirects one by one isn't practical. The Redirect Manager's toolbar includes an Import option that reads a delimited list of old/new URL pairs and creates the matching rows in bulk β€” useful after a redesign, a URL structure change, or a platform migration where you already have an old-URL-to-new-URL mapping in a spreadsheet.

πŸ“Š [SCREENSHOT NEEDED] Redirect Manager toolbar with the Import button highlighted, and the import screen showing a delimited-file upload field.
Suggested alt text: "Joomla Redirect Manager bulk import screen for uploading multiple redirects"

Step 6: Add Server-Level Redirects via .htaccess (Alternative Method)

On Apache hosting, you can also redirect at the server level, before Joomla even loads β€” slightly faster, and useful for rules that don't map cleanly to single URLs (like redirecting an entire old subfolder). Back up .htaccess first, then add lines such as:

RewriteEngine On
RewriteRule ^old-page$ /new-page [R=301,L]

Place custom rules like this above Joomla's own SEF rewrite block near the top of the file. Nginx doesn't use .htaccess; the equivalent rule goes in a rewrite or return 301 directive inside your server block.

πŸ–ΌοΈ [SCREENSHOT NEEDED] Hosting File Manager (or FTP client) with .htaccess opened in a text editor, with the new RewriteRule line highlighted near the top of the file.
Suggested alt text: "Editing the .htaccess file to add a 301 redirect rule on a Joomla site"

⚠️ Watch out

Don't run both the Redirect component and an .htaccess rule for the same URL β€” the two can conflict, and which one "wins" depends on server config and rule order. Pick one method per URL.

Step 7: Test and Verify the Redirect

Reaching the right page in a browser doesn't confirm the status code β€” browsers don't display that. Check it directly:

  • Run curl -I https://yoursite.com/old-page in a terminal and look for HTTP/1.1 301 Moved Permanently and a Location header pointing to the new URL.
  • Or open browser DevTools β†’ Network tab, reload the old URL, and check the status code of the first request.

❓ Frequently Asked Questions

What is a 301 redirect in Joomla?

It's a permanent-move response Joomla sends when a visitor or crawler requests an old URL, automatically forwarding them to a new one. It's built into Joomla core via the Redirect component and the System - Redirect plugin β€” no extension required for basic use.

What's the difference between a 301 and a 302 redirect?

301 means the move is permanent: search engines transfer most ranking signals to the new URL and update their index. 302 means temporary: the old URL stays indexed and should come back. Use 301 for anything you don't plan to revert.

Does Joomla have a built-in redirect tool?

Yes β€” the Redirect component (Components β†’ Redirects) plus the System - Redirect plugin, both included in Joomla core since version 1.6. You only need a third-party extension if you want extra features like pattern-based rules.

Do 301 redirects hurt my Joomla site's SEO?

Not when used correctly. A single, direct 301 to the most relevant new page preserves most of the original ranking value. What does hurt SEO is redirect chains, blanket redirects to the homepage, or using 302 for a permanent change.

Should I use the Redirect component or .htaccess for a big migration?

The component is easier for content editors and supports bulk import without touching server files. .htaccess is slightly faster and better for pattern-based rules affecting whole folders. Either works β€” just don't use both for the same URL.

How long should I keep old redirects active?

Indefinitely, for any URL that was ever indexed or linked to externally. Deleting a redirect row later just turns it back into a 404 for anyone still holding the old link or bookmark.

🧯 Common Mistakes to Avoid

  • Forgetting to enable the System - Redirect plugin. Rows saved in the component do nothing until the plugin is active.
  • Creating redirect chains. A β†’ B β†’ C adds latency and wastes crawl budget β€” always point straight to the final destination.
  • Using 302 for a permanent change. This tells search engines to keep the old URL indexed, which defeats the purpose.
  • Redirecting everything to the homepage. Map each old URL to the closest matching new page instead β€” it's better for both users and rankings.
  • Running the Redirect component and .htaccess for the same URL. Conflicting rules produce unpredictable behavior depending on server config.
  • Skipping verification. Landing on the right page visually doesn't confirm a 301 β€” check the actual HTTP header with curl -I or DevTools.

➑️ What's Next

If you're cleaning up redirects as part of a broader SEO pass, a logical next step is reviewing your site's 404 log (Joomla's Redirect Manager can collect these automatically) and auditing your robots.txt and sitemap so search engines don't keep crawling URLs you've already redirected away from.

βœ… Last verified on Joomla 6.1 / 5.4 β€” July 2026
Thanh Le
Thanh Le
Joomla Specialist & Technical Writer

Thanh Le is a Joomla expert and technical writer at Jlvextension.com, known for creating in-depth tutorials, extension reviews, and optimization guides. His work focuses on helping developers and webs