diff --git src/bp-activity/classes/class-bp-activity-component.php src/bp-activity/classes/class-bp-activity-component.php
index d44879fd3..93f441351 100644
--- src/bp-activity/classes/class-bp-activity-component.php
+++ src/bp-activity/classes/class-bp-activity-component.php
@@ -502,4 +502,23 @@ class BP_Activity_Component extends BP_Component {
 			)
 		);
 	}
+
+	/**
+	 * Add the Activity directory state.
+	 *
+	 * @since 8.0.0
+	 *
+	 * @param array   $states Optional. See BP_Component::admin_directory_states() for description.
+	 * @param WP_Post $post   Optional. See BP_Component::admin_directory_states() for description.
+	 * @return array          See BP_Component::admin_directory_states() for description.
+	 */
+	public function admin_directory_states( $states = array(), $post = null ) {
+		$bp = buddypress();
+
+		if ( isset( $bp->pages->activity->id ) && (int) $bp->pages->activity->id === (int) $post->ID ) {
+			$states['page_for_activity_directory'] = _x( 'BP Activity Page', 'page label', 'buddypress' );
+		}
+
+		return parent::admin_directory_states( $states, $post );
+	}
 }
diff --git src/bp-blogs/classes/class-bp-blogs-component.php src/bp-blogs/classes/class-bp-blogs-component.php
index 9ad5e6d1f..749c91ef0 100644
--- src/bp-blogs/classes/class-bp-blogs-component.php
+++ src/bp-blogs/classes/class-bp-blogs-component.php
@@ -379,4 +379,23 @@ class BP_Blogs_Component extends BP_Component {
 
 		parent::rest_api_init( $controllers );
 	}
+
+	/**
+	 * Add the Sites directory states.
+	 *
+	 * @since 8.0.0
+	 *
+	 * @param array   $states Optional. See BP_Component::admin_directory_states() for description.
+	 * @param WP_Post $post   Optional. See BP_Component::admin_directory_states() for description.
+	 * @return array          See BP_Component::admin_directory_states() for description.
+	 */
+	public function admin_directory_states( $states = array(), $post = null ) {
+		$bp = buddypress();
+
+		if ( isset( $bp->pages->blogs->id ) && (int) $bp->pages->blogs->id === (int) $post->ID ) {
+			$states['page_for_sites_directory'] = _x( 'BP Sites Page', 'page label', 'buddypress' );
+		}
+
+		return parent::admin_directory_states( $states, $post );
+	}
 }
diff --git src/bp-core/admin/bp-core-admin-actions.php src/bp-core/admin/bp-core-admin-actions.php
index 68e5d30b0..3c7fae966 100644
--- src/bp-core/admin/bp-core-admin-actions.php
+++ src/bp-core/admin/bp-core-admin-actions.php
@@ -59,6 +59,9 @@ add_action( 'bp_admin_init', 'bp_do_activation_redirect', 1    );
 // Add a new separator.
 add_action( 'bp_admin_menu', 'bp_admin_separator' );
 
+// Add a filter to include BP Components directory pages display states.
+add_filter( 'display_post_states', 'bp_admin_display_directory_states', 10, 2 );
+
 /**
  * When a new site is created in a multisite installation, run the activation
  * routine on that site.
@@ -234,3 +237,33 @@ function bp_register_admin_settings() {
 	 */
 	do_action( 'bp_register_admin_settings' );
 }
+
+/**
+ * Dedicated filter to inform about BP components directory page states.
+ *
+ * @since 8.0.0
+ *
+ * @param string[] $post_states An array of post display states.
+ * @param WP_Post  $post        The current post object.
+ */
+function bp_admin_display_directory_states( $post_states = array(), $post = null ) {
+	/**
+	 * Filter here to add BP Directory pages.
+	 *
+	 * Used internaly by BP_Component->admin_directory_states(). Please use the dynamic
+	 * filter in BP_Component->admin_directory_states() to edit the directory state
+	 * according to the component's ID.
+	 *
+	 * @since 8.0.0
+	 *
+	 * @param array    $value An empty array.
+	 * @param WP_Post  $post  The current post object.
+	 */
+	$directory_page_states = apply_filters( 'bp_admin_display_directory_states', array(), $post );
+
+	if ( $directory_page_states ) {
+		$post_states = array_merge( $post_states, $directory_page_states );
+	}
+
+	return $post_states;
+}
diff --git src/bp-core/classes/class-bp-component.php src/bp-core/classes/class-bp-component.php
index ee3dfde6d..7349a6722 100644
--- src/bp-core/classes/class-bp-component.php
+++ src/bp-core/classes/class-bp-component.php
@@ -471,6 +471,9 @@ class BP_Component {
 			add_action( 'bp_blocks_init', array( $this, 'blocks_init' ), 10 );
 		}
 
