diff --git a/src/wp-admin/network/site-new.php b/src/wp-admin/network/site-new.php
index 150ea3d..c01f5c7 100644
--- a/src/wp-admin/network/site-new.php
+++ b/src/wp-admin/network/site-new.php
@@ -144,31 +144,7 @@ if ( isset( $_REQUEST['action'] ) && 'add-site' == $_REQUEST['action'] ) {
 			update_user_option( $user_id, 'primary_blog', $id, true );
 		}
 
-		wp_mail(
-			get_site_option( 'admin_email' ),
-			sprintf(
-				/* translators: %s: network name */
-				__( '[%s] New Site Created' ),
-				get_network()->site_name
-			),
-			sprintf(
-				/* translators: 1: user login, 2: site url, 3: site name/title */
-				__(
-					'New site created by %1$s
-
-Address: %2$s
-Name: %3$s'
-				),
-				$current_user->user_login,
-				get_site_url( $id ),
-				wp_unslash( $title )
-			),
-			sprintf(
-				'From: "%1$s" <%2$s>',
-				_x( 'Site Admin', 'email "From" field' ),
-				get_site_option( 'admin_email' )
-			)
-		);
+		wpmu_new_site_admin_notification( $id, $user_id, $title );
 		wpmu_welcome_notification( $id, $user_id, $password, $title, array( 'public' => 1 ) );
 		wp_redirect(
 			add_query_arg(
diff --git a/src/wp-includes/ms-functions.php b/src/wp-includes/ms-functions.php
index fa9ee5d..86d04a0 100644
--- a/src/wp-includes/ms-functions.php
+++ b/src/wp-includes/ms-functions.php
@@ -1623,6 +1623,103 @@ We hope you enjoy your new site. Thanks!
 }
 
 /**
+ * Notify admin that new site was created.
+ *
+ * Filter {@see 'wpmu_new_site_admin_notification'} to disable or bypass.
+ *
+ * @since 5.3.0
+ *
+ * @param int    $blog_id Blog ID.
+ * @param string $user_id User ID.
+ * @param string $title   Site title.
+ * @return bool
+ */
+function wpmu_new_site_admin_notification( $blog_id, $user_id, $title ) {
+	/**
+	 * Filters whether to bypass the new site created email for admin.
+	 *
+	 * Returning false disables the new site created email.
+	 *
+	 * @since 5.3.0
+	 *
+	 * @param int    $blog_id Blog ID.
+	 * @param string $user_id User ID.
+	 * @param string $title   Site title.
+	 */
+	if ( ! apply_filters( 'wpmu_new_site_admin_notification', $blog_id, $user_id, $title ) ) {
+		return false;
+	}
+
+	$user = get_userdata( $user_id );
+
+	$switched_locale = switch_to_locale( get_user_locale( $user ) );
+
+	$message = sprintf(
+		/* translators: 1: user login, 2: site url, 3: site name/title */
+		__(
+			'New site created by %1$s
+Address: %2$s
+Name: %3$s'
+		),
+		$user->user_login,
+		get_site_url( $blog_id ),
+		wp_unslash( $title )
+	);
+
+	/**
+	 * Filters the content of the admin notification email.
+	 *
+	 * Content should be formatted for transmission via wp_mail().
+	 *
+	 * @since 5.3.0
+	 *
+	 * @param string $message Body of the email message.
+	 * @param int    $blog_id Site ID.
+	 * @param int    $user_id User ID.
+	 * @param string $title   Site title.
+	 */
+	$message = apply_filters( 'new_site_admin_notification_email', $message, $blog_id, $user_id, $title );
+	$admin_email = get_site_option( 'admin_email' );
+
+	if ( empty( $admin_email ) ) {
+		$admin_email = sanitize_email( 'support@' . $_SERVER['SERVER_NAME'] );
+	}
+	
+	$message_headers = sprintf(
+		'From: "%1$s" <%2$s>',
+		_x( 'Site Admin', 'email "From" field' ),
+		sanitize_email( $admin_email )
+	);
+	
+	$current_network = get_network();
+	if ( empty( $current_network->site_name ) ) {
+		$current_network->site_name = 'WordPress';
+	}
+	
+	$subject = sprintf(
+		/* translators: %s: network name */
+		__( '[%s] New Site Created' ),
+		$current_network->site_name
+	);
+	
+	/**
+	 * Filters the subject of the admin notification email.
+	 *
+	 * @since 5.3.0
+	 *
+	 * @param string $subject Subject of the email.
+	 */
+	$subject = apply_filters( 'new_site_admin_notification_subject', sprintf( $subject, $current_network->site_name, wp_unslash( $title ) ) );
+	wp_mail( $admin_email, wp_specialchars_decode( $subject ), $message, $message_headers );
+	
+	if ( $switched_locale ) {
+		restore_previous_locale();
+	}
+
+	return true;
+}
+
+/**
  * Notify a user that their account activation has been successful.
  *
  * Filter {@see 'wpmu_welcome_user_notification'} to disable or bypass.
