Joomla 6 Compatibility Check: Scan Every Extension on Your Site for Free

Joomla 6 compatibility check: free extension scan showing Will not run, Needs review and Ready statuses

Written by

in

Updated 14 October 2026 · By Abhilash Sahoo, Infyways

To check whether your Joomla extensions are compatible with Joomla 6, install the free Migration Scanner from JoomlaX on a staging copy of your site, click Scan site, and read the Dashboard. It inventories every enabled third-party component, module, plugin and template, scans their PHP and XML files, and labels each extension Will not run, Needs review or Ready. For every problem it shows the file, the line number and the replacement code. The scan is read-only and never runs extension code.

In short: Migration Scanner is a free Joomla administrator component for Joomla 4.4, 5 and 6 (PHP 8.1+). It answers one question before you upgrade: which installed extensions will break on my target Joomla version, and where exactly?

Why do you need a Joomla 6 compatibility check?

Most Joomla upgrades do not fail because of Joomla core. They fail because of a third-party extension or template that still uses old Joomla 3-era code, such as JFactory, JText, JRequest or JHtml behaviours.

Joomla keeps many of these old names alive through its backward compatibility plugin (plg_behaviour_compat on Joomla 4/5, plg_behaviour_compat6 on Joomla 6, where the Classes Aliases option is off by default). Everything compat6 covers is scheduled for removal in Joomla 7. For the exact settings per version, see our Joomla backward compatibility plugin guide; for what changed in the release itself, see what’s new in Joomla 6.

So an extension that “works” today may only be working because a compatibility layer is propping it up. A compatibility check tells you which extensions are genuinely ready, which are leaning on the plugin, and which will not run at all.

What is the JoomlaX Migration Scanner?

Migration Scanner is a free, read-only Joomla administrator component that finds legacy PHP APIs and incomplete manifests before you move a site to Joomla 6. It is built and maintained by Infyways under the JoomlaX brand.

Details
Price Free (no checkout)
Installs on Joomla 4.4, 5.x and 6.x
PHP 8.1 or later
Database MySQL or MariaDB
What it reads PHP and XML files of enabled, non-core components, modules, plugins and templates
What it skips Joomla core, disabled extensions, JavaScript, CSS and SQL files (this release)
Changes your files? No. It does not execute extension PHP or run extension SQL
Target version Auto (Joomla 6) by default, or choose 4 or 5
Output Dashboard plan, extension list, per-extension findings, JSON export, printable site report
Version 1.0.0, released 12 October 2026

You can try it first on the live demo.

Who is it for?

  • Site owners planning a Joomla 3, 4 or 5 to Joomla 6 upgrade who want to know what will break before they start.
  • Agencies that need a printable, shareable report of every blocker on a client site.
  • Developers who maintain custom or abandoned extensions and need a file-and-line list of what to rewrite.

What does Migration Scanner detect?

The scanner token-scans PHP and checks XML manifests for a namespace. Each finding is grouped by API, given a severity, and tagged with the compatibility layer it depends on.

Status for each extension

Status Meaning
Will not run Uses APIs the compatibility plugin cannot save. Must be rewritten for the target version
Needs review Still depends on compat6 aliases or similar layers
Ready Nothing blocking for the chosen target version

Finding types (chips)

  • Needs aliases: old class names such as JText or JFactory that only work while Classes Aliases are enabled in compat6.
  • Needs legacy classes: code that depends on legacy classes the compatibility plugin still ships.
  • Needs asset stubs: references to removed assets that the plugin stubs out.
  • Will not run: calls the compatibility plugin cannot rescue.

Severity

Findings are ranked Critical, High, Medium and Low, so you fix what will stop the site first.

Grouped, not duplicated

If JText appears 48 times in one component, you see one group (“JText · Needs compat6 aliases, 48 times”) instead of 48 separate lines. You fix a pattern, not a pile of duplicates. Expand a group to see why it matched and what to put instead.

