diff --git src/bp-core/bp-core-filters.php src/bp-core/bp-core-filters.php
index 447dbace0..1d9c1aae0 100644
--- src/bp-core/bp-core-filters.php
+++ src/bp-core/bp-core-filters.php
@@ -78,6 +78,9 @@ add_filter( 'bp_get_template_stack', 'bp_add_template_stack_locations' );
 // Turn comments off for BuddyPress pages.
 add_filter( 'comments_open', 'bp_comments_open', 10, 2 );
 
+// Force comments count to be 0 or comments list to be an empty array.
+add_filter( 'comments_pre_query', 'bp_comments_pre_query', 10, 2 );
+
 // Prevent DB query for WP's main loop.
 add_filter( 'posts_pre_query', 'bp_core_filter_wp_query', 10, 2 );
 
diff --git src/bp-core/bp-core-theme-compatibility.php src/bp-core/bp-core-theme-compatibility.php
index 06fa44853..17bcf8dc7 100644
--- src/bp-core/bp-core-theme-compatibility.php
+++ src/bp-core/bp-core-theme-compatibility.php
@@ -935,6 +935,31 @@ function bp_comments_open( $open, $post_id = 0 ) {
 	return apply_filters( 'bp_force_comment_status', $retval, $open, $post_id );
 }
 
+/**
+ * Avoid potential extra comment query on BuddyPress pages.
+ *
+ * @since 10.5.0
+ *
+ * @param array|int|null   $comment_data     The comments list, the comment count or null.
+ * @param WP_Comment_Query $wp_comment_query The WP_Comment_Query instance.
+ * @return array|int|null Null to leave WordPress deal with the comment query, an empty array or 0 to shortcircuit it.
+ */
+function bp_comments_pre_query( $comment_data, $wp_comment_query ) {
+	$is_post_null = isset( $wp_comment_query->query_vars['post_id'] ) && 0 === (int) $wp_comment_query->query_vars['post_id'];
+
+	if ( ! is_buddypress() || ! $is_post_null ) {
+		return $comment_data;
+	}
+
+	if ( isset( $wp_comment_query->query_vars['count'] ) && $wp_comment_query->query_vars['count'] ) {
+		$comment_data = 0;
+	} else {
+		$comment_data = array();
+	}
+
+	return $comment_data;
+}
+
 /**
  * Do not allow {@link comments_template()} to render during theme compatibility.
  *
