diff -u b/src/Plugin/search_api/processor/Highlight.php b/src/Plugin/search_api/processor/Highlight.php
--- b/src/Plugin/search_api/processor/Highlight.php
+++ b/src/Plugin/search_api/processor/Highlight.php
@@ -247,8 +247,8 @@
       return;
     }
 
+    // Only return an excerpt on an empty keyword if requested by configuration.
     $keys = $this->getKeywords($query);
-    // Do not return an excerpt on an empty keyword if not requested by configuration.
     $excerpt_always = $this->configuration['excerpt_always'];
     if (!$excerpt_always && !$keys) {
       return;
diff -u b/tests/search_api_test_excerpt/config/install/views.view.search_api_test_search_excerpt.yml b/tests/search_api_test_excerpt/config/install/views.view.search_api_test_search_excerpt.yml
--- b/tests/search_api_test_excerpt/config/install/views.view.search_api_test_search_excerpt.yml
+++ b/tests/search_api_test_excerpt/config/install/views.view.search_api_test_search_excerpt.yml
@@ -1,5 +1,3 @@
-uuid: 054cc819-64f3-43fa-8355-80b49b4db532
-langcode: en
 status: true
 dependencies:
   config:
@@ -46,8 +44,18 @@
           offset: 0
       style:
         type: default
+        options:
+          grouping: {  }
+          row_class: ''
+          default_row_class: true
       row:
         type: fields
+        options:
+          default_field_elements: true
+          inline:
+            search_api_excerpt: search_api_excerpt
+          separator: ''
+          hide_empty: false
       fields:
         id:
           table: search_api_index_database_search_index
@@ -136,7 +144,7 @@
           relationship: none
           group_type: group
           admin_label: ''
-          label: ''
+          label: Excerpt_label
           exclude: false
           alter:
             alter_text: false
@@ -166,7 +174,7 @@
             preserve_tags: ''
             html: false
           element_type: ''
-          element_class: 'excerpt'
+          element_class: excerpt
           element_label_type: ''
           element_label_class: ''
           element_label_colon: false
@@ -174,7 +182,7 @@
           element_wrapper_class: ''
           element_default_classes: true
           empty: ''
-          hide_empty: false
+          hide_empty: true
           empty_zero: false
           hide_alter_empty: true
           link_to_item: false
diff -u b/tests/src/Functional/EmptyQueryStringExcerptTest.php b/tests/src/Functional/EmptyQueryStringExcerptTest.php
--- b/tests/src/Functional/EmptyQueryStringExcerptTest.php
+++ b/tests/src/Functional/EmptyQueryStringExcerptTest.php
@@ -76,29 +76,32 @@
    * Tests the functionality with excerpt_always disabled.
    */
   public function testExcerptAlwaysDisabled() {
-    // Ensure that 'excerpt_always' is off.
+    // Ensure that 'excerpt_always' is off and highlight is on.
     $this->drupalGet('admin/config/search/search-api/index/' . $this->index->id() . '/processors');
     $editForm = 'admin/config/search/search-api/index/' . $this->index->id() . '/processors';
     $form = [
-      'status[highlight]' => 0,
+      'status[highlight]' => 1,
       'processors[highlight][settings][excerpt_always]' => 0,
     ];
     $this->drupalPostForm($editForm, $form, 'Save');
 
     $this->index->indexItems();
-    $this->drupalGet('admin/config/search/search-api/index/' . $this->indexId);
+    $this->drupalGet('admin/config/search/search-api/index/' . $this->index->id());
 
     // Get the output of the view created in search_api_test_excerpt module.
     $this->drupalGet('search-api-test-search-excerpt');
 
-    // The text is one of the body text from ExampleContentTrait.
-    $this->assertSession()->pageTextNotContains('bar test casE');
+    // The text is label field in the view that is hide if the field
+    // doesn't exist. The Excerpt value without any query string is always
+    // "..." and is a bad string to search.
+    $this->assertSession()->pageTextNotContains('Excerpt_label');
   }
 
   /**
    * Tests the functionality with excerpt_always enabled.
    */
   public function testExcerptAlwaysEnabled() {
+
     // Set the 'excerpt_always' setting.
     $this->drupalGet('admin/config/search/search-api/index/' . $this->index->id() . '/processors');
     $editForm = 'admin/config/search/search-api/index/' . $this->index->id() . '/processors';
@@ -111,11 +114,13 @@
     $this->index->indexItems();
-    $this->drupalGet('admin/config/search/search-api/index/' . $this->indexId);
+    $this->drupalGet('admin/config/search/search-api/index/' . $this->index->id());
 
     // Get the output of the view created in search_api_test_excerpt module.
     $this->drupalGet('search-api-test-search-excerpt');
 
-    // The text is one of the body text from ExampleContentTrait.
-    $this->assertSession()->pageTextContains('bar test casE');
+    // The text is thle label field in the view that is hide if the field
+    // doesn't exist. The Excerpt value without any query string is always
+    // "..." and is a bad string to search.
+    $this->assertSession()->pageTextContains('Excerpt_label');
   }
-  
+
 }
