diff --git src/wp-includes/rest-api/class-wp-rest-server.php src/wp-includes/rest-api/class-wp-rest-server.php
index ec8d2a0..f989194 100644
--- src/wp-includes/rest-api/class-wp-rest-server.php
+++ src/wp-includes/rest-api/class-wp-rest-server.php
@@ -544,12 +544,21 @@ class WP_REST_Server {
 
 		$embedded = array();
 
+		// Get link relationships to filter on.
+		$_embed = isset( $_GET['_embed'] ) ? array_filter( explode( ',', $_GET['_embed'] ) ) : false;
+		$filtered_rels = empty( $_embed ) ? false : $_embed;
+
 		foreach ( $data['_links'] as $rel => $links ) {
 			// Ignore links to self, for obvious reasons.
 			if ( 'self' === $rel ) {
 				continue;
 			}
 
+			// If filtered rels are specified and current $rel is not in the list, then continue.
+			if ( false !== $filtered_rels && ! in_array( $rel, $filtered_rels, true ) ) {
+				continue;
+			}
+
 			$embeds = array();
 
 			foreach ( $links as $item ) {
