To migrate from bbPress without losing topics, install the new forum next to bbPress, rehearse the import on a staging copy, compare the counts, then repeat the import on launch day and send every old forum address to its new one with a 301 redirect. Importers carry the content. They do not carry your search rankings, tags, subscriptions or moderator roles, so those are your job. This guide gives the steps, with a check at the end of each one.
Importer details here come from the vendors’ own documentation, read in October 2026. Plugins change often, so confirm each tool’s current behaviour on its own page before you run it on a live site.
In this guide
- What a bbPress migration actually moves
- Whether you should migrate at all
- The pre-migration audit: topics, replies, users, attachments, subscriptions, permalinks
- Which importer to use: Jetonomy, Go2wpForo, or the Asgaros case
- Step by step: backup, staging, rehearsal, real import, launch day
- A verification table you can copy
- Redirects from old forum URLs, and what Google says about them
- Protecting your search traffic
- Telling your members
- Rollback
- Questions people ask
What does a bbPress migration actually move?
A forum migration copies your content from one plugin’s database tables into another plugin’s tables. The content is forums, topics, replies, the authors attached to them, and usually attachments. Everything around the content, such as redirects, subscriptions and settings, is separate work.
That split explains most migration horror stories. People run an importer, see their topics appear, and assume the job is done. Then Google starts reporting 404 errors on the old addresses, members stop getting emails they had asked for, and moderators find they are ordinary members again.
We will use Jetonomy as the main destination in the examples, because its documentation is detailed about this exact move. Wbcom makes Jetonomy and also makes Reign, so treat our preference accordingly. The same shape of plan works for any destination, and the section on other importers covers the alternatives.
Should you migrate at all?
Migrate when something about bbPress is costing you more than the move will. Stay when the forum works, members are content, and search traffic depends on the addresses you have now.
bbPress is a mature plugin. Its plugin page lists more than 100,000 active installations and a recent update in October 2026. It is light and close to WordPress itself. If it does the job, a migration is a risk with no reward.
Real reasons to move include wanting question-and-answer topics with an accepted reply, voting, a moderation queue, or a front end that does not look dated. Our roundup of bbPress alternatives and the comparison of WordPress forum plugins cover the choice of destination. This article starts after you have chosen, so it does not repeat that comparison.
One honest warning, from Reign’s own article on Jetonomy: for an existing bbPress installation with thousands of topics and an active member base, the move may not pay off, because it changes the URL structure and requires redirects. Take that seriously if your forum is large and heavily indexed.
What should you audit before you migrate?
Audit six things: topics and replies, users, attachments, subscriptions, permalinks, and everything bbPress-specific that lives outside the forum itself, such as shortcodes and add-ons. Write the numbers down. You will compare against them after the import.
The table lists each item, where to look, and what usually happens to it. The right-hand column reflects what Jetonomy’s documentation says about its bbPress importer. Another destination may differ, so check its documentation too.
| Audit item | Where to find it | What the Jetonomy importer does |
|---|---|---|
| Forums and sub-forums | bbPress forum list in wp-admin | Forums become spaces. A forum that only groups other forums becomes a category. |
| Topics | bbPress topic list, counts per status | Become posts with title and content kept. Pending, spam and trashed topics are not imported. |
| Replies | bbPress reply list | Become replies. Threaded replies keep their parent. Replies under topics that were not imported are skipped. |
| Users | Users screen, plus a list of top posters | Authors link to existing WordPress accounts by user ID. |
| Attachments and inline images | Uploads folder, plus a sample of topics with files | Registered in the media library. If a file is missing from disk, the import finishes and reports how many could not be recovered. |
| Sticky and closed topics | Topic list filters | Sticky topics become sticky posts. Closed topics stay closed. |
| Private and hidden forums | Forum visibility settings | Stay private or hidden. People who posted in them are added as members. |
| Topic tags | Tag list | Not imported. |
| Subscriptions | Members’ subscription lists | Not imported. Plan to ask members to re-subscribe. |
| Moderator assignments | Users with forum roles | Not imported, except BuddyPress group forums, where group admins and moderators carry over. Assign the rest by hand. |
| Shortcodes and widgets | Pages, widget areas, menus | Not converted. Old shortcodes show as raw text. |
| Add-on data | Active plugins list | Not read. Votes, signatures and similar data from add-ons need custom mapping. |
| Forum URLs | Search Console, server logs, your sitemap | No redirects are created. |
How do you count topics and replies?
Use the counts that bbPress shows in wp-admin, and cross-check with WP-CLI if you have shell access. The command wp post list accepts --post_type, --post_status and --format=count, according to the WP-CLI documentation on developer.wordpress.org. Run it once per content type and status you care about.
Write the figures in a spreadsheet with four columns: item, bbPress count, new forum count, difference. You fill the third column after the rehearsal import. Skipped items (pending, spam, trashed) explain most expected differences, so record those counts too.
How do you audit permalinks?
Export your most visited forum URLs from Search Console and note the pattern of each type: the forum index, a single forum, a topic, a user profile. Open ten real topic addresses and write them down exactly.
You need real addresses for two reasons. First, you will build a redirect map from them. Second, Jetonomy’s own documentation says it serves content under its own addresses beginning with /community/, so the new paths will not match the old ones. Topics will need individual mappings. Forum and profile addresses can often be handled by one pattern rule each, according to Wbcom’s migration article.
To confirm the audit is complete, you should hold a spreadsheet of counts, a list of ten real URLs per address pattern, and a short list of shortcodes, widgets and add-ons, each marked replace or drop.
Which importer should you use?
Use the importer built by the destination plugin’s own developer, and read what it does not carry before you trust it. Three tools matter for this move. They differ in what they cover and how much preview they give you.
| Tool | Imports from | Preview before importing | What the vendor says it does not carry |
|---|---|---|---|
| Jetonomy importer (Wbcom) | bbPress, wpForo, Asgaros Forum. Developers can add sources through a filter. | Dry run for bbPress only, through WP-CLI. wpForo and Asgaros imports have no dry run. | Tags, subscriptions, reputation, moderator assignments, shortcodes, redirects. |
| Go2wpForo (wpForo) | bbPress, Simple:Press, Asgaros, AnsPress, DW Q&A, WP Q&A, phpBB, SMF, MyBB, Joomla Kunena | Its documentation page describes no preview mode. | Private messages, polls and other data beyond the default components. |
| Asgaros Forum | Its plugin page does not mention importing from bbPress or other forum software. | Not applicable. | Check its documentation before planning a move to it. |
What does the Jetonomy importer do?
It reads your bbPress tables directly and creates new Jetonomy records. It never modifies the old tables, according to Jetonomy’s documentation, which also says the new records cannot be automatically undone. That is why the backup step is not optional.
It runs from Jetonomy, then Import, in wp-admin, or from WP-CLI with wp jetonomy import bbpress. The browser route processes records in batches of 500 and needs the tab to stay open, because closing it stops the import. Jetonomy’s documentation recommends WP-CLI for large forums because it avoids browser timeouts. If you have 10,000 or more topics, use it.
Its time estimates for topics and replies combined are 2 to 5 minutes under 10,000 records, 10 to 40 minutes from 10,000 to 100,000, and 1 to 4 hours from 100,000 to 500,000. Treat these as vendor estimates, because your host decides the real speed. Time your own staging run.
The bbPress dry run is the useful preview. wp jetonomy import bbpress --dry-run writes nothing and prints totals in the form “Imported, Skipped, Errors”. It needs shell access to the site, as Jetonomy’s comparison page points out.
What about Go2wpForo and wpForo?
Go2wpForo is wpForo’s own free migration tool, and wpForo is a strong destination if you want the broadest feature set. Its plugin page names Go2wpForo for bringing bbPress and other forums across, and the tool’s documentation page lists the sources in the table above.
The documentation gives a short procedure. Download the Go2wpForo zip that matches your wpForo version, upload and activate it as a plugin, open its admin page, and choose the forum you are migrating from. The documentation says forums, topics, posts, attachments and users migrate, while private messages, polls and other data beyond the default components do not.
One detail matters to members. The page says passwords are preserved when you migrate from WordPress-based forum plugins such as bbPress, because they share WordPress’s hashing, and not preserved from standalone software such as phpBB. For a bbPress move that means nobody should have to reset a password.
For redirects, the page suggests a plugin called Redirect2wpForo, for bbPress only. Read its description before you install it, and test it on staging like everything else. The page does not mention backups, so make your own.
What about Asgaros Forum?
Asgaros is a lightweight forum plugin. Its plugin page lists features such as profiles, notifications, polls, reactions, uploads and moderators, and it does not mention importing from bbPress or any other forum software. If you are leaving bbPress for Asgaros, look for an import path in its own documentation first, or plan a manual move for small forums.
The Asgaros case that does have a documented importer runs the other way. Jetonomy lists Asgaros Forum as an import source. Its documentation says Asgaros forums become spaces, sub-forums become sub-spaces, topics become posts, and replies become flat replies. Sticky topics are pinned, closed topics stay closed, and unapproved topics become pending. Tags, reputation, likes and reactions, moderator assignments and subscriptions are not imported.
How do you migrate from bbPress, step by step?
Follow seven steps in order: back up, build staging, rehearse, rebuild what did not move, run the real import, switch on redirects, and go live. Each step ends with a check. Do not skip a check because the step looked easy.
Step 1: Back up and record your numbers
Back up the database and the uploads folder, and keep the backup somewhere that is not the server. Jetonomy’s documentation says the import “cannot be reversed automatically”, so this backup is your rollback.
To confirm it worked, restore the backup onto a scratch site and load a forum topic. A backup you have never restored is a guess.
Step 2: Build a staging copy
Copy the live site to a staging site with your host’s tool or a migration plugin. Staging must be private, so search engines and members cannot see it. Switch off outgoing email on staging, or point it at a mail catcher, so a test import does not email real members.
Install the same theme and plugins. If your live site runs Reign, install it on staging too, because forum styling depends on the theme. Our article on changing a community theme without losing members covers the same staging habits.
To confirm it worked, log in to staging, open five forum topics, and check that a test email goes nowhere.
Step 3: Rehearse the import
Install the new forum on staging and finish its setup wizard. Keep bbPress active, because Jetonomy reads the old tables directly, though its documentation says you must import before deleting the old plugin, since some plugins remove their data when deleted.
Then use the preview if one exists. For Jetonomy and bbPress:
- Run
wp jetonomy import bbpress --dry-runand read the totals. - Run the real import on staging, from Jetonomy, then Import, or with
wp jetonomy import bbpress. - Watch the progress tracker move through Forums, Topics, Replies, Profiles and Finalize.
- Read the summary, which reports imported, already-imported, skipped and failed items.
If the import stops, the card shows an “Import Interrupted” badge with Resume Import and Start Over. Resuming skips what is already in, according to the documentation.
To confirm it worked, fill in the verification table in the next section. Time the run. That number tells you how long launch day will take.
Step 4: Rebuild what the importer left behind
On staging, assign moderators again (under Jetonomy, then Spaces), replace old shortcodes, set spam rules, and recreate any custom roles against the new plugin’s trust levels. For Jetonomy, the documentation says custom roles and capabilities are not imported and need review.
If spaces return a “page not found” error, go to Jetonomy, then Dashboard, then Quick Actions, and click Flush Rules. The documentation says the bbPress importer flushes permalinks automatically while the wpForo and Asgaros importers do not.
If you moderate heavily, set the rules before launch rather than after. Our community moderation guide and the community guidelines template help here, and a new Q&A space is easier to set up now than later. See how to build a Q&A site with accepted answers for that part.
To confirm it worked, post a test topic and a reply as a new member, then as a moderator, and check that a moderator can act on it.
Step 5: Write and test the redirect map
Build the old-to-new URL list on staging, load it into your redirect tool, and test it. The redirects section below explains the tools and the rules. Do this before launch day, because a missing map costs you traffic.
To confirm it worked, request 20 random old topic URLs and check that each returns a 301 to the right new page.
Step 6: Go live in two passes
Install the new forum on the live site while bbPress keeps running, and do the first import. Members can keep using bbPress meanwhile. Jetonomy’s playbook describes this pattern: import once, keep the old forum live while you set up the new one, then re-run just before cutover.
On launch day, close bbPress to new posts and click Re-Import (or run the CLI command again). The documentation says the importer tracks what it already brought over and adds only new content, and reports how many items were skipped. The wpForo and Asgaros guides say the same about their sources. Even so, compare counts after every re-run.
To confirm it worked, check that the skipped count matches what you imported earlier and that topics posted between the two passes now exist in the new forum.
Step 7: Cut over
Disable the old forum plugin, set the community base URL if the new plugin asks for one, switch on the redirects, update menus and links, and submit the new addresses to Search Console. Keep bbPress’s data in the database for a few weeks as a safety net, which is what Wbcom’s article advises.
To confirm it worked, open an old topic URL in a signed-out private window and check that it lands on the right new page, then sign in as a test member and check that names and avatars show on old posts.
How do you check the results?
Compare counts, then sample content, then test access. Counts alone can pass while a single forum is empty or a private forum has gone public, so run all three kinds of check.
| Check | How to do it | Pass if |
|---|---|---|
| Forums to spaces | Compare the bbPress forum list with the new spaces list | Every forum has a space, and sub-forums sit under their parents |
| Topic count | New forum total against your recorded bbPress count | Difference equals the pending, spam and trashed topics you excluded |
| Reply count | New forum total against your recorded count | Difference is explained by skipped replies, with the skipped number from the import summary |
| Ten busiest topics | Open each beside the live bbPress version | Text, images, reply order and author names match |
| Threaded replies | Open a topic with nested replies | Threading is preserved |
| Attachments | Open five topics that had files | Images show inline and other files download. Any “could not be recovered” count is re-attached by hand |
| Sticky and closed topics | Check one of each | Sticky topics are pinned and closed topics stay closed |
| Private and hidden forums | Visit as a guest, as a non-member, and as a member | Only the right people can see them |
| Authors and profiles | Open a topic by a known member | The right name and avatar appear, and post counts look sensible |
| Moderators | Log in as a former moderator | Moderation tools work after you reassign the role |
| Shortcodes | Search pages and widgets for the old shortcodes | No raw shortcode text on any public page |
| Redirects | Request 20 old URLs, including the forum index and a profile | Each returns a 301 and the right page loads |
| Trigger a notification on the new forum | It arrives, with correct links |
How do you redirect old forum URLs?
Map every old address to its new address and serve a permanent 301 redirect from the server. Importers do not create these. Jetonomy’s documentation says so directly: the importer does not set up redirects from your old forum addresses.
A 301 is the HTTP status code for “moved permanently”. It tells browsers and search engines that the old address has gone for good and that the new address is the one to keep. Our article on 301 versus 302 redirects explains the difference between permanent and temporary ones.
What does Google say about redirects?
Google’s documentation on redirects recommends a permanent server-side redirect whenever possible, and says the 301 and 308 status codes signal that a page has permanently moved. Googlebot follows permanent redirects, and indexing treats the target as the canonical page.
Its guide on moving a site with URL changes adds three practical rules. Map each old URL to its new equivalent. Send each old URL straight to its final destination rather than through a chain of redirects. Keep the redirects for as long as possible, generally at least a year. It also says to submit a new sitemap in Search Console, and to expect temporary fluctuation in rankings during the move.
Which tool should carry the redirects?
Pick whichever fits your server access. Jetonomy’s migration playbook lists three options: Cloudflare Workers for performance, an Nginx rewrite map if you control the server, and a redirect plugin as the easiest route that is slightly slower per request.
The Redirection plugin is the usual choice on WordPress. Its plugin page says it manages 301 redirections, tracks 404 errors, supports regular expressions, and imports and exports CSV files, with an import system that also reads .htaccess, JSON and Nginx rules. That covers the three jobs you have: pattern rules for forum and profile pages, a bulk import for topics, and a 404 log for what you missed.
For wpForo, the Go2wpForo documentation mentions Redirect2wpForo for old bbPress forum and topic URLs.
How do you build the map?
Build it from three sources: a crawl or export of your old forum URLs, the new URLs created by the import, and the original topic title or ID that ties them together.
- List old topic URLs from a crawl, your sitemap, or Search Console.
- List the new URLs from the new forum, then match them by title and date. A spreadsheet lookup is enough for most forums.
- Write one rule per forum index, forum and profile pattern, and one individual rule per topic.
- Load the rules into your tool and test 20 URLs on staging.
- Re-test the same 20 on the live site after cutover.
If you have thousands of topics, treat the map as the biggest task in the project. A script that reads the new forum’s addresses and writes a CSV will save you days. Do the match programmatically and spot-check by hand.
To confirm it worked, take the 20 test URLs and check that each returns exactly one 301 hop to the right page, with no chain.
How do you protect your search traffic?
Keep the redirects live for at least a year, submit the new sitemap on day one, and watch Search Console for 404 errors on old forum URLs for a month. Wbcom’s article suggests checking the Pages report in Search Console weekly for about a month, since a rise in “Not found (404)” shows which redirects you missed.
Expect movement. Google’s documentation says rankings can fluctuate during a URL move and that medium-sized sites may take a few weeks or more before new URLs replace old ones in results. Do not panic in week one, and do not undo the redirects.
Other practical points:
- Update internal links on your own pages, menus and emails so they point at the new addresses directly.
- Do not redirect everything to the forum home page. Redirecting topic URLs to an unrelated page loses the relevance the old page had.
- Keep forum pages crawlable. Our guide on optimizing community sites for SEO and performance covers the general habits.
A theme change can cost you the same rankings, for similar reasons. If you plan both at once, read the hidden cost of changing WordPress themes and do them in separate releases, so you can tell which change caused a drop.
How do you tell members about the move?
Tell them early, say what changes and what they need to do, and give them a date. Most forum members only care about three things: will my account still work, will my old posts still be there, and what do I have to do.
Send a notice two weeks and again two days before the cutover, and pin one on the old forum. Cover these points in plain words:
- The date and time the old forum closes to new posts.
- That logins stay the same. This is true when the importer links content to existing WordPress accounts, which Jetonomy’s does, and when Go2wpForo migrates from a WordPress-based forum plugin, where passwords carry over.
- That old topics and replies have moved, and old links will forward to the new address.
- What did not come across. Tags, subscriptions and reputation are not imported by Jetonomy, so ask members to re-subscribe to the topics they care about.
- Where to report a broken link, and who will answer.
Tone matters more than the tool. A short, direct note beats a promotional one, and a visible “report a missing page” link lets your members find redirect gaps for you. Our guide to migrating a Facebook group to WordPress has more on announcing a move, and the community site pre-launch checklist lists what to test before anyone else sees the new site.
How do you roll back if the migration goes wrong?
Rollback means disabling the new forum, re-enabling bbPress, and restoring the backup if the database was damaged. No importer here undoes its own work. Jetonomy’s documentation says the import cannot be reversed automatically, so your backup and your old tables are the way back.
The good news is the importer only reads the old data. The old tables stay in the database until you remove them, so they act as a second copy while you compare. That is the reason to keep bbPress’s data for a few weeks.
Decide three things before cutover:
- The trigger. Write down what counts as failure, for example “more than a set number of broken topics” or “login problems for members”. Decide with another person, not alone at midnight.
- The cut-off. After a set number of days, rollback stops being simple, because new posts will exist only in the new forum. Jetonomy’s playbook does not say how posts made during a rollback window are handled, so decide that rule yourself and tell the team.
- The owner. Name one person for the redirect map, one for the announcement and one for the rollback plan.
To rehearse it, switch to the old forum on staging, run your checks, and time the process. A rollback you have practised takes minutes. One you have not can take a day.
Where does Reign fit in?
The theme decides how the new forum looks next to the rest of your site. Reign’s own article on Jetonomy says Jetonomy is designed to pick up Reign’s CSS variables, so forum pages match the theme without custom CSS, and that every forum, space, post and reply is rendered with the block editor. Read Reign + Jetonomy for the details.
Reign also styles BuddyNext, BuddyPress, BuddyBoss Platform, PeepSo and Wbcom’s own plugins without add-ons, so a forum can sit beside member profiles, groups and the rest of a community site in one design.
Questions people ask
Can I migrate from bbPress without losing my topics?
Yes. Importers from Jetonomy and wpForo’s Go2wpForo bring forums, topics, replies and attachments across. Rehearse on a staging copy, compare counts before and after, and keep bbPress’s data for a few weeks. What you can lose is anything outside the content, such as tags, subscriptions and old URLs, unless you handle them yourself.
Does the Jetonomy importer keep my old URLs?
No. Jetonomy serves content under its own addresses beginning with /community/, and its documentation states the importer does not create redirects. You build the redirect map yourself and serve it as 301s.
Can I import into wpForo or Asgaros instead?
wpForo has Go2wpForo, a migration tool whose documentation lists bbPress as a supported source. Asgaros Forum’s plugin page does not mention an importer, so check its own documentation before committing. If you want to move out of Asgaros later, Jetonomy lists it as an import source.
Will my members need to reset their passwords?
Not when the import links to existing WordPress accounts, which is how the Jetonomy importer works. Go2wpForo’s documentation says passwords are preserved when migrating from WordPress-based forum plugins such as bbPress, because they use the same hashing as WordPress.
How long should I keep the redirects?
Google’s guidance on URL changes says to keep them as long as possible, generally at least a year. Remove nothing while old URLs still receive traffic or links.
Where to go from here
If your destination is a Reign-powered community, see the Reign theme page for the design layer, and Jetonomy for the forum, Q&A and ideas side.