Skip to main content
ContentSync

Publish once.
Every Joomla site in sync.

ContentSync copies articles from one Joomla site to another, on a schedule. Images come along, every article lands in the category you choose, and a dry run shows what will change before anything does.
Free edition included. PRO adds filters, mappings, custom fields and documents.
Joomla 5 and 6 · PHP 8.1+ · Runs in the Joomla Task Scheduler

Latest version:

Write an article once. Let your other sites follow.

On a schedule

A task in the Joomla Task Scheduler

Nothing on the source

It only needs an API token

One direction

The source site stays the original

Stop copying articles by hand.

Copy the text, upload the images again, fix the paths, pick the category. And once more when the article changes. ContentSync does that work for you, every time the task runs.
An article on the source site and the same article on the target site, connected by the Task Scheduler

Your articles arrive on their own.

Add the task on the site that should receive the articles, enter the address of the source site and an API token, and give it a schedule. New articles are created, changed articles are updated, and an article that has not changed since the last run is skipped.

Images come along.

Images in the article text and the intro and full article images are downloaded into the same folder structure on the target site. An image that is already there is not downloaded again. In PRO the documents, audio and video your articles link to come along as well, with a maximum file size you set.
The settings Mirror Images, Media Folders, Mirror Documents and Media and Maximum File Size, with two log lines of downloaded files
The Dry Run switch and a task log that lists what a run would download, create and update

See it before it happens.

Switch on Dry Run and the task goes through a complete run without writing to the database or downloading a file. The log shows which articles would be created, updated or deleted and which files would be fetched. The switch turns itself off after one run.
PRO version only

Sync only what you need.

Choose which articles the source hands over: by category, tag, language, publication state or featured status. The free edition filters on state and on one category; PRO takes several categories and adds the other filters.
The article filters: source category IDs, source tag IDs, language, state and featured
The category mapping, author mapping and access level mapping, and the choice for unmapped access levels
PRO version only

Everything lands in the right place.

Category, user and view level IDs are different on every site. Map them, and an article keeps its category, its author and its audience. The view levels Joomla installs need no mapping, and for an article with a level of your own that is not mapped you decide what happens.
PRO version only

Custom fields come along.

The custom field values of every article are copied to the field with the same name on the target site. A field mapping connects fields that are named differently, and the image or file of a media field is mirrored with it.
The Sync Custom Fields switch, a field mapping and three custom fields with their values
Also in PRO

For sites that keep changing.

A mirror is only useful while it stays one. These keep the target site in step with the source.
Removed articles

Gone on the source. Handled on the target.

When an article no longer exists on the source site, the copy is moved to the trash, unpublished or deleted for good. Your choice, per task.
Incremental sync

Ask only for what changed.

Only request the articles that changed since the last successful run. On a large site that saves most of the requests. Needs Joomla 6.2 or newer on the source site.
Rewrite relative links

Links that still work.

Relative links in an article point back to the source site, so they do not break on a site with other menu items. Links to mirrored files stay local.
Schema.org data

Structured data included.

The Schema.org data of an article is copied with it. Needs Joomla 6.2 or newer on the source site.
Joomla 5 or Joomla 6

What you get depends on the source site.

ContentSync runs on Joomla 5 and on Joomla 6. What it can copy is decided by the Joomla version of the source site, because that site decides what its API hands over. The site that receives the articles can be either version.
Source site on Joomla 5

Intro and full text become one text.

Joomla 5 hands over the intro and the full text as a single text, without the Read More break. The whole article lands in the intro text on the target site, and the full text stays empty. Articles, images, documents, custom fields, mappings and the filters on category, tag, language, state and featured all work.
Source site on Joomla 6.2 or newer

Intro and full text stay separate.

Joomla 6.2 hands over the intro text and the full text separately, so the Read More break is where you put it. It also makes these possible: the filter on workflow stage, incremental sync, and Schema.org data. A source on an older Joomla 6 works like a Joomla 5 source.
A Joomla 5 source sends one text that lands in the intro text; a Joomla 6.2 source sends intro text and full text separately

Planning to split your articles with Read More on the target site? Then the source site needs Joomla 6.2 or newer.

In both editions

Built for a source you do not fully control.

An article comes from another site, written by other people. ContentSync treats it that way. None of this is a PRO feature.

Article HTML is filtered

Scripting is removed from the article text before it is stored. On by default.

Files are checked

Only known image and document types are written, only inside the folders you allow, and the file type has to match its extension.

Members-only stays members-only

An article with a view level that is not mapped is never published to everyone. It goes to the most restrictive level, or is skipped.
How it works

One task. Three steps.

You set it up on the site that receives the articles. The source site keeps working as it does today.

Before you start

Joomla 5 or 6 on both sites · PHP 8.1+ on the target site · The Web Services API reachable on the source site · An API token of a user who may use the API, a Super User by default · The Task Scheduler running on the target site.
01

Create an API token on the source site

Open a user on the source site and copy the token from the Joomla API Token tab. There is nothing to install there.
02

Add the task on the target site

Install ContentSync, go to System, Scheduled Tasks and add the task "Content Sync: Synchronise Articles". Enter the address of the source site and the token, and choose the category the articles go into.
03

Do a dry run, then give it a schedule

Switch on Dry Run and run the task once to see what it would do. Happy with the log? Set the schedule and let the Task Scheduler take over.
Good to know

A few questions. Clear answers.

Check how ContentSync fits the sites you manage.
Does it sync in both directions?
No. Articles go one way, from the source site to the site the plugin is installed on. A change you make to a synced article on the target site is overwritten the next time that article changes on the source.
Do I have to install something on the source site?
No. ContentSync reads the source site through the Joomla Web Services API, which is part of Joomla. You only create an API token there.
My source site runs Joomla 5. What is different?
Joomla 5 hands over the intro and full text as one text, so the whole article lands in the intro text and the Read More break is lost. The filter on workflow stage, incremental sync and Schema.org data need Joomla 6.2 or newer on the source. Everything else works the same.
Can the two sites run different Joomla versions?
Yes. The site that receives the articles needs Joomla 5 or 6 and PHP 8.1 or newer. What can be copied depends on the version of the source site.
What happens when I delete an article on the source site?
In the free edition the copy stays on the target site. In PRO you choose per task: move it to the trash, unpublish it or delete it permanently.
Are custom fields created for me?
No. Create the fields on the target site first, with the same name and type as on the source. A field without a counterpart is skipped and named in the log. Supported types are text, textarea, editor, URL, integer, number, calendar, color, list, radio, checkboxes, media and media file.
Can I sync from more than one source site?
Yes. Add the task again for every source site, or for every category you want to send somewhere else. Each task has its own settings and its own schedule.
What if I start with Free and upgrade later?
Install PRO over the free edition. Your task keeps its settings, and the PRO options are added to the same form.
Is it safe to sync from a site I do not manage myself?
ContentSync assumes you might. Scripting is filtered out of the article text, files are only written inside the folders you allow and only when their type matches their extension, and an article with an unknown view level is never published to everyone.

Write it once. Let the task do the rest.

Install the free edition, point it at your source site and start with a dry run.