Inventory the Joomla source before choosing an import path
Record the Joomla version, database and file backup, API or Bridge access, table prefix, enabled components, plugins, modules, templates, languages, URL settings, menus, access levels, and public routes. Count records by type, state, category, language, and owner.
A generic importer or database copy is not complete migration evidence. Actual scope depends on accessible source data and the prepared destination.
Separate core records from extension-owned data
Inventory core articles, users, categories, tags, fields, contacts, menus, menu items, languages, metadata, and media separately from K2, EasyBlog, Zoo, ecommerce, directory, membership, form, comment, and custom-component tables.
K2 has a separate stable Migranetix connector. It is not a fallback that turns every K2 item into a core Joomla article.
Prepare the WordPress destination model first
Approve post types, taxonomies, fields, authorship, roles, media, menus, multilingual storage, SEO fields, status translation, permalink rules, and staging access. Configure required WordPress plugins before loading records that depend on them.
Use the mapping worksheet to document source keys, transformations, defaults, exclusions, and validation.
Map article values and taxonomy by stable identity
Map article IDs, title, introtext, fulltext, aliases, dates, authors, state, access, featured flags, language, metadata, fields, and relationships. Create category parents before children and resolve tags by source identity rather than label alone.
Do not assume Joomla access levels or workflow states have universal WordPress equivalents.
Handle users, media, menus, and URLs deliberately
Map approved authors and profiles without promising portable password hashes. Discover media through structured values and rendered HTML, verify files, upload them, and rewrite references.
Build WordPress menus after destination objects and URLs exist. Joomla aliases alone do not define public routes because menu context, Itemid, categories, languages, routers, and extensions can change the path.
Run a representative dry run and reconcile evidence
Load complex samples into staging: long articles, nested categories, fields, guest authors, restricted items, multiple languages, media-heavy pages, comments, and menu routes. Compare source, extracted, transformed, loaded, skipped, and failed totals.
Validate rendering, relationships, assets, metadata, URLs, redirects, and exceptions with the validation guide.
Move from approved rules to full and delta runs
Freeze mappings after the dry run, retain backups and source access, execute the full load, reconcile results, then apply an approved delta before cutover. Keep an exception register and rollback conditions.
Continue with the migration scope, Joomla vs WordPress comparison, core import guide, K2 guide, redirect and SEO guide, and cost guide. Create an account to analyze the current Joomla to WordPress direction.