Migration Scanner findings for one component: a Will not run badge, 176 findings split by severity (41 Critical, 129 High, 6 Medium), filter chips for Needs aliases, Needs legacy classes, Needs asset stubs and Will not run, and grouped APIs such as JText and JFactory

For the replacement pattern behind each API, see our Joomla Migration Reference. For example, JFactory and application changes, JRequest and Input, HTML helpers (JHtml), JTable and database and deprecated JavaScript (MooTools/jQuery).

How do I install Migration Scanner?

  1. Download MigrationScanner_UNZIP.zip free from the Migration Scanner page.
  2. Unzip it on your computer. Inside you will find pkg_jxmscanner_*.zip (the file you install) and ReadMe.txt.
  3. In the Joomla administrator, go to System > Install > Extensions and upload pkg_jxmscanner_*.zip.
  4. Open Components > Migration Scanner to confirm the Dashboard loads.
  5. Clear the cache: System > Maintenance > Clear Cache.

You need a Super User or administrator account. You do not need jQuery, a CLI or any extra plugins. Updates use the same steps, and previous scan results stay in the database.

Tip: Do not install the outer _UNZIP file in Joomla. Install the inner pkg_jxmscanner_*.zip.

Still on Joomla 3? How to use the Migration Scanner

The Migration Scanner extension needs Joomla 4.4 or later, so it cannot be installed on a Joomla 3 site. You have two options: scan each extension or template ZIP now with our free online Joomla Migration Scanner, or upgrade a staging copy to Joomla 4.4 and install the extension there. Joomla’s official path is 3.10 → 4.4 → 5.4 → 6; you cannot skip Joomla 4.

Option A: scan ZIP packages online (no upgrade needed)

  1. Collect the installation ZIPs of your third-party extensions and template (from the developer, or zip the folders from your site).
  2. Drop each ZIP into the online Joomla Migration Scanner. It reads Joomla 3 code, so it works before you upgrade anything.
  3. Use the results to decide what to update, replace or rewrite. This is the best route for custom or abandoned extensions that have no newer version.

Option B: upgrade a staging copy, then run the extension

  1. Clone the live site to staging. The live site stays on Joomla 3 until the copy works.
  2. On the copy, update to the latest Joomla 3.10.
  3. Migrate the copy to Joomla 4.4 with the Behaviour – Backward Compatibility plugin enabled.
  4. Install Migration Scanner on the copy, scan, and fix what it flags.
  5. Continue the copy to Joomla 5.4 and then 6, rescanning at each step, before you touch production.
Online ZIP scanner Staging copy + extension
What it checks One extension or template package at a time Every enabled third-party extension on the site
What you need The ZIP files only A staging copy upgraded to Joomla 4.4+
Best for Joomla 3 sites, custom or abandoned code, checks before upgrading A full, site-wide plan once the copy runs Joomla 4.4 or later

For every step of the version jumps, follow our Joomla 3 to 6 upgrade guide. If you would rather have it done for you, see our Joomla upgrade service.

How do I run a Joomla compatibility scan?

Run it on a staging copy of your site. The scan is read-only, but a large site can take several minutes and is easier to review away from production.

  1. Open Components > Migration Scanner.
  2. Read the host banner. It tells you whether plg_behaviour_compat or plg_behaviour_compat6 is enabled, and whether Classes Aliases, Legacy Classes and Removed asset stubs are on.
  3. (Optional) Open Configuration and set the Target Joomla version and Files per step.
  4. Click Scan site and wait until the live status pill shows Idle.
  5. Use the Dashboard plan, then open an extension marked Will not run.
Migration Scanner Dashboard in the Joomla administrator with Scan site, Pause, Export JSON and Site report buttons, a green banner showing plg_behaviour_compat is enabled with Classes Aliases, Legacy Classes and Removed asset stubs set to Yes, and a completed scan of 5,775 of 5,775 files

Configuration: target version and files per step