+		// Set directory page states.
+		add_filter( 'bp_admin_display_directory_states', array( $this, 'admin_directory_states' ), 10, 2 );
+
 		/**
 		 * Fires at the end of the setup_actions method inside BP_Component.
 		 *
@@ -946,5 +949,31 @@ class BP_Component {
 		 */
 		do_action( 'bp_' . $this->id . '_blocks_init' );
 	}
+
+	/**
+	 * Add component's directory states.
+	 *
+	 * @since 8.0.0
+	 *
+	 * @param string[] $states An array of post display states.
+	 * @param WP_Post  $post   The current post object.
+	 * @return array           The component's directory states.
+	 */
+	public function admin_directory_states( $states = array(), $post = null ) {
+		if ( $this->has_directory ) {
+			/**
+			 * Filter here to edit the component's directory states.
+			 *
+			 * This is a dynamic hook that is based on the component string ID.
+			 *
+			 * @since 8.0.0
+			 *
+			 * @param string[] $states An array of post display states.
+			 */
+			return apply_filters( 'bp_' . $this->id . '_admin_directory_states', $states );
+		}
+
+		return $states;
+	}
 }
 endif; // BP_Component.
diff --git src/bp-groups/classes/class-bp-groups-component.php src/bp-groups/classes/class-bp-groups-component.php
index d15a7cb58..ea852d93d 100644
--- src/bp-groups/classes/class-bp-groups-component.php
+++ src/bp-groups/classes/class-bp-groups-component.php
@@ -1064,4 +1064,23 @@ class BP_Groups_Component extends BP_Component {
 			)
 		);
 	}
+
+	/**
+	 * Add the Groups directory states.
+	 *
+	 * @since 8.0.0
+	 *
+	 * @param array   $states Optional. See BP_Component::admin_directory_states() for description.
+	 * @param WP_Post $post   Optional. See BP_Component::admin_directory_states() for description.
+	 * @return array          See BP_Component::admin_directory_states() for description.
+	 */
+	public function admin_directory_states( $states = array(), $post = null ) {
+		$bp = buddypress();
+
+		if ( isset( $bp->pages->groups->id ) && (int) $bp->pages->groups->id === (int) $post->ID ) {
+			$states['page_for_groups_directory'] = _x( 'BP Groups Page', 'page label', 'buddypress' );
+		}
+
+		return parent::admin_directory_states( $states, $post );
+	}
 }
diff --git src/bp-members/classes/class-bp-members-component.php src/bp-members/classes/class-bp-members-component.php
index 8effd0cf0..7ce8b3752 100644
--- src/bp-members/classes/class-bp-members-component.php
+++ src/bp-members/classes/class-bp-members-component.php
@@ -835,4 +835,33 @@ class BP_Members_Component extends BP_Component {
 			)
 		);
 	}
+
+	/**
+	 * Add the Members directory states.
+	 *
+	 * @since 8.0.0
+	 *
+	 * @param array   $states Optional. See BP_Component::admin_directory_states() for description.
+	 * @param WP_Post $post   Optional. See BP_Component::admin_directory_states() for description.
+	 * @return array          See BP_Component::admin_directory_states() for description.
+	 */
+	public function admin_directory_states( $states = array(), $post = null ) {
+		$bp = buddypress();
+
+		if ( isset( $bp->pages->members->id ) && (int) $bp->pages->members->id === (int) $post->ID ) {
+			$states['page_for_members_directory'] = _x( 'BP Members Page', 'page label', 'buddypress' );
+		}
+
+		if ( bp_get_signup_allowed() || bp_get_members_invitations_allowed() ) {
+			if ( isset( $bp->pages->register->id ) && (int) $bp->pages->register->id === (int) $post->ID ) {
+				$states['page_for_bp_registration'] = _x( 'BP Registration Page', 'page label', 'buddypress' );
+			}
+
+			if ( isset( $bp->pages->activate->id ) && (int) $bp->pages->activate->id === (int) $post->ID ) {
+				$states['page_for_bp_activation'] = _x( 'BP Activation Page', 'page label', 'buddypress' );
+			}
+		}
+
+		return parent::admin_directory_states( $states, $post );
+	}
 }
