Community operator moving stacked archive boxes of printed forum pages toward a clean laptop on a slate desk

Most “should we migrate the old forum” threads start from a screenshot. Someone saw Discourse Latest, or a XenForo 2.3 style variation, or a Flarum composer, and they ask the internet whether it is time. The internet answers with a feature matrix. Feature matrices do not pay for ten years of viewtopic.php?t= redirects. They do not retrain the two volunteer moderators who still think in “forums and usergroups.” They do not resurrect a credits plugin, a gallery, or a classifieds board that has no equivalent on the other side.

This is not the XenForo stay-or-leave framework. That article assumes you already run XenForo and asks whether that product still matches the board. This one assumes you run something old — phpBB, vBulletin, MyBB, an IPS forum you stopped paying for, a XenForo 1.x you never finished upgrading, a board whose last style update was a 2014 Christmas header — and asks whether you should move it to any modern platform. The XenForo versus Discourse matrix and the category essay are still worth reading. They will not decide this for you.

The only honest unit of decision is operations: what Google and your members have bookmarked, who can still admin the site after the cutover, which member-visible features die, whether the audience still wants a board index, and what it costs to stay on a stack nobody will touch. Everything else is taste.

The decision is five filters, not a vibe

Write five lines on paper before you open another comparison tab.

  1. URL equity — how much of the business lives on old thread URLs?
  2. Staff retraining — who moderates tomorrow, in which mental model?
  3. Feature graveyard — what member-visible thing has no destination equivalent?
  4. Audience age — do people still open a room, or do they already search and scroll?
  5. Cost of not moving — security, hiring, host lock-in, and the next volunteer who refuses the ACP.

If four of the five say stay, you stay and you modernize in place: upgrade the version you are on, flatten the tree, fix mail, write a founding calendar if you never had one. If four say move, you name a destination and you fund a pilot. If you are 3–2, you do not cut over this quarter. Migrations that start from a 3–2 feeling are how you spend a year repairing permalinks on a site nobody posts in.

A sixth filter, used only as a veto: are you actually angry at the software, or at a neglected board? Dead onboarding, a 90-forum tree nobody mapped, debug left on, and a style that still loads a webfont from 2012 are not platform bugs. Migrating a neglected phpBB to a neglected Discourse gives you a neglected Discourse. The member 30-day plan is still human work on every product.

1. URL equity

This filter is about permalinks and findability, not about whether the destination “has better SEO.” Both XenForo and Discourse can rank. Both can tank a decade of inbound links in a week. phpBB and vBulletin boards that have been up since 2008 often are a long-tail search property, whether anyone on staff still believes in forums.

Typical old patterns:

  • phpBB: viewtopic.php?t=, viewforum.php?f=, sometimes rewritten /forum/topic-title-t123.html
  • vBulletin: showthread.php?t=, /threads/title.123/, sometimes a second rewrite already in .htaccess
  • MyBB: showthread.php?tid=, /thread-123.html
  • Older XenForo without friendly URLs: /index.php?threads/title.12345/

Those strings live in emails, Discord pins, Google, screenshots, Wikipedia citations, and member bookmarks. A migration that changes the pattern without a funded 301 map is not a modernization. It is a deletion with extra steps.

Questions that decide this filter:

  • How much of your traffic is Google landing on thread URLs versus the homepage?
  • Have those URLs already been rewritten once? A second rewrite is how you lose the long tail.
  • Are you planning to keep the domain? Same domain + new software = redirect project. New domain + new software = you are starting a site. Be honest.
  • Does the destination have a documented way to emit redirects from an import log, or are you writing that map yourself?

Into XenForo. Official XenForo importers are a separate add-on from the customer area. At the time of writing the 2.3 manuals, listed sources include XenForo 2.x, vBulletin 3.6–5.3, IPS 4.x, phpBB 3.2–3.3, SMF 2.0, MyBB 1.8, and Discourse 3.x. You start at Tools → Import data. The add-on writes an import_log table so redirect scripts can 301 old source URLs to new XenForo content. vBulletin even has a dedicated XenForo Redirects product. Retain content IDs is allowed only on an empty XenForo (no threads, no posts). phpBB 3.1 and 3.0 are not on that list — upgrade phpBB on a copy first, or stop. The phpBB → XenForo runbook owns the step screen.

