When SAM Magazine (saminfo.com) came to us with over 16,000 articles on Joomla 4.4.10 and a mandate to migrate to a modern WordPress block theme, we had to build a reliable playbook from scratch. This guide distills everything we learned — from database mapping to Full Site Editing configuration — so you can approach your own Joomla 4 to WordPress block theme migration with confidence.
Why Migrate from Joomla 4 to a WordPress Block Theme?
Joomla 4 is a capable CMS, but the gap between its template ecosystem and WordPress’s modern block theme infrastructure has widened significantly. WordPress’s Full Site Editing (FSE) and block themes represent a paradigm shift in how content and design are managed — and for content-heavy sites like SAM Magazine, the editorial workflow improvements alone justify the migration effort.
- Editorial velocity: Gutenberg’s block editor gives writers and editors a far more intuitive interface than Joomla’s article editor
- Design consistency: Block themes enforce global styles via
theme.json, preventing ad-hoc CSS proliferation - Plugin ecosystem: WordPress’s 60,000+ plugins dwarf Joomla’s extension directory for every integration need
- Full Site Editing: Headers, footers, archive templates, and single post templates are all editable in the block editor — no PHP template file required
- SEO tooling: Yoast SEO, Rank Math, and similar tools are WordPress-native and far more mature than Joomla equivalents
Understanding WordPress Block Themes Before You Migrate
Block themes differ fundamentally from classic WordPress themes. Before starting your Joomla 4 to WordPress block theme migration, your team needs to understand the new mental model.
What Makes a Block Theme Different
A block theme replaces PHP template files with HTML template files composed entirely of block markup. Instead of header.php, you have templates/parts/header.html containing block markup like <!-- wp:site-title /-->. Every aspect of the front-end is a block.
Key structural differences:
- theme.json: Defines global typography, colors, spacing, and layout constraints. This replaces the patchwork of
add_theme_support()calls in classic themes - Block template parts: Header, footer, sidebar — these are now composable block patterns saved in
/parts/ - Site Editor: Accessible from Appearance → Editor, this is where non-developers can modify templates without touching code
- Global Styles: Design tokens in
theme.jsoncascade through all blocks, maintaining visual consistency across 16,000+ articles automatically
The Ollie WP Block Theme
For the SAM Magazine migration, we selected the Ollie WP block theme as the foundation. Ollie is a full-featured, professionally designed block theme that provides excellent defaults for editorial and magazine-style sites. It ships with well-structured theme.json configuration, multiple template variants for archives and single posts, and clean block patterns you can extend.
Choosing Ollie meant we could focus engineering effort on content migration and custom patterns rather than rebuilding a theme from scratch. For most Joomla-to-WordPress migrations with a magazine or editorial focus, a quality starter block theme is the right foundation.
Pre-Migration Planning: What to Audit First
Rushing a Joomla 4 migration without a structured audit is how you lose content, break URLs, and create SEO nightmares. Our SAM Magazine work began with a thorough pre-migration assessment covering content inventory, URL structure, custom fields, and media assets.
Content Inventory
- Article count: Export a full count by category, author, and publish status from Joomla’s database (
jos_contenttable) - Custom field usage: Joomla’s custom fields (
jos_fields_values) need mapping to WordPress meta or ACF fields - Media assets: Joomla stores media in
/images/— catalog all referenced media paths for migration - Categories and tags: Joomla sections/categories map to WordPress categories; tags map directly
- Authors: Multi-author sites need user account planning before migration begins
URL Structure Analysis
For a site with 16,000+ indexed articles, preserving URL structure is critical for SEO. Audit your Joomla SEF URLs and map them to WordPress permalink structure before running any migration tool. Decide early: will you match Joomla’s URL structure exactly, or will you accept a redirect layer?
SAM Magazine used category-based URLs in Joomla (e.g., /category/article-slug). We matched this in WordPress using a /%category%/%postname%/ permalink structure, eliminating the need for per-article 301 redirects and protecting years of accumulated link equity.
The Technical Migration Process: Step by Step
Step 1: Database Export from Joomla 4
Export a full MySQL dump from your Joomla database. The core tables you’ll work with during migration:
jos_content— articles (maps towp_posts)jos_categories— categories (maps towp_terms)jos_tags/jos_contentitem_tag_map— tags and relationshipsjos_users— authors (maps towp_users)jos_fields_values— custom fields (maps towp_postmeta)jos_assets— access control (needed for mapping public vs restricted content)
Step 2: Choose Your Migration Method
There are three viable approaches to Joomla 4 to WordPress migration, each with different tradeoffs:
- FG Joomla to WordPress plugin: Good for small-to-medium sites. Connects directly to your Joomla database and imports via WordPress admin. Can struggle with very large article counts and custom field complexity.
- WP All Import with custom Joomla XML export: More control over field mapping. Requires exporting Joomla content to XML first, then importing to WordPress in batches. Handles larger volumes better than direct plugins.
- Custom database migration script: The approach we use for complex migrations like SAM Magazine. Write PHP scripts that query Joomla tables directly and insert into WordPress using
wp_insert_post(). Full control, full auditability, fully resumable on failure.
For 16,000+ articles with custom fields and complex category hierarchies, the custom script approach is the right investment. It takes longer to build but eliminates the “black box” failure modes of migration plugins.
Step 3: Batch Processing for Scale
Migrating 16,000 articles in a single script run will exhaust PHP memory limits and cause timeouts. Batch processing is mandatory at this scale. Process articles in chunks of 500, flush WordPress’s object cache between batches, and log every migrated article ID to a mapping table for later reference during internal link rewriting.
Run migration scripts via WP-CLI (wp eval-file migration.php) rather than via browser to avoid server timeout constraints. Set define('WP_IMPORTING', true) at the top of your migration script to suppress hooks and caching during import — this significantly speeds up bulk inserts.
Step 4: Media Migration Strategy
Joomla stores media in /images/. WordPress uses a year/month upload directory structure. You have two practical options:
- Copy files to a stable path: Move all Joomla media to
/wp-content/uploads/joomla-legacy/and do a search-replace on article content. Fast, but doesn’t integrate with WordPress Media Library. - Import into WordPress Media Library: Use
media_sideload_image()orwp media importvia WP-CLI to properly register images as attachments. Slower but gives full Media Library integration, proper attachment metadata, and responsive image support.
For SAM Magazine, we took a hybrid approach: bulk copy legacy media to a stable path for historical articles, and import new media properly going forward. This balances migration speed against long-term media management quality.
Configuring the Block Theme Post-Migration
theme.json Configuration
After migration, your block theme’s theme.json needs to match your existing brand system. Key areas to configure:
- Typography: Define font families, sizes, and weights. Block themes support custom fonts via
settings.typography.fontFamilies - Color palette: Map your brand colors to theme palette slugs (
settings.color.palette) so they’re available in every block’s color picker - Spacing scale: Define spacing presets (
settings.spacing.spacingSizes) for consistent padding and margin across all blocks - Layout constraints: Set content width and wide width (
settings.layout.contentSizeandwideSize) to control the reading experience
Editorial Templates for Magazine-Style Content
Magazine-style sites typically need several custom templates beyond the Ollie WP defaults:
- Single article template: Include author bio block, related articles, social sharing
- Category archive template: Hero area with category description, article grid with featured images
- Tag archive template: Similar to category but with distinct styling treatment
- Search results template: Optimized for editorial search patterns and article discovery
With Ollie WP, these templates are customizable in the Site Editor (Appearance → Editor) without touching PHP files — a significant productivity gain over Joomla template development, where even minor layout changes required PHP template file edits.
Common Challenges and How to Solve Them
Joomla Shortcodes in Content
Joomla articles often contain Joomla-specific shortcodes (e.g., {loadposition}, {module}). These render as literal text in WordPress. Build a content transformation step in your migration script that identifies and either removes, transforms, or flags these for manual review before import.
HTML Quirks from Joomla’s Editor
Joomla’s WYSIWYG editor (typically TinyMCE) sometimes produces malformed HTML that Joomla renders fine but WordPress’s block validator flags. Run migrated content through an HTML5 linter in your migration script and strip inline styles that conflict with your block theme’s global styles.
Character Encoding Issues
Joomla databases, especially older installations, sometimes use latin1 character encoding. WordPress expects utf8mb4. Convert your Joomla database character set before migration to prevent corrupted characters in article titles, content bodies, and author names — particularly important for international content like SAM Magazine’s multilingual articles.
Category Hierarchy Mapping
Joomla’s section/category two-level hierarchy maps to WordPress’s unlimited category hierarchy, but URL behavior differs. Map your Joomla category structure carefully and test the resulting permalink structure before migrating content. Mis-mapped categories are expensive to fix after 16,000 articles have been imported.
Post-Migration SEO Checklist
With 16,000+ indexed pages at stake, SEO remediation is not optional. Work through this checklist before and after launch:
- 301 redirects: Any URLs that changed need server-level or plugin-managed redirects before the cutover
- XML sitemap: Generate and submit a fresh sitemap to Google Search Console immediately after migration
- Canonical tags: Verify canonical URLs are set correctly — Yoast SEO handles this automatically once configured
- Internal link audit: Migrated content often contains internal links pointing to Joomla URLs. Crawl with Screaming Frog or Ahrefs to identify broken internal links
- Meta descriptions: Map Joomla’s article intro text to WordPress SEO plugin description fields during migration
- Structured data: Verify Article schema is rendering correctly on all migrated content types
- Core Web Vitals: Block themes typically improve LCP scores due to cleaner HTML output — benchmark before and after launch
Realistic Timeline for a Large-Scale Migration
Based on our active SAM Magazine project — migrating 16,000+ articles from Joomla 4.4.10 to WordPress with the Ollie block theme — here’s a realistic timeline breakdown:
- Discovery and audit: 1–2 weeks for sites with 10,000+ articles
- WordPress environment setup and block theme configuration: 1 week
- Migration script development and testing: 2–3 weeks (varies by custom field complexity)
- Full migration execution and QA: 1 week
- SEO remediation and redirect mapping: 1–2 weeks
- Launch and post-launch monitoring: 1 week
For SAM Magazine, we’re executing this migration in parallel with the live Joomla site, with a hard cutover planned once the WordPress site passes editorial QA across a representative sample of article types. This parallel-run approach adds time but eliminates launch-day risk for a high-traffic publication with decades of institutional content.
Ready to Migrate Your Joomla Site to WordPress?
We’ve done it at scale — 16,000+ articles migrated from Joomla 4 to a WordPress block theme. Let’s talk about your project and what it would take to do it right.