Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more

The safest Joomla-to-WordPress migration is a staged rebuild: back up Joomla, create WordPress on a private staging URL, import the database content, recreate the design and extensions, map every changed URL, test the new site, then switch the domain with 301 redirects. Joomla has no native export that WordPress can read, so you need either an importer such as FG Joomla to WordPress or a manually prepared database/WXR export.

Most migration failures are not caused by copying articles. They come from missing media, un-recreated extensions, changed permalinks, and forgotten redirects. Treat the move as a content, design, functionality and URL project rather than a single import.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

What a Joomla-to-WordPress migration actually includes

A migration changes the application that serves your site while preserving as much of its public content and discoverability as possible. The work has four separate parts:

  • Content: articles, categories, tags, images and other media.
  • Presentation: the theme, templates, menus, module positions, galleries and page layouts.
  • Functionality: forms, search, comments, user accounts and Joomla extensions that have WordPress equivalents.
  • Addresses: the URLs that visitors and search engines already know.

An importer handles only part of that list. The FG Joomla to WordPress plugin is described as moving categories, posts, tags, images and media. It does not carry over your Joomla template, replace extensions or create your redirect strategy. Those items must be rebuilt and checked separately.

No single end-to-end migration wizard is provided by WordPress.org or Joomla.org. In practice, you build WordPress beside Joomla, move the data, reproduce the site’s behavior, and cut over only after the staging copy passes a URL and content audit.

Choose an import method

Your choice depends on how closely the Joomla installation follows the standard article/category model and how much control you need over the destination structure.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Method What it uses Best fit Trade-off
FG Joomla to WordPress plugin Direct connection to the Joomla database using its host, database name, user and password Conventional Joomla sites whose articles, categories, tags and media can map to WordPress content Fastest route, but the result still requires theme, extension, metadata, user and URL work
Manual database export phpMyAdmin exports of Joomla article, category and user tables as SQL or CSV Sites needing field-level control or a custom transformation More preparation and mapping; you are responsible for constructing valid WordPress content
Custom WXR XML build A WordPress eXtended RSS (WXR) file generated from the Joomla database Highly customised or non-standard Joomla installations where a direct importer cannot model the data Requires a carefully mapped export and a separate plan for media and extension data

Joomla’s Article Manager does not provide a WordPress-ready export. Exporting a page from the administrator interface is therefore not a substitute for a database-aware migration.

Check compatibility before installing the importer

The WordPress.org listing for FG Joomla to WordPress has carried changing compatibility details, so verify the live listing immediately before installation. The figures below are listing claims, not an independent test of your site:

Listing detail Value reported
Joomla versions tested 1.5 through 6.0
Minimum WordPress version stated 4.5
Minimum PHP version stated 5.6
Cached listing, version 4.32.0, en-CA Tested up to WordPress 6.8.3
Cached listing, version 4.34.0, en-AU Tested up to WordPress 7.0.4
Cached listing, version 4.34.0, en-GB Tested up to WordPress 7.0.1
Most recent changelog claim located Version 4.34.1 tested with WordPress 7.1

The cached values are inconsistent because they represent different snapshots of the listing. The 4.34.1 and WordPress 7.1 statement is newer, but the exact current “Tested up to” field should be confirmed on the live WordPress.org page. The minimum PHP and WordPress numbers are historical plugin requirements; they are not a recommendation to run an otherwise unsupported server stack.

Prepare Joomla and WordPress

1. Inventory everything that must survive

Make a spreadsheet or checklist before touching the production site. Record article titles and IDs, categories, tags, publication status, authors, media paths, menus, forms, galleries, search behavior, user accounts, metadata fields and every installed extension. Mark which items have a WordPress replacement and which will need a redesign.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Also record the current URL for every important page. Include the home page, category and tag pages, articles, image or document URLs, feeds and any landing pages that receive traffic. This inventory becomes both your migration scope and your post-launch test list.

2. Create a recoverable backup

Take a full Joomla backup before exporting or changing configuration. It should include the database and the files directory, including uploaded images and documents. Some Joomla administrators use the Akeeba Backup extension for this task; whichever method you choose, verify that the archive can actually be restored or that you have a second copy of the database and files.

Keep the original Joomla site online and untouched while WordPress is being built. A backup that exists only on the same server is not a reliable rollback plan.

3. Build WordPress on staging

Install WordPress at a temporary, access-controlled staging address. Do not point the public domain to it yet. Use the same PHP and database access conditions that the final host will provide, and ensure you can create administrator accounts, install plugins and upload media.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Disable public indexing for staging using the host’s access control and WordPress’s search-engine visibility setting. Remove that restriction only after the domain switch; otherwise, the unfinished copy can be indexed alongside Joomla.

Build a complete URL map before the switch

