diff --git src/bp-core/bp-core-functions.php src/bp-core/bp-core-functions.php
index abd4400..56f8ac1 100644
--- src/bp-core/bp-core-functions.php
+++ src/bp-core/bp-core-functions.php
@@ -636,14 +636,7 @@ function bp_core_add_page_mappings( $components, $existing = 'keep' ) {
 		$pages = array();
 	}
 
-	$page_titles = array(
-		'activity' => _x( 'Activity', 'Page title for the Activity directory.',       'buddypress' ),
-		'groups'   => _x( 'Groups',   'Page title for the Groups directory.',         'buddypress' ),
-		'sites'    => _x( 'Sites',    'Page title for the Sites directory.',          'buddypress' ),
-		'members'  => _x( 'Members',  'Page title for the Members directory.',        'buddypress' ),
-		'activate' => _x( 'Activate', 'Page title for the user activation screen.',   'buddypress' ),
-		'register' => _x( 'Register', 'Page title for the user registration screen.', 'buddypress' ),
-	);
+	$page_titles = bp_core_get_directory_page_default_titles();
 
 	$pages_to_create = array();
 	foreach ( array_keys( $components ) as $component_name ) {
@@ -700,6 +693,24 @@ function bp_core_add_page_mappings( $components, $existing = 'keep' ) {
 }
 
 /**
+ * Get the default page titles for BP directory pages.
+ *
+ * @since 2.6.0
+ *
+ * @return array
+ */
+function bp_core_get_directory_page_default_titles() {
+	return array(
+		'activity' => _x( 'Activity', 'Page title for the Activity directory.',       'buddypress' ),
+		'groups'   => _x( 'Groups',   'Page title for the Groups directory.',         'buddypress' ),
+		'sites'    => _x( 'Sites',    'Page title for the Sites directory.',          'buddypress' ),
+		'members'  => _x( 'Members',  'Page title for the Members directory.',        'buddypress' ),
+		'activate' => _x( 'Activate', 'Page title for the user activation screen.',   'buddypress' ),
+		'register' => _x( 'Register', 'Page title for the user registration screen.', 'buddypress' ),
+	);
+}
+
+/**
  * Remove the entry from bp_pages when the corresponding WP page is deleted.
  *
  * Bails early on multisite installations when not viewing the root site.
diff --git src/bp-core/bp-core-update.php src/bp-core/bp-core-update.php
index 7fbdd30..71a0808 100644
--- src/bp-core/bp-core-update.php
+++ src/bp-core/bp-core-update.php
@@ -275,6 +275,11 @@ function bp_version_updater() {
 		if ( $raw_db_version < 10440 ) {
 			bp_update_to_2_5();
 		}
+
+		// 2.6.0
+		if ( $raw_db_version < 10772 ) {
+			bp_update_to_2_6();
+		}
 	}
 
 	/* All done! *************************************************************/
@@ -514,6 +519,17 @@ function bp_update_to_2_5() {
 }
 
 /**
+ * 2.6.0 update routine.
+ *
+ * - Save legacy directory titles to the corresponding WP pages.
+ *
+ * @since 2.6.0
+ */
+function bp_update_to_2_6() {
+	bp_260_migrate_directory_page_titles();
+}
+
+/**
  * Updates the component field for new_members type.
  *
  * @since 2.2.0
@@ -564,6 +580,55 @@ function bp_cleanup_friendship_activities() {
 }
 
 /**
+ * Update WP pages so that their post_title matches the legacy component directory title.
+ *
+ * As of 2.6.0, component directory titles come from the `post_title` attribute of the corresponding WP post object,
+ * instead of being hardcoded. To ensure that directory titles don't change for existing installations, we update these
+ * WP posts with the formerly hardcoded titles.
+ *
+ * @since 2.6.0
+ */
+function bp_260_migrate_directory_page_titles() {
+	$bp_pages = bp_core_get_directory_page_ids( 'all' );
+
+	$default_titles = bp_core_get_directory_page_default_titles();
+
+	$legacy_titles = array(
+		'activity' => _x( 'Site-Wide Activity', 'component directory title', 'buddypress' ),
+		'blogs'    => _x( 'Sites', 'component directory title', 'buddypress' ),
+		'groups'   => _x( 'Groups', 'component directory title', 'buddypress' ),
+		'members'  => _x( 'Members', 'component directory title', 'buddypress' ),
+	);
+
+	foreach ( $bp_pages as $component => $page_id ) {
+		if ( ! isset( $legacy_titles[ $component ] ) ) {
+			continue;
+		}
+
+		$page = get_post( $page_id );
+		if ( ! $page ) {
+			continue;
+		}
+
+		// If the admin has changed the default title, don't touch it.
+		if ( isset( $default_titles[ $component ] ) && $default_titles[ $component ] !== $page->post_title ) {
+			continue;
+		}
+
+		// If the saved page title is the same as the legacy title, there's nothing to do.
+		if ( $legacy_titles[ $component ] == $page->post_title ) {
+			continue;
+		}
+
+		// Update the page with the legacy title.
+		wp_update_post( array(
+			'ID' => $page_id,
+			'post_title' => $legacy_titles[ $component ],
+		) );
+	}
+}
+
+/**
  * Redirect user to BP's What's New page on first page load after activation.
  *
  * @since 1.7.0
