Forum Migration

Moving a community to XenForo from any source platform

Whether a forum can be migrated is a question about its source schema, not its size. Some sources are covered by the target platform's own importer and some are not, and that single fact decides whether this is a bounded project or a development one.

The problem

Every source platform presents a different migration problem

A community's history lives in a schema that was designed for a different piece of software, and every platform has made different decisions about how threads, permissions, messages and attachments are stored. Some of those decisions map cleanly onto the target; others have no equivalent at all. The migration is therefore not one process applied to different inputs — it is a different project per source, and establishing which one you have is the first piece of work.

  • The community is on a platform that is no longer actively developed
  • The source version is uncertain, or older than anyone currently involved remembers
  • Customisations exist that were made by people who have since left
  • Attachments or private messages may not convert cleanly and this is unverified
  • A previous migration attempt was abandoned part-way
  • Search visibility through the move is commercially important
  • The community has a decade or more of history that must survive intact
  • Nobody can state which source version the installation is actually running
Who this is for

The people who usually bring us this problem

A community owner who has decided to move

The current platform is not where the community should be, and you need the move scoped honestly rather than quoted optimistically.

An operator whose platform has reached end of life

A support date has made the decision for you, and you need to know what moving actually requires before committing.

Someone who has inherited a community

You have taken on a forum with a long history and no documentation, and you need to establish what is there before deciding anything.

What it costs

What this costs while it goes unfixed

Engineering faults are rarely confined to the engineering layer. These are the commercial consequences we see most often.

The source version decides the shape of the project

A source within the target platform's importer coverage follows a known, bounded path. One outside it needs the conversion built for that schema. Assuming the wrong one produces an estimate that is wrong in the direction that hurts.

A community's history is the asset, and migration is where it is at risk

Threads, private messages, attachments and member accounts are what the community is. Losing a category of them, or leaving them reachable but unlinked, degrades the thing the migration existed to protect.

Search visibility does not survive an unrehearsed URL change

Every discussion address changes. Without a complete redirect strategy the community's accumulated authority points at addresses that return nothing, and the decline is gradual enough to be attributed to something else.

Members judge the migration, not the destination

A new interface is forgiven quickly. A lost post, a broken private message thread or a fortnight of disruption is not. Migration quality is assessed by the community, in the first week, against the platform they remember.

What we do about it

Capabilities

Each of these is work we carry out, not an area we advise on.

Source audit and version identification

Establishing which platform and which version, from the installation rather than from what anyone believes. Extensions, direct modifications and undocumented customisations are catalogued, because they determine what can be converted and what has to be decided.

Importer compatibility assessment

Determining plainly whether the source falls inside the target platform's own importer coverage. That answer is given in writing before anything is scoped, because it is the difference between a supported import and custom conversion work.

Custom importer development

Where the source falls outside coverage, building the conversion for that schema — including the legacy structures a general-purpose importer cannot know about. This is genuinely different work from running a supported import, and it is priced and sequenced as such.

Content and identity mapping

A written decision for each source construct: forums to nodes, threads to threads, groups to permission sets, private messages, subscriptions, polls, attachments — and an explicit outcome for the structures with no direct equivalent.

Permission and membership reconciliation

Accounts, primary and secondary group memberships, moderator assignments and custom permission sets mapped onto the target's model. Years of permission configuration are the least visible thing to get wrong and the most disruptive when it is.

Redirect strategy

A complete inventory of indexable URLs and a rule for each, activated with the new platform rather than after it. The gap between the two is where search visibility is lost.

Rehearsal and reconciliation by counting

Repeated runs against a copy of the real database, with counts compared per content type between source and destination. A migration without reconciliation has an unknown error rate, which is not a defensible position to take a community into.

Cutover and post-migration verification

A rehearsed single cutover with a tested rollback and a defined trigger, followed by discussion, messaging, attachments and permissions exercised with real data — plus search signals monitored after the move.

How we work

Engineering methodology

The sequence is deliberate. The order is usually what determines whether the work holds or has to be repeated.

  1. Answer the compatibility question first

    Before scope, before timeline, before anything is promised. Every downstream estimate depends on whether this is a supported import or custom development, and a plan built on the wrong assumption is worse than no plan.

  2. Inventory the source including what has diverged

    Extensions and undocumented modifications change what can be converted and how. Anything the source has drifted into has to be understood before its content can be mapped, because the mapping depends on what produced it.

  3. Give every construct an explicit outcome

    The failures that surface late are the decisions nobody made — a reputation system with no equivalent, message semantics that differ, an attachment model that lives on the filesystem rather than in the database. Each gets a written outcome: converted, approximated with the limits stated, or excluded with the consequence made clear.

  4. Rehearse until the output is boring

    The migration runs against a copy of the production database repeatedly. Rehearsal is where the parts that do not convert are found, and finding them there costs nothing but time.

  5. Count, and explain every variance

    Source against destination, per content type. Totals, spot checks, and each discrepancy either resolved or explicitly accounted for. Counting is what turns 'it looks right' into a statement that can be checked.

  6. Cut over once, then stay for the settling period

    The final delta, the DNS change and the redirect activation are one rehearsed sequence. Afterwards, the engagement continues through the weeks in which real members find the edges that testing did not.