Migration Scanner Configuration screen with Target Joomla version set to Auto, which uses Joomla 6 as the migration target, and Files per step set to 40
  • Target Joomla version: Auto targets Joomla 6. Pick 4 or 5 if you are staging an upgrade to that version.
  • Files per step: how many files each scan step reads (default shown: 40). Lower it if the scan hits PHP max_execution_time on cheap hosting.
  • Permissions tab: Super Users can set component permissions.

Save, then run a new scan so the counts match the new target.

How do I read the results?

1. Dashboard: the plan

The Dashboard shows four site-wide counts: All extensions, Will not run, Needs review and Ready. Do this first lists the blockers, and Needs work first is a short table of the worst extensions. From the header you can Scan site, Pause, Export JSON and open the Site report.

2. Extensions: the inventory, worst first

Components > Migration Scanner > Extensions ranks every third-party component, module, plugin and template from worst to best. Filter by status or type, search by name or element (for example com_example), and open a row for its findings. Joomla core never appears here.

Migration Scanner Extensions list showing 327 third-party extensions: 4 Will not run, 120 Needs review and 203 Ready, split into 37 components, 95 modules, 193 plugins and 2 templates, with columns for Will not run, Needs compat6 aliases and Findings

3. Findings: file, line and replacement

Open one extension to see All APIs, the alias, legacy and asset-stub layers, and the Will not run items. Each finding names the file path, the line and the replacement. After you edit files, click Scan this extension to re-check just that one; you don’t need to rescan the whole site.

4. Share it

  • Export JSON: a machine-readable export that includes bc_layer, bc_param and removed_in for each finding.
  • Site report: a printable view for agencies, developers and clients.

How do I fix the issues it finds?

Work from the top of the Dashboard plan:

  1. Update first. Check whether the developer has released a Joomla 5/6 version. Updating often clears dozens of findings at once. Rescan afterwards.
  2. Replace abandoned extensions. If the developer has stopped updating the extension and it is marked Will not run, look for a maintained alternative.
  3. Fix “Needs aliases” items. Replace old names with namespaced classes, for example JText with Joomla\CMS\Language\Text and JFactory::getApplication() with Joomla\CMS\Factory::getApplication(). Our migration reference groups show the before/after code for each API.
  4. Rewrite “Will not run” code. These need real changes: namespaced MVC, Web Asset Manager instead of JHtml behaviours, event subscribers, Bootstrap 5 markup in templates. See components and MVC, plugins and events, media and assets and templates and layouts.
  5. Rescan the extension until it shows Ready. Then, on staging, test with the Classes Aliases option off so you know the code no longer leans on compat6.

For the full upgrade sequence (backups, PHP version, pre-update check, staging cutover), follow our Joomla 3 to 6 upgrade guide. If something breaks after the upgrade, see common Joomla upgrade issues and fixes.

Migration Scanner vs Joomla’s pre-update check vs manual checks

Joomla’s own pre-update check (System > Update > Joomla, with the update channel set to the next major version) checks required settings. For a Joomla 5 to 6 update it requires the old compatibility plugin to be disabled and Backward Compatibility 6 to be enabled. Its Extensions list relies on what each developer declares, so treat it as a high-level indicator, not proof that the code works.

Joomla pre-update check Manual check Migration Scanner
Looks at extension code No (relies on developer update data) Only if you read the code yourself Yes: PHP tokens and XML manifests
File and line of each problem No Slow and error-prone Yes, with replacement
Shows reliance on compat6 aliases / legacy classes No Hard to tell Yes, per finding
Covers templates Partly Yes Yes (enabled non-core templates)
Site-wide ranked plan No No Yes, worst first
Shareable report No Your own notes JSON + printable report
Cost Built in Your time Free

They work best together: use Migration Scanner to find the code problems, fix them, then run Joomla’s pre-update check before the actual update.

Whole site or single ZIP: which scanner should I use?

We also run a browser-based Joomla Migration Scanner that checks one package. You drop a single extension or template ZIP into it, and it is useful before you install anything or when you only have the package. The JoomlaX extension scans the installed site: every enabled third-party extension at once, with a Dashboard plan and per-extension rescans. Use the online tool for one package, and the extension for a whole site.

