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
Antihost offers managed WordPress hosting with free migration, one-click staging and a 14-day free trial.
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.
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.
#1 Best Overall
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.
The Tool Desk
Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →| 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.
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.
Recommended Free Tools
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.
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.
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.
Rank #3
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.
Do these 3 things before closing this tab:
1Fix the driver behind crashes, sound loss and screen glitches2Clear out junk files and repair common Windows errors3Scan for outdated or missing drivers - takes under a minuteReview 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.
Quick wins for a faster PC:
Scan for outdated or missing drivers - takes under a minuteDriver Scan →Repair Windows errors before they cause bigger problemsFix Now →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.
Rank #4
- 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.Switch the domain and submit the new sitemap
- Put Joomla into a controlled maintenance state or freeze editorial changes so the two systems do not diverge during cutover.
- Take a final database and files backup and record the exact time of the last Joomla update.
- Confirm that WordPress has the production domain configured for both the site address and WordPress address.
- Apply the approved redirect rules and remove staging-only access restrictions from the production copy.
- 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.
- Open the live home page, several old Joomla URLs and several new WordPress URLs from outside your administrator session.
- 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.
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.
PC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11Outdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchManual 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.
Quick Recap
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.