Crawl the live Joomla site

Crawl the production site before migration so the list comes from actual links rather than memory. One commonly suggested crawler is Screaming Frog. Save the full URL list, response codes, page titles and canonical information where available. The crawl provides the source address for each redirect and highlights existing broken links that should not be carried into WordPress.

Add the pages that matter most to search

Use Google Search Console to identify top landing pages and add them to the map even if they are weakly linked internally. A page with historical search traffic deserves a destination or a deliberate retirement decision. Keep the old URL, the planned WordPress URL and the final redirect status in separate columns.

Decide whether to preserve the permalink pattern

In WordPress, open Settings > Permalinks and choose a structure that matches the Joomla pattern wherever practical. Matching the old pattern reduces the number of redirect rules and lowers the chance of overlooking a valuable URL. Do not force an exact match when it would create unusable or duplicate WordPress addresses; map the exceptions explicitly instead.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Import Joomla content with FG Joomla to WordPress

Install and connect the plugin

On the staging WordPress site, install the FG Joomla to WordPress plugin from the WordPress plugin directory. The direct-import route requires connection details for the Joomla database: host, database name, user and password. Obtain these from the Joomla configuration or hosting control panel, and use a database account that can read the required tables.

Keep Joomla available while the import runs. If the connection fails, recheck the hostname separately from the database name, confirm the account can connect from the WordPress server, and verify that the Joomla database is reachable through the host’s firewall or database permissions.

Run the content import

Start with the standard content types the plugin advertises: categories, posts, tags, images and other media. Import into staging, then inspect a representative sample rather than assuming that a completed progress message means the site is finished. Check short and long articles, articles with several images, uncategorized content, scheduled or unpublished items, authors and old media formats.

Preserve the original Joomla copy until you have compared counts and spot-checked the rendered pages. If the import is incomplete, record which content types were affected before running it again; repeated imports can create duplicates unless the plugin’s documented cleanup or replacement options are used.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Run the internal-link repair, then verify it

Guides for the plugin describe an internal-link fix that rewrites old links such as /index.php?option=com_content to cleaner WordPress URLs. Treat that as a convenience, not proof that every link is correct. Open articles from different years and categories, inspect links to other articles and download files, and search the database or rendered HTML for the old Joomla pattern. Correct links that point to staging addresses, missing attachments or the wrong post.

Recreate the design and Joomla extensions

Choose and configure a WordPress theme

There is no automatic Joomla-template conversion in the content import. Rebuild the header, navigation, typography, article layout, sidebars, footer, search page and responsive behavior in a WordPress theme. Compare the staging pages with the live site at desktop and mobile widths, but do not assume that reproducing every visual detail is more important than preserving readable content and working navigation.

Replace extensions by function

List every Joomla extension by the job it performs rather than by its name. A contact form, gallery, membership feature, event listing, cache layer or custom field needs a WordPress implementation that supports the same reader task. Install and configure replacements one function at a time, then test permissions, notifications, uploads and validation.

Menus and module positions require special attention. Recreate the primary and footer menus in Appearance > Menus (or the equivalent site-editor interface for your theme), assign them to the correct locations, and check dropdowns and mobile navigation. Galleries and embedded media should be opened in a logged-out browser as well as an administrator session.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Review metadata, users and forms

Compare page titles, descriptions, canonical settings, open-graph fields and any structured data you deliberately used on Joomla. The importer’s advertised content scope does not guarantee that extension-specific metadata will map to WordPress. Re-enter or transform fields that are missing.

Check author attribution and user accounts before launch. Confirm which accounts need access, which roles they should have and whether users must reset passwords. Submit every important form on staging and verify the expected email or database result; a visually identical form that does not deliver is still a migration failure.

Create 301 redirects for changed URLs

When the domain moves to WordPress, each old Joomla address that no longer resolves must point to its closest relevant WordPress destination with a permanent (301) redirect. Without those redirects, visitors following old links receive 404 errors and search engines cannot reliably transfer the old address to the new one.

Build the redirect map

Use the crawl and Search Console landing-page list to create one row for each changed URL. Prefer a specific, content-equivalent destination: an imported article to its new article, a category to the corresponding category, and a retired page to the most relevant surviving section. Do not send every old URL to the home page; that hides errors and gives visitors no useful context.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Test the map on staging or a non-public hostname before the DNS change. Include URLs with Joomla query strings and any alternate forms discovered by the crawl. Keep a copy of the map outside WordPress so it can be audited or restored.

Implement the rules

You can add redirects with the Redirection plugin or with redirect features provided by Yoast or Rank Math. Enter the old path and the final WordPress path, select a permanent redirect, and save in manageable groups. If your hosting platform manages redirects at the web-server level, that can be used instead, but keep one authoritative rule set to avoid chains and conflicts.

