Index: src/wp-includes/general-template.php
===================================================================
--- src/wp-includes/general-template.php	(revision 48036)
+++ src/wp-includes/general-template.php	(working copy)
@@ -940,9 +940,10 @@
 }
 
 /**
- * Returns a custom logo, linked to home.
+ * Returns a custom logo, linked to home when on another page.
  *
  * @since 4.5.0
+ * @since 5.5.0 Removed the link on the home page.
  *
  * @param int $blog_id Optional. ID of the blog in question. Default is the ID of the current blog.
  * @return string Custom logo markup.
@@ -965,8 +966,8 @@
 		);
 
 		/*
-		 * If the logo alt attribute is empty, get the site title and explicitly
-		 * pass it to the attributes used by wp_get_attachment_image().
+		 * If the logo alt attribute is empty, get the site title and explicitly pass it
+		 * to the attributes used by wp_get_attachment_image().
 		 */
 		$image_alt = get_post_meta( $custom_logo_id, '_wp_attachment_image_alt', true );
 		if ( empty( $image_alt ) ) {
@@ -974,14 +975,24 @@
 		}
 
 		/*
-		 * If the alt attribute is not empty, there's no need to explicitly pass
-		 * it because wp_get_attachment_image() already adds the alt attribute.
+		 * If the alt attribute is not empty, there's no need to explicitly pass it
+		 * because wp_get_attachment_image() already adds the alt attribute.
 		 */
-		$html = sprintf(
-			'<a href="%1$s" class="custom-logo-link" rel="home">%2$s</a>',
-			esc_url( home_url( '/' ) ),
-			wp_get_attachment_image( $custom_logo_id, 'full', false, $custom_logo_attr )
-		);
+		$image = wp_get_attachment_image( $custom_logo_id, 'full', false, $custom_logo_attr );
+
+		if ( is_front_page() ) {
+			// If on the home page, don't link the logo to home.
+			$html = sprintf(
+				'<span class="custom-logo-link">%1$s</span>',
+				$image
+			);
+		} else {
+			$html = sprintf(
+				'<a href="%1$s" class="custom-logo-link" rel="home">%2$s</a>',
+				esc_url( home_url( '/' ) ),
+				$image
+			);
+		}
 	} elseif ( is_customize_preview() ) {
 		// If no logo is set but we're in the Customizer, leave a placeholder (needed for the live preview).
 		$html = sprintf(
@@ -1007,7 +1018,7 @@
 }
 
 /**
- * Displays a custom logo, linked to home.
+ * Displays a custom logo, linked to home when on another page.
  *
  * @since 4.5.0
  *
