By Administrator on November 18, 2023

How to migrate a Joomla! site

 The process in summary is:

  1. To be on the safe site first backup, the source site.
  2. Install a new Joomla on a subdirectory (e.g. new_site) using a new database. You will be able to access the site at
  3. Install any language pack other than English, that you might use.
  4. Install SP Transfer on the new site.
  5. Navigate to SP Transfer and press button "Options".
  6. Fill in the source database credentials to connect to the source database.
  7. Backup the new database, so if something goes wrong you avoid the whole installation thing.
  8. Navigate to SP Transfer -> Core Transfer view press button "Transfer All".
  9. If for any reason there is a timeout, just try again and the process will continue from where it was interrupted.
  10. Navigate to SP Transfer -> History Log to check if there was any error.

All core Joomla data now should be transferred. If needed, change the modules positions as per your new template, and copy the images folder from the source to replace the one in the new site.

To migrate the extensions, you must do the follow for each one of them:

  1. From the database view, choose and transfer all its tables.
  2. Install the extension on the destination site.
  3. If necessary to transfer any media of the extensions, usually that would be in the media folder.

After you finish testing the new site, and you wish to go live, the first thing you should do, is again to back up everything.

If you did not keep a freeze period for everything, then you should try transferring the items again. SP Transfer keeps a history log, therefore any new items in the old source site will be copied to the new site.

Take the new site live do the follow from the control panel file manager:

  1. make sure that files configuration.php both in folders /home/public_html and /home/public_html/new having access 644, and not 444
  2. select all files and folders of the old source site from folder /home/public_html and move them to a backup directory. The reason that you should move, and not copy, is because unlike copy, the move is just the process of some milliseconds. If you choose to copy, and then delete, then the process might take a long time, depending on your sites size.
  3. Choose everything from /home/public_html/new and move them in /home/public_html
  4. That's It!!!

And do not forget that if you need any assistance, you may search our site's documentation, or contact us.


If there is duplicate id, whether to transfer the item with new id, replace existing items or not transfer at all.

The process of transfer is done in two steps. The first step is the actual process of copy and the second is to link parents in case of items with new ids.

The component keep history of what is already transferred. This is necessary to keep track in case you have a php timeout.

It is strongly recommended to backup your database before proceed with the transfer, just to be on the safe side.

History Log

After you complete with the transfer and the finalize it is recommended to delete this log in order to save space in your database. Do not delete it before you finish with finalize.

Files Transfer View

On the left side table you may view all source site files and folders. You can browse within the folders and choose any file, or folder you wish to transfer.

On the right side table you may view all of the current destination files and folders. You can browse to any folder you wish. The folder showed here is the destination folder. For example if you wish to transfer some files/folder from the source site images folder, to the destination site folder images, then first you must browse in the images folder, then choose the files/folders you wish to transfer and hit button transfer.

In case you choose a folder to copy, and is not present on the destination site, then the folder will be created and transfer all it's sub-folders and files.

Remember that if you choose in general options to avoid overwriting existing files, then that will be the case!


After you install for the first time make sure you activate all three related plugins, if they are not already activated. 

Updating to the latest release

The extension can be updated with two different methods: installing the new version on top of the old one, or using the integrated Remote Update system of Joomla! extensions manager.

Updating directly

This is the failsafe approach, but the least convenient. Download the latest release from our site and save the ZIP file to your hard disk. Log in to your site's backend, click on Joomla! Extensions Manager. Use the Browse... button to locate the ZIP file you downloaded, then click on Upload and Install. All Joomla! versions since 1.5.5 are smart enough to understand that you're doing an upgrade instead of installation and adjust the process accordingly.

Do NOT uninstall the current version of the extension before updating it! Uninstalling will remove all of your data!

Using Remote Update

First insert from extension's options your download id. You can get your download id at Your Download ID.

Then go to Joomla! extensions manager -> update tab and click button Find Updates. If a new release is appeared then you can just update it from there.

Something not working right after the update?

Sometimes Joomla! "forgets" to copy all updated files. This is something that we have seen a few times. In this case, simply follow the instructions in the Updating Directly section above. This will force Joomla! to retry updating the component, copying the missing files and everything will work again.


You can uninstall the component just like any other Joomla! component. In your site's back-end, just go to Extensions Manager, click on Uninstall. In the Filter area type SP and click on Search. Several entries appear. Select the entry where the Type is Package. Do not select the other entries; they are removed automatically. Now click on Uninstall. This will completely remove extension including all related data.



Same IDs Handling: Choose how to treat items with ids that already exist in the destination database.

  1. Transfer items and save with new IDs, or
  2. Do not transfer item, or
  3. Replace existing items.

Existing Files Replace: Choose whether to replace or not existing files.

Note: The option fore replace existing items is not valid for users.

Database Connection

Those are the database credentials of the source database. Those credentials can be found in your source site configuration.php file.

Database Type: Represents the connection type between PHP and a MySQL database. If you have MySQL 4.1.13+ and PHP 5.0.7+, then choose MySQLi, else MySQL.

Host: In case both your databases are on the same host then write localhost. In case of remote transfer here you have to write the remote source host name, or IP. In case you have trouble identify what is this, you should contact your host provider.

Database Name: The source database name.

User Name: The user name of the source database. This is not the Joomla admin user.

Password: Password of the user to the source database.

Database Tables Prefix: The source database tables prefix name. Something like xxxxx_

FTP Connection

Those are the FTP credentials of the source site. They are necessary to enable ability to transfer files, or folder.

FTP Host: In case both your sites are on the same host then write localhost. In case of remote transfer here you have to write the remote source host name, or IP. In case you have trouble identify what is this, you should contact your host provider.

FTP Port: Usually this is 21. 

FTP User Name: The FTP user name of the source host.

Password: Password of the FTP user to the source site.

FTP Root: That could be / or any other sub-directory that is present on the source site.

Database Transfer View

It works similarly with the core transfer with below differences.

  1. It does not replace existing records,
  2. It does not create records with new ids, if already existed,

It just copy the records if they are not present. Also if the table is not present in the destination table it create it with the correct prefix.

Core Joomla! Data Transfer View

You have the option to transfer all items of what you choose, or selected items based on their ids. You may choose individual ids, or range, or a combination of both. For example:


Will transfer items with ids: 3 and 68, and range of id's between 10 to 56, and range 100 to 145. If you leave empty the ids field then all items will be transferred.

Also you may press button Clear to clean corresponding field, or Choose to visually choose individual items. The choose button will open a well known window depended on the type of items to choose with search and filtering capabilities. See below of example of choosing articles. Similar dialogues exist for all items.


After the transfer of items you just choose all and leave the ids fields empty and press button finalize. This step will fix the links in case you chose to bring items with new ids.

More articles on Joomla! Extensions

More articles on Joomla! Extensions

No comments yet.

Add a comment
Ctrl+Enter to add comment