After saving, request a sample of old URLs in a private browser window. Confirm that each returns the intended destination, that there is no redirect loop, and that the final page returns normally. A redirect to another redirect is a chain worth removing before launch.

Test the staging site like a visitor and a crawler

Run a structured acceptance pass rather than checking only the home page.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  • Open representative articles, categories, tags, pages, media files and downloads.
  • Check headings, formatting, code samples, tables, captions, featured images and publication dates.
  • Use the main menu, footer links, breadcrumbs, search, pagination and mobile navigation.
  • Submit every form, test logged-in and logged-out behavior, and confirm user roles.
  • Search for old Joomla URL fragments, staging hostnames and broken image paths.
  • Compare imported content counts with the Joomla inventory and investigate every mismatch.
  • Request old high-value URLs and verify their 301 destination and final status.
  • Generate the WordPress XML sitemap and ensure it contains only final, indexable URLs.

Keep a defect log with the URL, symptom, cause and owner. Fix the underlying mapping or configuration rather than marking a broken page as accepted.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Switch the domain and submit the new sitemap

  1. Put Joomla into a controlled maintenance state or freeze editorial changes so the two systems do not diverge during cutover.
  2. Take a final database and files backup and record the exact time of the last Joomla update.
  3. Confirm that WordPress has the production domain configured for both the site address and WordPress address.
  4. Apply the approved redirect rules and remove staging-only access restrictions from the production copy.
  5. Change DNS or the hosting assignment so the domain serves WordPress. DNS propagation can leave some visitors on the old host temporarily, so keep Joomla available until traffic has moved.
  6. Open the live home page, several old Joomla URLs and several new WordPress URLs from outside your administrator session.
  7. Submit the new WordPress sitemap in Google Search Console and watch coverage, indexing and crawl errors.

Do not delete the Joomla installation immediately after DNS changes. Keep the verified backup and a rollback plan until you have confirmed that important redirects, forms, media and search landing pages work on the live domain.

Troubleshoot the problems that appear most often

The importer cannot connect

Recheck the Joomla database host, name, user and password, then confirm that the database accepts connections from the WordPress server. A correct password with the wrong host or a database account restricted to another server produces the same apparent failure, so validate each value independently.

Articles imported but images are missing

Compare the imported media paths with the original Joomla files and inspect an article that contains several image types. Verify that the files were copied, that the WordPress URLs do not still reference the staging host, and that the media library entries resolve when logged out. Re-import or copy only the missing media after documenting the affected paths.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The design looks right but a feature is gone

This is expected when a Joomla extension has no direct WordPress counterpart in the import. Return to the functional inventory, select a WordPress implementation for that task, configure it on staging and test the complete user flow. Do not treat a theme change as a replacement for an extension that stored or processed data.

Old links return 404

Find the URL in the redirect map and check whether the rule matches the path that visitors actually request, including any Joomla query-string form found during the crawl. Confirm that the destination exists and that another rule is not intercepting the request. Add a specific 301 for each legitimate legacy address rather than redirecting unrelated pages together.

Counts do not match

Separate intentional exclusions from failed imports. Compare published, unpublished and archived Joomla items independently, then check categories, tags, authors and media rather than relying on a single total. Resolve the difference on staging and repeat the relevant test before the domain switch.

When a manual export is the better choice

A direct plugin import is attractive for a conventional Joomla database, but manual work is justified when custom tables, unusual content fields or bespoke extensions contain the site’s essential data. Export the Joomla article, category and user tables through phpMyAdmin as SQL or CSV, document each source field, and define its WordPress destination before loading anything. For a highly customised installation, guides describe generating a WXR XML file from the database so WordPress can ingest posts and taxonomy relationships; media and extension records still need their own handling.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Manual migration offers control over post types, taxonomy names, authors and cleanup, but it also removes the safety of a prebuilt mapping. Keep the source database unchanged, test with a small sample, validate character encoding and relationships, and only then process the full export. A hybrid approach is possible: use the plugin for standard articles and media, then write a separate transformation for custom data that the importer does not understand.

Operational checklist

  • Full Joomla database and files backup verified.
  • Staging WordPress installation protected from indexing.
  • Importer compatibility checked against the current WordPress.org listing.
  • Joomla URL crawl and Search Console landing-page list saved.
  • Permalink structure selected and exceptions mapped.
  • Content, media, authors, metadata and users compared.
  • Theme, menus, forms, galleries and extensions rebuilt and tested.
  • Internal links checked for old Joomla paths and staging URLs.
  • 301 rules tested for high-value and representative legacy URLs.
  • Production DNS cutover plan, final backup and rollback copy ready.
  • New sitemap submitted after the domain serves WordPress.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.