DIY or hire help?

Do it yourself if the scan shows mostly Ready or Needs review extensions that have updates available, and you are comfortable editing PHP on staging.

Get help if you have Will not run extensions that are custom-built or abandoned, a Joomla 3 template, or no developer time. Migration Scanner has a Paid support tab for this. It is optional, and the scanner stays free.

Migration Scanner Paid support screen explaining three steps: scan the site and open the extension that will not run on Joomla 6, send the extension name and target Joomla version, and get a quoted paid rewrite or upgrade
  1. Open Components > Migration Scanner > Paid support, or click Ask for paid support on the Dashboard or an extension report.
  2. Name the extension and your target Joomla version.
  3. Infyways quotes a rewrite. You only pay if you want the fix.

For a full site upgrade, done on staging with your sign-off before production, see our Joomla upgrade service and Joomla extension upgrade.

Troubleshooting

  • Scan never finishes: lower Files per step, check PHP max_execution_time on staging, and start again.
  • Old results showing: the Dashboard uses the newest scan. Run Scan site again after installing or updating extensions.
  • An extension is missing: only enabled third-party extensions are inventoried. Core and disabled items are skipped.
  • JavaScript files not listed: this release reads PHP and XML only.
  • Menu still says Preferences: clear the cache and open Configuration from the component submenu or the cog.

If a result does not match what you see in the files, open a ticket at support.joomlax.com. Include your Joomla and PHP versions, the extension element, and a JSON export or a screenshot of the finding.

Frequently asked questions

How do I check if a Joomla extension is compatible with Joomla 6?

Install the free Migration Scanner on a staging copy, leave the target on Auto (Joomla 6) and click Scan site. Each enabled third-party extension is marked Will not run, Needs review or Ready, with file-and-line findings. Also check the developer’s site for a Joomla 6 release.

Is Migration Scanner free?

Yes. The scanner is free to download and use. Paid support is optional and only applies if you want Infyways to rewrite an extension.

Which Joomla versions does it support?

It installs on Joomla 4.4, 5 and 6 and needs PHP 8.1 or later. You can target Joomla 4, 5 or 6 in Configuration.

Can I use the Migration Scanner on Joomla 3?

Not the extension: it installs on Joomla 4.4 or later. On a Joomla 3 site, scan each extension or template ZIP with our free online Joomla Migration Scanner, or upgrade a staging copy to Joomla 4.4 and install the extension there.

Can I upgrade from Joomla 3 straight to Joomla 6?

No. Joomla’s official path is 3.10 → 4.4 → 5.4 → 6. Each major upgrade requires the latest release of the previous version, so you cannot skip Joomla 4 or 5. Do every step on a staging copy first.

How do I check Joomla 3 extensions for Joomla 6 compatibility?

Upload each extension or template ZIP to the free online Joomla Migration Scanner, which reads Joomla 3 code. For a site-wide check, upgrade a staging copy to Joomla 4.4, install the Migration Scanner extension, and set the target to Joomla 6.

Does it change or break my extensions?

No. The scan is read-only. It does not execute extension PHP or run extension SQL, and it does not need write access to extension files.

Should I run it on a live site?

Run it on a staging copy. It is safe to run, but a large site can take several minutes, and the results are easier to review off production.

What files does it scan?

PHP and XML in enabled, non-core components, modules, plugins and templates. Joomla core, disabled extensions, JavaScript, CSS and SQL files are not scanned in this release.

What does “Needs compat6 aliases” mean?

The extension uses old class names (such as JText or JFactory) that only resolve while the Behaviour – Backward Compatibility 6 plugin has Classes Aliases turned on. It may work today, but compat6 is scheduled for removal in Joomla 7, so the code should be updated.

Download Migration Scanner free

Find out what will break before you upgrade, not after. Download Migration Scanner free from JoomlaX, read the documentation, and run your first Joomla 6 compatibility check on staging today.

If the scan shows work you would rather not do yourself, talk to our Joomla upgrade team.