Into Discourse. The direction is a Discourse-side Ruby import, not a XenForo (or phpBB) official export. Discourse’s import-script family can ingest common old boards; the stock xenforo.rb path is documented on Meta and in the Discourse repo, and the same shape exists for other legacy sources. Treat that as a project: run on a staging droplet, take a Discourse backup, restore to clean prod. Stock scripts flatten deep trees, skip a lot of add-on data, and often leave passwords in a “reset on first login or send lost-password” state. Do not announce “use your old password” until you have tested an imported account on staging. Permalinks become /t/slug/id. You will need a 301 sheet from viewtopic.php?t= (or /threads/title.id/) to those paths. That sheet is not free.

Stay if inbound thread URLs are a material part of the business and you do not have a funded redirect map. Migrate if you are already changing domains, or the board is so small that permalinks are not an asset, or you are moving into XenForo and will run the official importer plus redirect scripts. Do not migrate because a consultant said “Discourse is better for SEO.” Ask them to show the redirect sheet. The XenForo SEO article is an afternoon of hygiene if you are arriving on XenForo, not a reason to throw the old URLs away.

2. Staff retraining

Software is operated by people. A perfect product with nobody who can restore it is a weekend outage.

Name the humans:

  • Who has admin and 2FA on that account?
  • Who can restore the current box at 02:00?
  • Who answers flags in the first hour?
  • Who still understands the current permission model well enough not to lock Registered out of the main room?

If those people think in boards, usergroups, and phpMyAdmin, a move to Discourse is a people project. Trust levels, category security, “there is no last-post column,” and ./launcher rebuild app are not a Saturday. Budget weeks of parallel moderation. The first-month Discourse failure modes exist because new admins keep walking into the same doors.

If those people have left, and the remaining operator is a company IT person who already runs Docker and would rather pay discourse.org than own PHP-FPM, migrating can reduce bus factor. Official Discourse hosted exists so that “who patches Redis” is not your problem. XenForo is a license you put on a host — including XenForo Cloud if you want someone else to own PHP — but it is still a traditional forum ACP.

If the remaining operator is “the founder on a laptop,” do not pick the stack they have never installed. Match the operator you actually have at 02:00, not the operator you wish you would hire.

Staff skill also includes moderation culture. phpBB’s forum-ACL mental model does not map 1:1 to XenForo’s Never / Yes / No plus node Inherit, and it does not map to Discourse’s hierarchical groups plus category security. A veteran who can spot a sockpuppet in the old report queue will still need a month to trust the new review queue. Some communities cannot give TL3-shaped regulars a view of other customers’ tickets. That is a permissions design, not a vibe.

Stay if the people who can restore and moderate already speak the current product, and you are not hiring a new stack. Migrate if the old-product people are gone, and the people who remain are better at the destination — including hosted Discourse if you want zero servers. Do not migrate to “modernize staff.” Train them, or replace a process. Software will not make a silent moderator speak.

3. Feature graveyard

This is the filter that should have ended half the migrations you have watched.

List every member-visible feature that is not a stock thread. For each one, write one line: what dies if we leave this software tomorrow? Be cruel.

Typical graveyard items on old boards:

  • A gallery or attachment-heavy “show your setup” culture that is really a media library
  • Resource / download / file databases
  • Credits, points, shops, donor ranks that gate private rooms
  • Server listings, whitelist applications, character sheets, faction forums
  • Classifieds, reputation systems that are not “likes”
  • Custom BBCode that staff still use in stickies
  • Deep private hierarchies (staff children, regional chapters, game factions)

Then mark each line replaceable in the destination’s core, replaceable with a named plugin you have actually clicked, or not replaceable without a rewrite.

XenForo core already covers more than phpBB veterans remember: nodes and private forums, permissions, widgets, custom user and thread fields, user upgrades, notices, trophies and promotions. Official add-ons exist for Media Gallery, Resource Manager, and Enhanced Search. A “we need the old mods” story that is actually four core features plus one real add-on is a stay or an arrive-on-XenForo.

A “we need the old mods” story that is a credits economy, a whitelist application, a server directory, and two unmaintained style hacks is also a stay on whatever currently hosts that stack — because the other product does not have it. You would be migrating off your product. The server listing and whitelist patterns exist on XenForo because that is where those communities live. Discourse will not grow them for you.

Lock-in that should make you consider leaving:

  • The author of the load-bearing modification is gone, the code is unmaintained, and the next PHP version will fatal.
  • You have so many template edits that every upgrade is a merge festival.
  • You are using the forum as a CMS, a shop, and a file library, and you are gluing it together. That is the IPS question, not the Discourse question.

