Joomla to WordPress: importing articles and redirecting SEF and index.php URLs
Joomla is the easiest move on this list in one respect: you already own the server and the database, so nothing is locked inside a hosted platform. FG Joomla to WordPress reads the Joomla database directly (you enter the credentials from Joomla's configuration.php) and imports categories, articles, images and tags into WordPress. The hard part is the URLs. Depending on its settings, one Joomla site can answer at SEF paths, paths with numeric IDs such as /12-article-alias, /index.php/... paths and raw index.php?option=com_content&view=article&id=12 query strings, and every form that has links or rankings needs a 301.
Because Joomla usually runs on the same host you are moving to, the redirects can live in the server config you already control.
What FG Joomla to WordPress moves
The free version imports sections and categories, articles, images and other media, and tags, and it rewrites internal links between articles. Joomla's meta keywords become WordPress tags. The premium version adds what matters most for SEO: each article's meta description, navigation menus, users (with passwords), featured images, custom fields and, importantly, either keeping Joomla's article IDs or redirecting old Joomla URLs to the new WordPress ones. Add-ons cover K2, EasyBlog, Flexicontent, Zoo and comment extensions.
If you use the free version, record meta descriptions from the article editor's Publishing tab for the articles that bring traffic and enter them afterwards in the SEO Settings sheet, or ask Hydrogen AI to draft missing ones with a connected hydrogenseo.com account. Extensions such as forms, galleries or directories have no import at all; choose WordPress plugins for those jobs and rebuild them.
Reading your Joomla URLs
Before mapping anything, find out which URL forms your site produces. Joomla's Global Configuration → Site → SEO settings control two switches: Search Engine Friendly URLs and Use URL Rewriting. Combined with menu structure and the article options, they give:
| Settings | Example URL |
|---|---|
| SEF off | /index.php?option=com_content&view=article&id=12&catid=3&Itemid=101 |
| SEF on, rewriting off | /index.php/news/12-city-council-vote |
| SEF and rewriting on (Joomla 3 style) | /news/12-city-council-vote |
| Joomla 4 or later with IDs removed | /news/city-council-vote |
Joomla 4 and later can drop the numeric ID through the Remove IDs from URLs option in the Articles options. Sites that toggled these switches over the years are reachable at several forms, and Google may have indexed more than one. Search Console's Performance report and your server logs show which forms actually receive visits.
Writing the redirect rules
Pick a WordPress permalink first. /%category%/%postname%/ mirrors Joomla's menu-based paths when your categories match your old top-level menu items, so /news/city-council-vote stays identical. Then handle each legacy form:
RewriteEngine On
RewriteRule ^index\.php/(.+?)/?$ /$1/ [R=301,L]
RewriteRule ^([a-z0-9-]+)/[0-9]+-([a-z0-9-]+)/?$ /$1/$2/ [R=301,L]
The first rule strips index.php/; the second drops a numeric ID prefix from the article segment. Before using the second, make sure no real WordPress slug starts with digits and a hyphen, such as 2024-budget, or it will be rewritten too; add an exception above it if one does.
Non-SEF URLs carry the article ID in the query string, so they cannot be matched on the path alone. Either use the premium importer's redirect feature, which knows the ID-to-post mapping, or export a list of IDs and new URLs and turn it into rules keyed on %{QUERY_STRING} with the redirect rule generator. Hydrogen SEO's Redirection Manager is the right place for the handful of renamed articles and menu items that do not fit a pattern.
If the domain stays put and WordPress replaces Joomla in the same document root, there is no DNS change at all; if you also move hosts, the rules have to be live on the new server before DNS switches.
Rankings and the checks that matter
Content-heavy Joomla sites usually keep their rankings when every indexed URL form redirects in one hop to the same article. Losses tend to come from forms nobody listed, such as an old index.php link in a directory, or from menu-driven landing pages (category blogs, featured layouts) that were not rebuilt as real pages. Give it several weeks before judging.
- Test at least one URL of every form in the table above.
- Check that Joomla's
/images/paths still resolve or redirect, since articles and other sites link to them directly. - Remove Joomla's
.htaccessrules that no longer apply, so they do not conflict with WordPress's. - Submit the WordPress sitemap and run the site audit for broken internal links left in imported content.
- Keep the Joomla database backup until the redirects are proven.
Common questions
Is there a plugin to migrate Joomla to WordPress?
Yes. FG Joomla to WordPress connects to the Joomla database and imports categories, articles, images and tags. Its premium version adds meta descriptions, menus, users and redirects from old Joomla URLs.
How do I redirect index.php?option=com_content URLs?
Those URLs identify the article by an ID in the query string, so you need rules that read the query string, or the premium importer's redirect feature, which already knows which WordPress post each Joomla ID became.
Can WordPress keep my Joomla URLs?
Often, for SEF URLs without IDs. A /%category%/%postname%/ permalink reproduces menu-style paths when category slugs match your old menu aliases. ID-prefixed and index.php forms need redirects.