diff --git a/core/modules/serialization/src/Normalizer/EntityReferenceFieldItemNormalizer.php b/core/modules/serialization/src/Normalizer/EntityReferenceFieldItemNormalizer.php
index 846d883..ad5afce 100644
--- a/core/modules/serialization/src/Normalizer/EntityReferenceFieldItemNormalizer.php
+++ b/core/modules/serialization/src/Normalizer/EntityReferenceFieldItemNormalizer.php
@@ -27,12 +27,17 @@ class EntityReferenceFieldItemNormalizer extends ComplexDataNormalizer {
   public function normalize($field_item, $format = NULL, array $context = []) {
     $values = parent::normalize($field_item, $format, $context);
 
-    // Add a 'url' value if there is a reference and a canonical URL. Hard code
-    // 'canonical' here as config entities override the default $rel parameter
-    // value to 'edit-form.
     /** @var \Drupal\Core\Entity\EntityInterface $entity */
-    if (($entity = $field_item->get('entity')->getValue()) && ($url = $entity->url('canonical'))) {
-      $values['url'] = $url;
+    if ($entity = $field_item->get('entity')->getValue()) {
+      // Add the target entity UUID to the normalized output values.
+      $values['target_uuid'] = $entity->uuid();
+
+      // Add a 'url' value if there is a reference and a canonical URL. Hard
+      // code 'canonical' here as config entities override the default $rel
+      // parameter value to 'edit-form.
+      if ($url = $entity->url('canonical')) {
+        $values['url'] = $url;
+      }
     }
 
     return $values;
diff --git a/core/modules/serialization/src/Tests/EntitySerializationTest.php b/core/modules/serialization/src/Tests/EntitySerializationTest.php
index 3a9daf8..dbf858c 100644
--- a/core/modules/serialization/src/Tests/EntitySerializationTest.php
+++ b/core/modules/serialization/src/Tests/EntitySerializationTest.php
@@ -117,6 +117,7 @@ public function testNormalize() {
       'user_id' => array(
         array(
           'target_id' => $this->user->id(),
+          'target_uuid' => $this->user->uuid(),
           'url' => $this->user->url(),
         ),
       ),
@@ -191,7 +192,7 @@ public function testSerialize() {
       'name' => '<name><value>' . $this->values['name'] . '</value></name>',
       'type' => '<type><value>entity_test_mulrev</value></type>',
       'created' => '<created><value>' . $this->entity->created->value . '</value></created>',
-      'user_id' => '<user_id><target_id>' . $this->user->id() . '</target_id><url>' . $this->user->url() . '</url></user_id>',
+      'user_id' => '<user_id><target_id>' . $this->user->id() . '</target_id><target_uuid>' . $this->user->uuid() . '</target_uuid><url>' . $this->user->url() . '</url></user_id>',
       'revision_id' => '<revision_id><value>' . $this->entity->getRevisionId() . '</value></revision_id>',
       'default_langcode' => '<default_langcode><value>1</value></default_langcode>',
       'field_test_text' => '<field_test_text><value>' . $this->values['field_test_text']['value'] . '</value><format>' . $this->values['field_test_text']['format'] . '</format></field_test_text>',
