Joomla 4 stable version is released, and it's time to plan for migrate Joomla 3 to Joomla 4. In this tutorial, we will provide step by step guide to migrate a Joomla 3.x site to Joomla 4.x
Joomla! 4 is the latest major release of Joomla! CMS and this will be the Long Term Support (LTS) version. Joomla 4 brings a huge upgrade to the CMS, amazing new features, raises the minimum supported PHP version to PHP 7.2.5, removes previously deprecated functionality, completely new admin dashboard UI, and many more.
Can I update my website from 3.9.x to Joomla 4 ?
The simple answer here is yes. But you must follow the migration steps to have a smooth migration.
Steps to migrate Joomla 3.x to Joomla 4.x
Joomla 4.x is a completely new CMS and it is not the same as Joomla 3.x. You can not update Joomla 3.x to 4 directly. There is a minimum bridge version Joomla 3.10 that will help to perform the mini migration to Joomla 4 and show a pre-update check of the extensions installed on your site. Whether they are ready for Joomla 4 or not. Let's get started.
Set up a development site:
A development environment is required when you need to apply big updates on a website or you have customizations/overrides that have a chance to be overridden by updates. A backup of the site is always considered the safest option before updating Joomla. So in case your site got broken or some feature of the website is not working, you can restore the site backup.
Let's discuss the steps to Migrate a Joomla 3.x website to 4.0. In this discussion, we will take the latest Joomla 3.9.28 stable version to migrate to Joomla 4.
1. make a full backup for your Joomla 3.x website:
A backup of the website contains complete files and a database of the site. That will help you to restore or move the site to another server/host or restore the same site on the current host. There are multiple options to take a site backup :
1.1 Traditional Method - using Akeeba backup:
The most popular method to take backup of websites is via Akeeba backup extensions.
Akeeba offers a Joomla extension that will take a complete/partial backup of a website based on the configuration in a single file. The file can be further used to restore the complete website. This method is very simple and easy for all types of Joomla website users. Akeeba is a free extension and is available on the Joomla extension directory.
1.2. Another Method
In this method we need to take 2 types of backup separately. Files backup and Database backup. Both backups will be done manually. In the first steps we will take out a backup of all the files and folders from the website root folder so the same files and folder can be restored on another domain/host.
In the 2nd step it is required to take backup of the website database. This can be done via PHPmyadmin access. You can log in to your PHPmyadmin account and export the Database tables in SQL format.
If you are not sure what your website DB name is in PHPmyadmin. You can check the database and table prefix from Joomla administrator Panel > System > Global > configurations > Server Tab.
Important: Put the Joomla website in offline mode when you take website backup via 2nd method.
2. Technical requirements for Joomla 3.x
It is important your site meet the technical requirements for the installed Joomla version and upcoming Joomla version. As we have taken Migration from Joomla 3.9.28 It is important that our site meets the technical requirements. Checkout the latest technical requirements for Joomla 3.x Here
It is suggested to use Recommended PHP values.
|Software||Recommended Software||Minimum||More information|
|Supported Web Servers:|
|Microsoft IIS||10 +||8||http://www.iis.net|
To check out the current values on your installed Joomla website. Login on Joomla admin panel > System > System Information.
The system Information tab will give complete information about the DB, Joomla version, PHP information, and more permission details.
3. Set up your staging Joomla website
In this step we will set up a staging website from the backup. You can create the staging website on your live server as a subdomain or install the site backup of localhost (xampp, wamp, etc). Once the site is restored it is ready to update.
4. Update to Joomla 3.10
Joomla 3.9.10 is still under the Alpha stage since Joomla 4 is not stable. A new stable version will be released for Joomla 3.10 with Joomla 4 stable release. It is recommended not to update your live/product website for Joomla 3.10 or Joomla 4.x.
Update website on Joomla 3.10 only if you will update website for Joomla 4 since it is a mini migration version.
To update Joomla 3.9.x to 3.10 navigate to Components > Joomla updates > options.
Set the update channel to release as Joomla 3.10 is stable now. Click save and close.
Now click on the Check for updates to see the available new version. Since Joomla 3.10 is in the alpha state it will show the same version.
Once the staging website updated for Joomla 3.10 here some checklist need to be performed:
1. Database Schema: Check the latest database schema updated on site. Navigate to the Extension Manager → Database tab. In case it shows the schema is not up to date, click the Fix button.
2. If you have content items like articles, categories, etc in Trash just empty the trash for a smooth migration.
3. Take a full backup of the website again.
5. Pre-Update Checklist
Joomla 3.10 gives a built-in option Pre-Update Check for Joomla 3.10.0. This option will provide complete details of the readiness of the server and extension/template installed on your site.
This test will list out the technical requirements that are required for Joomla 4 and if any extension or template is not ready for Joomla 4. We strongly recommend doing this checkup before updating Joomla 4.x Also if your site has 3rd party extensions or templates do check the compatibility of them with Joomla 4.x.
Navigate to Components > Joomla updates > Check for updates > Pre update check.
The Pre update Tab will list out following options:
- System Requirements
- Extensions Pre-Update Check
As discussed above it is important to set the system requirements as given by Joomla. You can check out the current requirements of your site if you have passed the Pre-check update test or not.
Extensions Pre-Update Check :
This option will list out the extensions that are not ready for compatibility and those which already meet the requirements.
Core Joomla extensions list:
- Categories: Categories used for Joomla content ie : Articles, tags etc
- Articles: Joomla Content items
- Menus: Menu are a set of items used for navigation on a website.
- Modules: core Joomla modules
- Action Logs: audit log of activity done on admin interface
- Banners: Banner component to display banner on website
- Fields: Custom fields for articles, users.
- Content History: Ability to track content(Article version) history
- Contacts: Manage contacts in your Joomla
- Messaging: sends messages to Joomla! users
- Newsfeeds: Add News Feeds from other sites to your Joomla! site
- Redirect: Ability to redirect the URL
- Smart: Search Search Component for Joomla
- Tags: Tags manager
Extension no Longer be part of Joomla 4 (Native Support)
Search (not existing in Joomla 4.x. Joomla 3.x sites can still migrate it.) Joomla 4 will use Smart search, We recommend to use Joomla smart search More information here https://www.joomlart.com/blog/smart-search-joomla-4-a-new-all-in-one-search-component
Weblinks (does not exist in Joomla if your site is still using it it will be migrated
The extensions will be auto ready for Joomla 4 since it comes in the core Joomla package.
3rd Party extensions:
Most of the Joomla sites use 3rd party extensions and templates. It is important to know whether the extension or templates will work on Joomla 4 or not. This Pre-update checkup will help you to check out the compatibility test.
Disable/Remove Extensions :
If the Joomla Pre-update checklist shows the extension is not ready for Joomla. You have to update it to a compatible version or remove/unbpuslish the package.
Navigate to Extension Manager → Manage tab Find and remove the package which is not ready for Joomla 4.
You can remove the complete package as this will also remove the supported plugin and module of the extensions.
This is a very important step. Do not forget to remove the extension that no longer works with Joomla 4. There are also Joomla templates assigned as the default. In case the default template is no longer compatible with Joomla 4, Kindly set another template as default that works with Joomla 4 Protostar and Beez3.
Update your Joomla 3.10 site to Joomla 4.x
Once All extensions are well checked and removed ( those that do not support Joomla 4) It is time to perform the upgrade for Joomla.
Joomla 3.10 to Joomla 4.x Steps :
- Before upgrading as always take a full backup of the website.
- Navigate to System > Global configurations > Server > Error Report > Maximum. Save and close.
- Navigate to Components > Joomla updates > Options
- Set the Upgrade to Joomla Next.
- Click on updates to see Joomla 4 update notification.
- Another options is upload package manually if no update showing
- Download the update package from Joomla official website HERE
- Download the update package for Joomla 4.x
- open Joomla update tab and upload the package
- Joomla will ask you to login for installation confirmation. Login and click install.
- Wait for the upgrade to finish
- Once the update did you will see all new Joomla dashboard
- Go to Updates and clear cache.
- Go to Extensions → Manage → Database and click Fix if any errors show.
- Check out the site frontend and backend pages to see all working fine.
- If all is fine, set the error report to default.
- Take another backup of the website as its all-new site on Joomla 4.x
- Start installing the extensions that are ready for Joomla 4
Joomla 4.x admin dashboard will appear like this:
Move the staging website to Live:
Moving staging site to the website is easy and there are 2 options:
1. Put the staging site as live by assigning the staging website folder to the site domain.
2. Replace the Database and root folder of the site with the live site. We suggest going with option 1 that is easy to use via Cpanel
Why I should upgrade to Joomla 4?
Joomla 4 Security
Running a site with state of the art well-written code helps you stay ahead when it comes to security. With many architecture changes designed to maximize security and keep hackers out, you can be assured that moving to Joomla 4 is a wise choice. The benefits are countless when it comes to ensuring you and your client's data are as well protected as they can be.
Joomla 4 Accessibility
Whatever size your site is, accessibility is a must, and from the start, Joomla 4 delivers best in class accessibility. The layout, contrast, and infrastructure all have accessibility built-in so all your visitors will benefit. We have aimed for W3C Accessibility Guidelines (WCAG) 2.0 (with AA compliance)
Joomla 4 Workflows
Workflows help you to run your site efficiently, ensuring that the jobs that need to get done are done and by the right people. Combined with the many improvements in the media manager, content writers will love the new workflow and media manager.
Joomla 4 Emails
Deliver customized emails that welcome and inform your website's audience effectively! With the new email template system, it's easier to make the emails your site sends be on message and on-brand. Now you can take your site to the next level when communicating with your customers.
Joomla 4 Search
Search is a boost to any site. It allows your visitors to hone in on the areas they are interested in, increasing engagement and improving your site's ranking. So when it comes to search look no further, Joomla 4 smart search has many improvements over the previous Joomla searches and is the best to date.