Lock-in that should not make you leave:

  • You dislike the default style. A child style, or a XenForo 2.3 variation, or a Discourse theme component, is cheaper than a platform change.
  • An extension you do not use has a scary review. Uninstall it.
  • The ACP looks dated. Members do not live in the ACP.

Stock Discourse import honesty, because people skip it: the stock xenforo.rb path (and the same family of Discourse-side scripts for other sources) brings users, categories/forums, posts, private messages, and likes/reactions-as-likes. It flattens depth beyond two levels into tags. It does not owe you page nodes, resource managers, media galleries, custom thread fields, most add-on tables, or prefixes unless you map them. Enhanced community scripts exist; label them community, not core. Official XenForo importers are more complete into XenForo, and still will not convert a phpBB style into a 2.3 style.

Stay if the load-bearing features are core, official, or maintained add-ons you can name on the destination — or if they exist only on the source and you are not willing to kill them. Migrate if the load-bearing features are dead code and the destination has a living equivalent you have actually clicked. Do not migrate because you are tired of counting modifications. Count whether they still work.

4. Audience age

Size is not “we have 80,000 registered accounts.” Size is last-month actives, posts per day, and how people find a conversation.

Tree navigators still say “I’ll post it in Help Desk → Billing.” They open a room the way they open a folder. Traditional software — phpBB, vBulletin, MyBB, XenForo — is speaking their language. Moving them to Latest plus tags is how you spend six months answering “where did my forum go.”

Stream navigators already ignore your 60-forum index. They search. They use What’s New. They live in Discord and only visit the board when Google sent them. They are Discourse-shaped already, even if they are doing it inside phpBB’s search box.

Audience age is a proxy, not a rule. A 2004 racing forum full of people who still want a last-post column is not a Discourse community because the calendar says 2026. A 2024 company support room full of people who grew up in Slack is not a phpBB community because the founder likes board indexes.

Do this interview, n=5, before you pick a product:

  1. How did you find the last thread you replied to?
  2. If you wanted to ask a billing question, what would you click?
  3. What would make you angry if it disappeared tomorrow?

If four say “I search” or “I use What’s New,” your tree is cheaper to flatten than to migrate. If four say “I go to Xbox → EU → LFG,” do not sell them tags. The structure article is the in-place project: broad rooms plus prefixes (or tags), not a 12-level tree, not a platform change.

Stay if the members still open a specific board the way they open a folder, and the product they are on can still be upgraded. Migrate if the members already ignore the tree and you are maintaining it for ghosts — and the destination’s navigation matches how they already behave. Do not migrate because registered-user count looks impressive in an ad. Count last-month actives. Count how they navigate.

5. The cost of not moving

The usual cost article is the three-year TCO comparison. Read it for stickers. This filter is the other invoice: what you pay if you stay on a board nobody will touch.

Typical stay-costs people skip:

  • The next PHP version that fatals an unmaintained modification.
  • The host that still sells “unlimited” shared PHP and will not give you a modern TLS stack.
  • The volunteer who will moderate but will not log into phpBB 3.0’s ACP.
  • The security hole you have not patched because the upgrade also breaks the style.
  • The hire who will take a XenForo or Discourse job and will not take a vBulletin 4 job.
  • The Google property you are slowly losing because the pages are slow, not because the URLs are old.

Typical migrate-costs people skip:

  • Two months of “where did my post go.”
  • The custom field that did not map.
  • The private forum that became a public category.
  • The volunteer who quit rather than learn a new queue.
  • The redirect sheet you did not budget.

Stay if the stay-costs are a weekend of upgrades and a style, and the people still exist. Migrate if you cannot hire or retain anyone who will touch the current ACP, or the next security hole has no patch, or the host is the product and the host is dying. Do not migrate to save a $40 add-on. Do not stay because the license is “already paid” if the stack is a second unpaid salary.

Money, spoken as operations rather than as a pricing-page screenshot, lives in the TCO piece. XenForo’s public 2026 purchase page and Discourse’s public 2026 pricing grid are both ex-VAT / USD figures that change. Re-check the live pages. Do not use this article as an invoice.

Where you can actually go

If you cannot name the destination, you are not ready. “Away from phpBB” is not a plan.

