diff --git a/core/modules/node/src/Plugin/Search/NodeSearch.php b/core/modules/node/src/Plugin/Search/NodeSearch.php
index dd6e6b7..87fc8e5 100644
--- a/core/modules/node/src/Plugin/Search/NodeSearch.php
+++ b/core/modules/node/src/Plugin/Search/NodeSearch.php
@@ -21,6 +21,7 @@
 use Drupal\Core\Session\AccountInterface;
 use Drupal\Core\Access\AccessibleInterface;
 use Drupal\Core\Database\Query\Condition;
+use Drupal\Core\Render\RendererInterface;
 use Drupal\node\NodeInterface;
 use Drupal\search\Plugin\ConfigurableSearchPluginBase;
 use Drupal\search\Plugin\SearchIndexingInterface;
@@ -80,6 +81,13 @@ class NodeSearch extends ConfigurableSearchPluginBase implements AccessibleInter
   protected $account;
 
   /**
+   * The Renderer service to format the username and node.
+   *
+   * @var \Drupal\Core\Render\RendererInterface
+   */
+  protected $renderer;
+
+  /**
    * An array of additional rankings from hook_ranking().
    *
    * @var array
@@ -119,11 +127,30 @@ static public function create(ContainerInterface $container, array $configuratio
       $container->get('module_handler'),
       $container->get('config.factory')->get('search.settings'),
       $container->get('language_manager'),
+      $container->get('renderer'),
       $container->get('current_user')
     );
   }
 
   /**
+   * Removes the submitted by information from the build array.
+   *
+   * This information is being removed from the rendered node that is used to
+   * build the search result snippet.
+   *
+   * @param array $build
+   *   The build array.
+   *
+   * @return array
+   *   The modified build array.
+   */
+  static public function removeSubmittedInfo(array $build) {
+    unset($build['created']);
+    unset($build['uid']);
+    return $build;
+  }
+
+  /**
    * Constructs a \Drupal\node\Plugin\Search\NodeSearch object.
    *
    * @param array $configuration
@@ -142,15 +169,18 @@ static public function create(ContainerInterface $container, array $configuratio
    *   A config object for 'search.settings'.
    * @param \Drupal\Core\Language\LanguageManagerInterface $language_manager
    *   The language manager.
+   * @param \Drupal\Core\Render\RendererInterface $renderer
+   *   The renderer to render the search snippet.
    * @param \Drupal\Core\Session\AccountInterface $account
    *   The $account object to use for checking for access to advanced search.
    */
