diff --git a/config/schema/search_api.processor.schema.yml b/config/schema/search_api.processor.schema.yml
index f0fb9a1..56af6dd 100644
--- a/config/schema/search_api.processor.schema.yml
+++ b/config/schema/search_api.processor.schema.yml
@@ -146,10 +146,13 @@ search_api.processor.plugin.rendered_item:
     # @todo Verify "sequence" is right here once schemas are really used.
     view_mode:
       type: sequence
-      label: 'The selected view modes'
+      label: 'The selected view modes for each datasource, by bundle'
       sequence:
-        type: string
-        label: 'The view mode used to render the entity'
+        type: sequence
+        label: 'The selected view modes for the datasource'
+        sequence:
+          type: string
+          label: 'The view mode used to render the entity for the specified bundle'
     roles:
       type: sequence
       label: 'The selected roles'
diff --git a/src/Plugin/search_api/processor/RenderedItem.php b/src/Plugin/search_api/processor/RenderedItem.php
index f5c715c..c52c373 100644
--- a/src/Plugin/search_api/processor/RenderedItem.php
+++ b/src/Plugin/search_api/processor/RenderedItem.php
@@ -124,30 +124,38 @@ class RenderedItem extends ProcessorPluginBase {
     $form['roles'] = array(
       '#type' => 'select',
       '#title' => $this->t('User roles'),
-      '#description' => $this->t('The data will be processed as seen by a user with the selected roles.'),
+      '#description' => $this->t('Your item will be rendered as seen by a user with the selected roles. We recommend to leverage "Anonymous" to prevent data leaking out to unauthorized roles.'),
       '#options' => user_role_names(),
       '#multiple' => TRUE,
       '#default_value' => $this->configuration['roles'],
       '#required' => TRUE,
     );
 
+    $form['view_mode'] = array(
+      '#type' => 'item',
+      '#description' => 'The item can be rendered using an existing view mode. Drupal ships with a "search index" view mode. We recommend enabling and utilising the "search index" view mode for your bundle.',
+    );
+
     foreach ($this->index->getDatasources() as $datasource_id => $datasource) {
-      $view_modes = $datasource->getViewModes();
-      if (count($view_modes) > 1) {
-        $form['view_mode'][$datasource_id] = array(
-          '#type' => 'select',
-          '#title' => $this->t('View mode for data source %datasource', array('%datasource' => $datasource->label())),
-          '#options' => $view_modes,
-        );
-        if (isset($this->configuration['view_mode'][$datasource_id])) {
-          $form['view_mode'][$datasource_id]['#default_value'] = $this->configuration['view_mode'][$datasource_id];
+      $bundles = $datasource->getBundles();
+      foreach ($bundles as $bundle_id => $bundle) {
+        $view_modes = $datasource->getViewModes($bundle);
+        if (count($view_modes) > 1) {
+          $form['view_mode'][$datasource_id][$bundle_id] = array(
+            '#type' => 'select',
+            '#title' => $this->t('View mode for %datasource » %bundle', array('%datasource' => $datasource->label(), '%bundle' => $bundle)),
+            '#options' => $view_modes,
+          );
+          if (isset($this->configuration['view_mode'][$datasource_id][$bundle_id])) {
+            $form['view_mode'][$datasource_id][$bundle_id]['#default_value'] = $this->configuration['view_mode'][$datasource_id][$bundle_id];
+          }
+        }
+        elseif ($view_modes) {
+          $form['view_mode'][$datasource_id][$bundle_id] = array(
+            '#type' => 'value',
+            '#value' => key($view_modes),
+          );
         }
-      }
-      elseif ($view_modes) {
-        $form['view_mode'][$datasource_id] = array(
-          '#type' => 'value',
-          '#value' => key($view_modes),
-        );
       }
     }
 
diff --git a/src/Tests/Processor/ProcessorIntegrationTest.php b/src/Tests/Processor/ProcessorIntegrationTest.php
index 893ddc1..5da7b34 100644
--- a/src/Tests/Processor/ProcessorIntegrationTest.php
+++ b/src/Tests/Processor/ProcessorIntegrationTest.php
@@ -151,7 +151,8 @@ class ProcessorIntegrationTest extends WebTestBase {
 
     $edit = array(
       'processors[rendered_item][settings][roles][]' => 'authenticated',
-      'processors[rendered_item][settings][view_mode][entity:node]' => 'default',
+      'processors[rendered_item][settings][view_mode][entity:node][page]' => 'default',
+      'processors[rendered_item][settings][view_mode][entity:node][article]' => 'default',
     );
     $this->editSettingsForm($edit, 'rendered_item');
   }