Destination When it is the honest landing How you get there
XenForo self-hosted or Cloud You want a maintained traditional forum: nodes, groups, widgets, a last-post column Official Importers add-on if the source is listed; phpBB runbook if that is you
Discourse hosted You want Latest + tags + trust levels and you want to fire the sysadmin role Discourse-side import on staging; official hosted can restore from a backup; data is yours
Discourse Docker Same product shape, you already speak Linux, you will own ./launcher rebuild app Official install is Docker; recommended 2 GB+ RAM; not a cPanel upload
Invision Community You need the suite (blogs, files, commerce, a single ACP) Different article: IPS or XenForo
Stay, upgrade, flatten The product shape is still right and the pain is neglect Version upgrade + structure + onboarding
Archive + Discord The community is over and you are pretending it is not A static archive plus a chat room is a migration too. It is kinder than a two-year rebuild nobody will post in

Flarum and NodeBB exist. They are the right landing for a new small community with a PHP or Node shop that wants that product shape. They are a weak landing for a 15-year phpBB with 200,000 posts, because official importer coverage is thinner and you would be stacking unofficial hops. Do not pick them to feel modern. Pick them when the community is small enough that a hop is cheap.

phpBB itself can be a modern-enough stay: it is still GPLv2, still shipping (3.3.17 was the stable cited in June 2026), still runs on cheap PHP. “Old” is not the same as “unmaintained.” An upgraded phpBB 3.3 with a short tree and working mail is more modern than a half-imported Discourse with no SMTP.

Pilot versus big-bang

Big-bang is: freeze the old board on Friday, import overnight, flip DNS, announce Monday. It is the right shape only when the board is small, the import has been rehearsed on a copy, the redirect sheet is installed, and staff will be in the queue all week.

Pilot is: stand up the destination empty, use it for one real job (staff meta, or a new product’s support) for two weeks, then import a slice on a throwaway, then decide. It is the right shape for every 3–2 score and for every board whose feature graveyard is longer than a page.

Do this in order. Stop when the answer is obvious.

  1. Write the five filters with real names and real numbers. If you cannot, you are venting, not deciding.
  2. Name the destination. If you cannot, stay this quarter.
  3. Member interview, n=5. Navigation first. Features second.
  4. Pilot the destination empty. Do not import yet. If staff hate the empty version, they will hate the imported version.
  5. Import a slice on a throwaway. Look at what dropped: attachments, groups, private forums, custom fields, passwords. For XenForo destinations, official hygiene: backup the XF database and data/ and internal_data/ first; close Board active; never expect the source to be modified; do not Retain content IDs unless the XF is empty of threads and posts; merge users on email unless you have a reason not to; finish the import so caches rebuild. Both databases local — official speed advice. For Discourse destinations, import on staging, never first on live prod.
  6. Redirect budget. Count indexed thread URLs. If the number scares you, that is the point.
  7. Staff comms. Tell veterans what will die. Tell them the freeze window. A surprise cutover is how you lose the two people who still greet new members.
  8. Go / no-go with a date. Migrations without a freeze window become a second live site that never cuts over.

If the test import is messy, the production import will be the same mess with an audience.

Three boards, scored in ink

Use a 1–5 scale per filter (1 = stay is obvious, 5 = move is obvious). A 5 requires a named destination. Average them. Do not add bonus points for screenshots.

Board A — 14-year phpBB 3.3 hobby, 4,000 last-month actives, 80 forums, Google traffic on viewtopic.php, two volunteer mods who have never used Docker, a gallery that is the reason people visit.

Filter Score Why
URL equity 1 Thread permalinks are the marketing
Staff skills 1 Mods speak forums and ACLs; nobody wants launcher
Feature graveyard 2 Gallery is load-bearing; XenForo Media Gallery exists if they arrive on XF, Discourse does not replace it for free
Audience 2 Tree is still how people navigate
Cost of staying 2 phpBB 3.3 still patches; the pain is the tree, not the engine
Average 1.6 Stay, or arrive on XenForo. Flatten ghost forums. Do not go to Discourse.

If Board A is tired of phpBB’s ACP and wants a maintained traditional forum, the honest move is the official phpBB 3.2–3.3 importer into XenForo, plus redirect scripts, plus Media Gallery if the gallery is real. That is a platform change that keeps the category. It is not a modernization-by-screenshot.

Board B — company vBulletin nobody has upgraded, 300 actives, 12 forums nobody uses, PHP guy left, legal wants a vendor SLA, no gaming extras, rebrand already changing the domain.

