diff --git a/src/Entity/Index.php b/src/Entity/Index.php
index f942177..82a1ca8 100644
--- a/src/Entity/Index.php
+++ b/src/Entity/Index.php
@@ -966,6 +966,8 @@ class Index extends ConfigEntityBase implements IndexInterface {
       // This will cache the extracted fields so processors, etc., can retrieve
       // them directly.
       $items[$item_id]->getFields();
+
+      Cache::invalidateTags(array($item_id));
     }
 
     // Remember the items that were initially passed, to be able to determine
diff --git a/src/Plugin/views/row/SearchApiRow.php b/src/Plugin/views/row/SearchApiRow.php
index d7459e8..cd26cea 100644
--- a/src/Plugin/views/row/SearchApiRow.php
+++ b/src/Plugin/views/row/SearchApiRow.php
@@ -223,7 +223,11 @@ class SearchApiRow extends RowPluginBase {
     }
     try {
       $view_mode = $this->options['view_modes'][$datasource_id];
-      return $this->index->getDataSource($datasource_id)->viewItem($row->_item, $view_mode);
+
+      $renderArray = $this->index->getDataSource($datasource_id)->viewItem($row->_item, $view_mode);
+      $renderArray['#cache']['tags'][] = $row->search_api_id;
+
+      return $renderArray;
     }
     catch (SearchApiException $e) {
       watchdog_exception('search_api', $e);