Deliverables

What an engagement produces

Documentation is a deliverable, not an afterthought. On most of these engagements a large part of the value is a defect report precise enough for another team to act on.

Assessment

  • Source platform and version, established from the installation
  • Written importer compatibility position
  • Whether this is a supported import or custom development
  • Extension and customisation inventory
  • Mapping document with an outcome for every construct
  • Scope, sequence and risk register

Migration

  • Converted content, accounts, permissions and messages
  • Custom conversion where the source falls outside importer coverage
  • Attachment and media handling including filesystem-stored assets
  • Complete URL inventory with redirect rules
  • Reconciliation counts per content type

Cutover and after

  • Rehearsed cutover sequence with named owners and a tested rollback
  • Redirects activated with the new platform, not after it
  • Discussion, messaging, attachments and permissions verified with real data
  • Search signals monitored after the move
  • Support through the first weeks of live community use
Under the hood

Architecture and technology

What determines the migration path

  • Whether the source version falls inside the target's importer coverage
  • Which source extensions and customisations produced content
  • Whether attachments live in the database or on the filesystem
  • Whether the source has additional applications holding content
  • How much the installation has diverged from a stock one
  • Whether the source version can be established with certainty at all

What every forum migration has to account for

  • Threads, posts and their relationships
  • Member accounts and authentication
  • Groups, permissions and moderator assignments
  • Private messages and their participants
  • Attachments, avatars and stored media
  • Polls, subscriptions and feature-specific structures
  • Canonical URL structure and the redirect map that replaces it
Related work

Where we have done this

Engagements where this capability was the substance of the work rather than a line item.

Online communities

Spain's largest forum

Since 2019, Soludome has managed infrastructure and platform operations for one of Spain's largest online communities. The work covers server and performance optimisation, CDN architecture, load balancing and site security under sustained traffic.

Since 2019continuous engagement
Online communities

Arrse.co.uk

An established community platform had accumulated three separate problems that compounded each other: page loads that had degraded with growth, search visibility that had not kept pace with the community's authority, and a security posture that had not been revisited as the platform's profile grew. The engagement addressed all three concurrently.

4%increase in organic clicks
Adjacent problems

If this is not quite your problem

These overlap at the edges. Sending you to the right page is more useful than having you work it out.

Your source is vBulletin

A source with its own importer coverage position and its own version constraints.

vBulletin to XenForo migration

Your source is Invision Community or IP.Board

One page covers Invision, IPS and IP.Board; the version position differs.

Invision to XenForo migration

Your source is bespoke or unsupported

A conversion built for a schema nothing covers off the shelf.

Custom forum importers

Search visibility is the main risk

Redirects, canonicals and indexation recovery as a project in itself.

Website migrations
Questions

Frequently asked

Can our forum be migrated?

Almost always, and the honest qualification is that the answer depends on the source. Sources inside the target platform's importer coverage follow a known path. Sources outside it need the conversion built specifically, which is development work rather than configuration. Both are achievable; they are different projects with different scopes, and establishing which one yours is comes before we quote anything.

Do you support every source platform natively?

No, and we would rather say that plainly than imply otherwise. The target platform's own importer covers a defined set of sources and versions; anything outside that set is custom work. If your source is one we have built for before we will say so, and if it is one we have not we will scope it as the development project it is rather than discovering that part-way through.

What happens to our search rankings?

They are at risk in any platform move, because every URL changes. The mitigation is completeness: a full inventory of existing addresses, a redirect rule for each, and canonical signals that agree with the new structure. Done properly a migration can hold visibility and sometimes improve it, because the new platform is faster and structurally cleaner. Done without a redirect strategy the loss is real and arrives slowly enough to be misattributed.

How long is the forum offline?

A short window at cutover, with everything rehearsed in advance against a copy of the live database. The rehearsal runs happen while the forum keeps serving, and the bulk of the data moves before the window; the window handles what changed since. We will not promise zero downtime — the cutover is a real event, and the honest measure of its quality is preparation and a tested rollback.

Can we migrate without losing private messages and attachments?

Yes, if they are planned for, and they are treated as first-class content rather than as an afterthought — they are frequently the largest part of the database and the part most likely to be mishandled. Attachments may live on the filesystem rather than in the database, which means an import that reads only the database will silently omit them. Both are explicitly in scope and both are reconciled by counting before cutover.

Bring us the problem you have not been able to fix

Describe what is happening rather than what you think the cause is. If we are not the right people for it, we will say so.