Filter Score Why
URL equity 3 New domain already planned; old URLs can 301 once
Staff skills 5 Remaining IT will buy hosted, not restore a vB box
Feature graveyard 4 Almost no extras
Audience 5 People already live in “what’s new,” not in rooms
Cost of staying 5 Unmaintained vB is the security invoice
Average 4.4 Move to Discourse hosted. Pilot empty for two weeks. Import a slice.

Board C — MyBB game community, 1,200 actives, whitelist, server list, 40 faction forums, Discord already does chat, founder still posts as Admin.

Filter Score Why
URL equity 2 Some Google, mostly Discord pins
Staff skills 2 Mods speak rooms; they will not retrain onto tags this season
Feature graveyard 5 Whitelist + listings are the product
Audience 1 Faction rooms are how they play
Cost of staying 3 MyBB 1.8 is listed as an XF import source if they want a maintained tree
Average 2.6 Do not go to Discourse. Stay on MyBB and flatten, or arrive on XenForo for the listing/whitelist patterns.

If your scores look like 3, 3, 3, 3, 3, you are not deciding. You are hoping the internet will decide. Stay this quarter and run the empty pilot.

When staying is the brave call

Stay is not inertia when you can write the sentence: the product shape matches the community, the people can operate it, and the pain is a project inside the current stack.

Typical stay projects that are not migrations:

  • Upgrade to a supported version on a copy, then production. phpBB 3.3, XenForo 2.3, a current MyBB 1.8 — pick the one you are actually on.
  • Flatten the tree. Archive ghost rooms. Broad forums plus prefixes beat 80 empty children. That is a structure ticket.
  • Fix mail. SPF, DKIM, one useful welcome. Members who never get the confirm email are not a platform problem.
  • Write a launch or relaunch calendar. New members do not churn because the software is phpBB.
  • Stop posting casual jokes as the root Admin account. XenForo community practice is blunt on this: the Admin handle is for announcements; humans use an unbadged personal profile. That advice survives every platform.

If you stay, say it out loud to staff so the next screenshot of another product does not reopen the meeting.

When migrating is the brave call

Migrate when you can write the sentence: the product shape is wrong, the destination is named, the filters are funded, and a person owns the cutover.

Typical honest migrations:

  • phpBB 3.2–3.3 / vBulletin / MyBB 1.8 / SMF / IPS / Discourse 3.x → XenForo, because you want a maintained forum-first product and the official importer lists your source. You are not leaving the traditional category. You are arriving in a version of it someone still sells.
  • Anything neglected → Discourse hosted, because you want trust levels, topic+tag IA, and no PHP box, and you have accepted the feature graveyard.
  • Anything neglected → IPS, because you need the suite.
  • Anything → nothing. A static archive plus a Discord is a migration too.

Do not migrate as punishment for a bad vendor week. Do not migrate because a developer wants to learn Rails. Do not migrate the 15-year hobby forum two months before the founder’s wedding.

What this framework will not do

It will not give you a numeric “if score > 12, leave.” Communities are not credit scores. It will not reprint the XenForo stay/migrate add-on lock-in sheet — that sheet is for people who already run XenForo. It will not walk the phpBB importer step screen. It will not claim that forums are dead.

It will also not tell you that any current product is forever. Products end. When the one you picked stops shipping, the same five filters apply, and “stay” becomes “plan the landing.” We are not there for the maintained options in 2026. Do not role-play the apocalypse to justify a move you already wanted.

Takeaways

  • Decide with URL equity, staff retraining, feature graveyard, audience navigation, and the cost of not moving. The feature matrix is a different article.
  • “Modern” is a destination you can name. XenForo, Discourse hosted, Discourse Docker, IPS, or stay-and-upgrade. “Away from phpBB” is not a destination.
  • phpBB 3.2–3.3, vBulletin, MyBB 1.8, SMF, IPS, and Discourse 3.x are sources XenForo officially lists. Discourse ingests old boards from the other direction, as a project. Direction matters.
  • Permalinks are an asset. A second rewrite without a funded map is a deletion.
  • Operators beat aesthetics. A Docker-fluent team can own Discourse. A PHP-forum team should not be forced to.
  • Load-bearing galleries, listings, credits, and faction trees do not become tags because you wish they would.
  • Test with a written filter sheet, five member interviews, an empty pilot, and a slice import. Then pick a date.

If you cannot name what you are moving to, you are staying. That is a complete answer. Write it down and go flatten the forum list.