To migrate a BuddyPress community to BuddyNext, install BuddyNext on a staging copy of your site, run the BuddyNext Importer, check its report, look at the result as a member would, and only then repeat the run on the live site. The importer moves members, groups, activity, friendships, forums, media and messages. It cannot be undone from inside the plugin, so your undo is a tested backup.
Wbcom Designs makes BuddyNext, the importer and Reign, so we are not neutral. This guide only repeats what the importer’s own repository and the BuddyNext and Reign documentation state, as of October 2026. Where a source is silent, we say so.
In this guide
- What a BuddyPress to BuddyNext migration actually is
- What moves, and what does not
- Why the move is one-way and why you rehearse first
- Prerequisites to check before you start
- The rehearsal run, step by step, with a check at each step
- How to verify the result, area by area
- Custom add-ons and code
- URLs and search engines
- What to tell your members
- The live run, and how to roll back
- Questions people ask
What does it mean to move from BuddyPress to BuddyNext?
It means replacing the community engine on your site while keeping WordPress, your theme, your pages and your member accounts. BuddyPress is the plugin that currently provides your groups, activity stream and profiles. BuddyNext takes over that job, and a separate importer plugin copies your community history across.
Two facts make this easier than it sounds. BuddyNext runs on standard WordPress accounts, so members keep the same username, email, password and role, and nobody has to register again. Your posts, pages and media library are not touched either. The BuddyNext migration page states both.
The harder part is the community history. BuddyNext does not read BuddyPress data on its own. Groups, extended profile data, friendships and activity stay in BuddyPress storage until something brings them over. That something is the BuddyNext Importer, a one-time migration tool that reads your BuddyPress (or BuddyBoss) tables directly and writes the content into BuddyNext through BuddyNext’s own services. You run it once, then delete it.
If you are still deciding whether to move at all, read our comparison of BuddyPress alternatives for a WordPress community first. If you have decided, keep reading. If you run the Reign theme, our earlier post on keeping your Reign site while upgrading the community covers the theme side, and this guide covers the data.
What migrates and what does not?
The importer is built to move twelve selectable areas of a community, and it names anything it cannot carry before you run it. The table below pairs each BuddyPress area with where it lands in BuddyNext. It is taken from the importer’s README and its BuddyPress data-mapping notes.
| In BuddyPress | In BuddyNext | Notes from the importer |
|---|---|---|
| Extended profile fields and their values | Profile fields and values | Field types are mapped across. Per-field visibility maps to BuddyNext field privacy. |
| Member types | Member types | Carried over where you use them. |
| Group types | Space categories | Where a group carries several types, the first is taken. |
| Groups and their members | Spaces and space members | Public becomes open, private stays private, hidden becomes secret. Admin and moderator roles carry over. |
| Activity posts and comments | Posts and comments | Comment threads are rebuilt. System entries such as “joined a group” are not imported. |
| Blog-post activity | Article-type posts | Comes with its comment thread. |
| Friendships | Connections | Both are mutual. Pending requests stay pending. |
| Follows and reactions | Follows and reactions | Reactions on comments are included, not only on posts. |
| bbPress forums, topics, replies, tags | Jetonomy | Needs Jetonomy active. |
| Avatars and cover images | Member and space media | The files are copied across. |
| Albums and media (including rtMedia) | WPMediaVerse | Needs WPMediaVerse active. Album order is preserved. |
| Private messages | WPMediaVerse direct messages | Needs WPMediaVerse active. Photos sent inside a message stay with that conversation. |
Three things deliberately do not come across.
Notifications are not imported. The importer’s notes call them transient, and rebuilding old ones would only add noise to a fresh community. Members will see an empty bell on day one.
System activity rows and spam-flagged activity are skipped, according to the BuddyPress data-mapping notes. A “member joined a group” line can be worked out from membership, so it is not copied.
Content the importer cannot carry is listed on its source panel before a run. For BuddyBoss sources, the release notes name BuddyBoss documents as one such item. Read that panel instead of assuming. Anything on it is a decision you make before the live run.
The importer can also read a BuddyBoss Platform source. This guide is about BuddyPress, but the process is the same. If you are on BuddyBoss and want a different path, see our guide to moving from BuddyBoss to the Reign BuddyPress theme.
Is the migration one-way?
Yes. The importer’s README is blunt about it: it cannot be undone from inside the plugin, and reversing a run means restoring a backup. It also says an undo button is not on the roadmap, because a migration touches too many services to unwind safely.
Re-running does not create duplicates, because every write is keyed to its source row, and BuddyNext’s documentation says the move does not delete or alter your BuddyPress data. But the two engines write to different storage, and once members post on BuddyNext, going back to BuddyPress would lose everything they wrote after the switch. Treat the live run as a one-way door and the backup as your way back.
Why rehearse on staging first?
Because a migration report tells you what arrived, not whether the community feels right, and the only safe place to find out is a copy. The importer’s README makes the rehearsal the central instruction: never run it on a live community you have not already migrated somewhere else.
The README suggests a host staging environment or a local copy, with LocalWP, DevKinsta, wp-env and Docker all named. Its advice is to choose whichever is easiest to destroy and rebuild, because you may run the rehearsal more than once.
It also draws a line worth remembering: counts reconciling is not the same as the community feeling right. A rehearsal has two jobs. One is to read the report. The other is to open a private space, a migrated discussion and a member’s profile, and see them the way a member would.
What do you need before you start?
You need a current backup you have tested, a staging copy, a server that meets the importer’s minimums, and the companion plugins for forums and media if you use them. Check each item below before you touch anything.
- A full backup, files and database. Restore it somewhere once, so you know it works. The importer’s README says the backup should be one you have actually tested restoring.
- A staging copy of the whole site. A full copy, with your real BuddyPress data in it, not a blank site.
- WordPress 6.9 or newer. The importer’s requirements list it, because BuddyNext needs the Abilities API.
- PHP 8.1 or newer. This is the importer’s stated minimum. Reign’s BuddyNext guidance also recommends 512 MB of PHP memory, so ask your host to confirm both.
- BuddyNext installed and active on staging. The importer declares it as a required plugin, so WordPress will not let you activate the importer without it.
- Jetonomy, if you have bbPress forums. Without it, the forum domain is skipped.
- WPMediaVerse, if you have albums, media or private messages. Without it, those domains are skipped.
- A list of your BuddyPress add-ons. We come back to this below.
How do you run the migration, step by step?
Run it on staging in this order: install BuddyNext, finish its setup, install the importer, read the source panel, choose what to import, run it, then run the checks. The steps below follow the BuddyNext data-migration guide and the importer README. Each one ends with a way to confirm it worked.
Step 1: Put BuddyNext on the staging copy
On staging, install and activate BuddyNext. On a Reign site, deactivate BuddyPress first, because Reign loads its BuddyPress layer when BuddyPress is active and its BuddyNext layer only when BuddyNext is active and BuddyPress is not. Your BuddyPress tables stay in the database, which is what the importer reads from. Reign Settings, then Extend, also offers a one-click BuddyNext install.
To confirm it worked, open Reign Settings, then Integrations. A BuddyNext tile should read “Styling active”, and there should be no BuddyPress tile.
Step 2: Finish BuddyNext’s setup wizard
BuddyNext opens its own setup wizard on the first admin page you visit after activation. Finish it before you import. Per Reign’s documentation it covers branding, who can join, profile fields, default notifications, space categories, the pages BuddyNext creates (Community Feed, Members and Spaces), and companion plugins. The companion plugins are all ticked by default, so untick any you do not want.
The last screen offers sample content. Skip it on a rehearsal that is meant to look like your real site, because demo members would mix with your migrated ones. If you load it anyway, it can be removed under BuddyNext, then Platform Tools, then Demo Data.
To confirm it worked, visit the Community Feed, Members and Spaces pages as an admin. They should load, empty or not.
Step 3: Install the BuddyNext Importer
Get the plugin from the BuddyNext Importer repository, install it on staging and activate it. BuddyNext must already be active.
To confirm it worked, look for Import to BuddyNext under the Tools menu.
Step 4: Read the source panel
Open Tools, then Import to BuddyNext. The source panel lists what the importer found in your BuddyPress tables and, before a run, names the content it cannot carry. Read it as a to-do list for your own decisions.
If you prefer the command line, wp buddynext-import stats reads the source and writes nothing. To confirm it worked, compare the counts it shows with those in the BuddyPress admin.
Step 5: Choose what to import
Under “What to import”, everything is selected by default, so if you ignore the panel you get the full migration. Deselect only what you want to leave behind. The importer works per area, not per row, so you cannot import comments without their posts. It pulls in parent areas automatically for that reason.
Leaving something out is safe. A later run tops up the missing area instead of duplicating what already arrived, and an area you excluded on purpose is reported as “skipped by choice”, not as a shortfall. On the command line, the same choice is --only and --skip on migrate-all.
To confirm it worked, check that the panel shows the areas you expect to be ticked.
Step 6: Run the import
Click Start import, or Run in background for a large community. The command-line equivalent is wp buddynext-import migrate-all. While it runs, the importer suppresses side effects, so imported content does not fire notifications, emails or webhooks at your members.
To confirm it worked, wait for the “What was imported” table to appear. It shows, for each area, the number of source rows against the number written.
Step 7: Read the shortfalls
For every area, the importer reports source count against rows written, and gives a plain-sentence reason for every row it did not write. The README shows the pattern with an example: posts refused because their author was not a member of the space they belonged to, and comments dropped because the post they sat on did not migrate.
Do not read only the totals. A shortfall with a good reason, such as a comment on a deleted post, is fine. A shortfall you cannot explain is the one to chase before the live run. To confirm it worked, make sure every gap in the table has a reason beside it.
Step 8: Run the checks
Click Run checks, or run wp buddynext-import verify --samples=20. The checks compare coverage and per-domain totals against an independent count of the source, walk randomly sampled objects end to end, and confirm that no private or secret space content became publicly searchable.
To confirm it worked, the checks should finish with no unexplained gap and no private content exposed. If they flag something, fix the cause on staging and run again. Re-running is safe.
Step 9: Walk through it as a member
Log in as an ordinary member, not as an admin. Open a private space you belong to, a migrated discussion and your own profile. Post, react and reply. If you use Reign, walk through the checklist in Reign’s BuddyNext setup guide: the bell, messages icon and avatar menu should appear in the header, and Log Out should be in the menu.
To confirm it worked, you should be able to find a real conversation from last year, written by a real member, in the place where it now lives.
Step 10: Clean up, but only at the very end
When you are finished with all top-up runs, deactivate and delete the importer. Remove its import data last, either with the Remove import data button or wp buddynext-import cleanup. The importer’s README warns that cleanup is final: the temporary tables it removes are what prevent duplicates, so a later run would recreate everything. Do this on the live site only after you are sure no further top-up is needed.
How do you verify the results?
Compare each area of the community against your own pre-migration notes, then against the importer’s table. Counts tell you whether rows moved. A member’s walk-through tells you whether the community still works. Do both, using the list below.
| Area | What to compare | What to look at as a member |
|---|---|---|
| Members | Total in BuddyPress against Members in BuddyNext. Remember accounts are WordPress accounts, so they should match. | Open three profiles. Check the photo, cover image and custom fields. |
| Groups to Spaces | Number of groups against Spaces, and each group’s privacy against the Space type. | Open a private Space and a hidden one. Check that only members can see them. |
| Activity | Posts and comments against the importer’s table, with its reasons for the gaps. | Find an old thread with replies and read it top to bottom. |
| Friendships to Connections | Friend count per active member against their connection count. | Check a pending request still shows as pending. |
| Forums to Jetonomy | Forums, topics and replies, in Jetonomy’s admin. | Open a long topic and check the reply order and tags. |
| Media to WPMediaVerse | Albums and media items, in WPMediaVerse. | Open an album and check the order is the one members arranged. |
| Private messages | Conversations in the messages area. | Open a conversation with a photo attachment. |
Groups to Spaces
The mapping is public to open, private to private, and hidden to secret. Open one of each type as a non-member and as a member. The privacy check in the importer’s verify run covers private and secret content, but you should still see it with your own eyes.
Activity
Activity is where your report will most likely show gaps, because activity depends on other things. A post whose author was not a member of its group is refused rather than published to the global feed. A comment on a post that did not move goes with it. Read the reasons. They are written for exactly this moment.
Friendships to Connections
Friendships become connections, and both are mutual. BuddyPress has no follow feature, so on a pure BuddyPress source the follows area may be empty. That is expected, not a failure. The theme matters here: Reign leaves the Friend Request icon out under BuddyNext, because friending is a BuddyPress feature.
Forums to Jetonomy
bbPress forums, topics, replies and topic tags go to Jetonomy. If you only ever used BuddyPress groups and never bbPress, there is nothing to move here. If forums matter to you, our bbPress alternatives guide and the forum plugin comparison show where Jetonomy sits among the options, and Jetonomy’s site lists its features.
Media to MediaVerse
Albums and media, including rtMedia content, land in WPMediaVerse. A photo that was never posted to activity, one that only sat in someone’s library, is migrated too. Media for a group album becomes a space-owned album. Private message attachments stay inside their conversation and never appear in a member’s media library.
What about custom add-ons and custom code?
Add-ons are where migrations surprise people. The importer moves data. It does not move plugins, and the BuddyNext migration page says some add-ons will map to BuddyNext core, some to a companion plugin and some to nothing yet.
Do an audit on paper before the live run.
- List every plugin that mentions BuddyPress. Check names and descriptions on the Plugins screen, and include anything your theme bundles.
- Write down the job each one does. For example polls, hashtags, member blogs, badges, moderation or a job board.
- Find the replacement. BuddyNext already includes polls, hashtags, bookmarks and a moderation queue. Courses, events, points, jobs and listings come from companion plugins such as Learnomy, Eventonomy, WB Gamification and WP Career Board, each of which runs on its own.
- Mark anything with no replacement. Those are your decisions to make before the move, not after.
- Test each replacement on staging. Click through it as a member.
Custom code is a separate item. Anything written against BuddyPress functions or hooks needs review. BuddyNext’s own page puts it plainly: porting is mechanical, but it is not automatic. BuddyNext has a REST API and hooks to port to, and that is the place a developer starts.
Your theme matters too. BuddyNext’s migration page says a theme built tightly around one community plugin may need work, and that standard WordPress themes are generally fine. Reign has a styling layer for BuddyNext, so your colours, fonts and layouts carry over, and our guide to what you can build with Reign shows what else the theme styles. To set up a fresh staging site with a demo, see how to install Reign and import a demo.
What happens to your URLs and search rankings?
None of the importer’s or BuddyNext’s documentation promises that old BuddyPress URLs redirect to their new BuddyNext equivalents, and the BuddyNext migration page gives no redirect rules. Treat URL continuity as your job and check it on staging.
Here is a practical way to do it. This is general website practice, not something the importer does for you.
- Collect the community URLs that matter. Before the move, list the BuddyPress group, member and activity URLs that earn search traffic or are linked from elsewhere. Your search console’s page report is the quickest source.
- Find where each one lives afterwards. On staging, open the new Space, profile or post that corresponds to each URL.
- Decide what to redirect. For pages with real traffic, set a permanent redirect from the old address to the new one with your redirect tool of choice. Test a handful by hand.
- Remember your pages did not move. Posts, pages and the media library are untouched, so your ordinary content URLs stay as they are.
- Check the login URLs. With BuddyNext active, Reign’s docs say the front-end login, register and reset screens resolve to
/login/,/login/signup/and/login/reset/. The normalwp-login.phpand wp-admin addresses are left alone, so you can always get in. - Watch search console afterwards. After the live run, check the coverage report for new “not found” pages and fix them in order of traffic.
What should you tell your members?
Tell them the date, what looks different, what they need to do and where to get help. Keep it short and send it twice. The good news is that in most cases the answer to “what do I need to do” is close to nothing.
BuddyNext’s guide on what changed for members gives you the content. Their login and password do not change. Groups are now Spaces, and members find them in the Spaces directory. Friends are now Connections, which are still mutual, and members can also follow someone without a request. The activity stream is now the Feed. Messages and notifications moved to icons in the header.
Be careful with one promise. The BuddyNext page says members may need to set up their profile again in the new layout, and recommends they add a photo, cover image and bio. The importer carries avatars, covers and profile fields, so most of this will already be there. But do not promise it until you have looked at three real profiles on staging.
A plain version could read: “We are upgrading our community engine on [date]. Your login stays the same. Groups are now called Spaces and friends are now Connections. Everything you posted is meant to be there when you come back. If something looks wrong, reply to this email.” Edit it to match your voice, and delete any line you have not verified.
Send a reminder a week before, one on the day, and a welcome post in your main Space afterwards. If you rely on friend requests today, say explicitly that members now connect and follow instead. For more on rallying a community around a change, our guide to launching a community has useful habits, and our post on migrating a Facebook group goes deeper on the member communication side.
How do you do the live run?
Repeat the rehearsal, in the same order, on the live site, in a quiet window, after a fresh backup you have tested restoring. Nothing about the sequence changes. What changes is that the result is real.
- Pick a quiet time. Choose the hour your members are least active. BuddyNext notes that a larger activity history takes longer to import, so scale the window to your site.
- Put the site in maintenance mode. Show a friendly note about the upgrade.
- Take a fresh backup. Even if you took one yesterday. Confirm you can restore it.
- Repeat your staging steps. Install BuddyNext, finish its wizard, install the importer, and use the same import choices.
- Run the checks. Read every reason, then walk through as a member.
- Clear every cache and set the redirects you prepared.
- Open the doors and stay close. Watch the first day, and answer questions fast.
- Keep the backup and the old data for a while. Do not delete the old BuddyPress setup until the new one has run well for some time.
How do you roll back if something goes wrong?
You restore the backup you took before the live run. That is the only rollback the importer’s README describes, and it says so directly: the fix for a bad run is a database restore.
That makes the backup the most important step of the whole job. Three habits keep it useful.
- Test the restore before you need it. Restore the backup on staging and open the site. A backup you have never restored is a hope.
- Back up the files and the database. Avatars and cover images are files, and the import reads and copies them.
- Decide in advance what counts as a failed run. For example, unexplained gaps in the report, private content visible to the wrong people, or a broken sign-in screen. Write the list down so you decide calmly, not under pressure.
If you would rather not do any of this yourself, Wbcom’s team offers migration help, which is the sensible option for a large or heavily customised community.
Should you migrate, or start clean?
Migrate if the history is worth keeping, and start clean if your old groups are mostly dormant. BuddyNext’s own guide offers a clean-start route for exactly that case, and it takes far less effort.
The clean-start route is short. Re-create a short list of key Spaces. Set up a focused set of profile fields. Seed the feed with a welcome post and a few starter posts. Announce the change, including that logins still work and that members may want to update their profiles and rejoin Spaces. Then retire the old plugin once BuddyNext is live.
A fair rule is to ask what members would miss. If a long thread of advice from three years ago is the reason people join, migrate. If most of your groups have not had a post in a year, a clean start gives you a livelier feed on day one, and you avoid carrying old clutter forward.
Questions people ask
Can I run BuddyPress and BuddyNext at the same time?
Not on a Reign site. Reign’s documentation says its BuddyPress layer loads when BuddyPress is active and its BuddyNext layer only when BuddyNext is active and BuddyPress is not, and that running both is not a supported setup. BuddyNext’s migration guide also says BuddyPress is a migration source only. Rehearse on a staging copy instead, and switch on the live site in one window.
Will members have to sign up again or reset their passwords?
No. BuddyNext runs on standard WordPress accounts, so members keep their username, email, password and role. The importer copies community data, not accounts. What members may need to redo is small, such as updating a profile in the new layout.
Does the importer work with BuddyBoss too?
Yes. Its README lists BuddyPress and BuddyBoss Platform as supported sources. It does not ship adapters for FluentCommunity, PeepSo or Ultimate Member today, and describes those as planned for a later version. Check the repository for the current list before you plan around it.
How long does the import take?
The sources give no figures. BuddyNext’s guide says the import is usually short and advises you to budget for the audit, not for the button, and says larger activity histories take longer. The importer runs in the background for big communities, and the README describes keyset pagination aimed at large sites. Your rehearsal run is how you learn your own number.
Can I undo the migration if I do not like the result?
Only by restoring a backup. The importer has no undo, and its README says adding one is not planned. Re-running never duplicates content, so you can fix a problem on staging and run again, but the live site’s way back is the backup you took first.
Reign is the theme designed to sit in front of this move. It keeps your design, menus and pages as they are while BuddyNext takes over the community, and it styles the companion plugins from one place. See the Reign theme page for features and demos, read about BuddyNext on its own site, or click around the BuddyNext live demo before you decide. For performance after the move, our Reign performance guide covers what to measure.