-  public function __construct(array $configuration, $plugin_id, $plugin_definition, Connection $database, EntityManagerInterface $entity_manager, ModuleHandlerInterface $module_handler, Config $search_settings, LanguageManagerInterface $language_manager, AccountInterface $account = NULL) {
+  public function __construct(array $configuration, $plugin_id, $plugin_definition, Connection $database, EntityManagerInterface $entity_manager, ModuleHandlerInterface $module_handler, Config $search_settings, LanguageManagerInterface $language_manager, RendererInterface $renderer, AccountInterface $account = NULL) {
     $this->database = $database;
     $this->entityManager = $entity_manager;
     $this->moduleHandler = $module_handler;
     $this->searchSettings = $search_settings;
     $this->languageManager = $language_manager;
+    $this->renderer = $renderer;
     $this->account = $account;
     parent::__construct($configuration, $plugin_id, $plugin_definition);
   }
@@ -310,11 +340,16 @@ protected function prepareResults(StatementInterface $found) {
       /** @var \Drupal\node\NodeInterface $node */
       $node = $node_storage->load($item->sid)->getTranslation($item->langcode);
       $build = $node_render->view($node, 'search_result', $item->langcode);
+
+      /** @var \Drupal\node\NodeTypeInterface $type*/
+      $type = $this->entityManager->getStorage('node_type')->load($node->bundle());
+
       unset($build['#theme']);
+      $build['#pre_render'][] = '\Drupal\node\Plugin\Search\NodeSearch::removeSubmittedInfo';
 
       // Fetch comment count for snippet.
-      $node->rendered = SafeMarkup::set(
-        drupal_render($build) . ' ' .
+      $rendered = SafeMarkup::set(
+        $this->renderer->render($build) . ' ' .
         SafeMarkup::escape($this->moduleHandler->invoke('comment', 'node_update_index', array($node, $item->langcode)))
       );
 
@@ -325,18 +360,27 @@ protected function prepareResults(StatementInterface $found) {
         '#theme' => 'username',
         '#account' => $node->getOwner(),
       );
-      $results[] = array(
+
+      $result = array(
         'link' => $node->url('canonical', array('absolute' => TRUE, 'language' => $language)),
-        'type' => SafeMarkup::checkPlain($this->entityManager->getStorage('node_type')->load($node->bundle())->label()),
+        'type' => SafeMarkup::checkPlain($type->label()),
         'title' => $node->label(),
-        'user' => drupal_render($username),
-        'date' => $node->getChangedTime(),
         'node' => $node,
         'extra' => $extra,
         'score' => $item->calculated_score,
-        'snippet' => search_excerpt($keys, $node->rendered, $item->langcode),
+        'snippet' => search_excerpt($keys, $rendered, $item->langcode),
         'langcode' => $node->language()->getId(),
       );
+
+      if ($type->displaySubmitted()) {
+        $result += array(
+          'user' => $this->renderer->render($username),
+          'date' => $node->getChangedTime(),
+        );
+      }
+
+      $results[] = $result;
+
     }
     return $results;
   }
@@ -400,9 +444,9 @@ protected function indexNode(NodeInterface $node) {
       $build = $node_render->view($node, 'search_index', $language->getId());
 
       unset($build['#theme']);
-      $node->rendered = drupal_render($build);
+      $rendered = $this->renderer->render($build);
 
-      $text = '<h1>' . SafeMarkup::checkPlain($node->label($language->getId())) . '</h1>' . $node->rendered;
+      $text = '<h1>' . SafeMarkup::checkPlain($node->label($language->getId())) . '</h1>' . $rendered;
 
       // Fetch extra data normally not visible.
       $extra = $this->moduleHandler->invokeAll('node_update_index', array($node, $language->getId()));
diff --git a/core/modules/search/src/Tests/SearchExactTest.php b/core/modules/search/src/Tests/SearchExactTest.php
index 60855bb..74c9468 100644
--- a/core/modules/search/src/Tests/SearchExactTest.php
+++ b/core/modules/search/src/Tests/SearchExactTest.php
@@ -18,7 +18,8 @@ class SearchExactTest extends SearchTestBase {
    */
   function testExactQuery() {
     // Login with sufficient privileges.
-    $this->drupalLogin($this->drupalCreateUser(array('create page content', 'search content')));
+    $user = $this->drupalCreateUser(array('create page content', 'search content'));
+    $this->drupalLogin($user);
 
     $settings = array(
       'type' => 'page',
@@ -34,6 +35,9 @@ function testExactQuery() {
       $settings['body'] = array(array('value' => 'love cheesy pizza'));
       $this->drupalCreateNode($settings);
     }
+    // Create another node and save it for later.
+    $settings['body'] = array(array('value' => 'Druplicon'));
+    $node = $this->drupalCreateNode($settings);
 
     // Update the search index.
     $this->container->get('plugin.manager.search')->createInstance('node_search')->updateIndex();
@@ -55,5 +59,25 @@ function testExactQuery() {
     $this->drupalPostForm('search/node', $edit, t('Search'));
     $this->assertLinkByHref('page=1', 0, '2nd page link is found for exact phrase search.');
     $this->assertNoLinkByHref('page=2', '3rd page link is not found for exact phrase search.');
+
+    // Check that with post settings turned on the post information is displayed.
+    $node_type_config = \Drupal::configFactory()->getEditable('node.type.page');
+    $node_type_config->set('display_submitted', TRUE);
+    $node_type_config->save();
+
+    $edit = array('keys' => 'Druplicon');
+    $this->drupalPostForm('search/node', $edit, t('Search'));
+    $this->assertText($user->getUsername(), 'Basic page node displays author name when post settings are on.');
+    $this->assertText(format_date($node->getChangedTime(), 'short'), 'Basic page node displays post date when post settings are on.');
+
+    // Check that with post settings turned off the user and changed date
+    // information is not displayed.
+    $node_type_config->set('display_submitted', FALSE);
+    $node_type_config->save();
+    $edit = array('keys' => 'Druplicon');
+    $this->drupalPostForm('search/node', $edit, t('Search'));
+    $this->assertNoText($user->getUsername(), 'Basic page node does not display author name when post settings are off.');
+    $this->assertNoText(format_date($node->getChangedTime(), 'short'), 'Basic page node does not display post date when post settings are off.');
+
   }
 }
