diff --git a/core/lib/Drupal/Core/Render/theme.api.php b/core/lib/Drupal/Core/Render/theme.api.php
index 44fcdd0cac..93b87749e3 100644
--- a/core/lib/Drupal/Core/Render/theme.api.php
+++ b/core/lib/Drupal/Core/Render/theme.api.php
@@ -618,6 +618,9 @@ function hook_preprocess_HOOK(&$variables) {
  * hook called (in this case 'node__article') is available in
  * $variables['theme_hook_original'].
  *
+ * Implementations of this hook must be placed in *.module files.
+ * Or make sure that hook implementation available at any given time.
+ *
  * @todo Add @code sample.
  *
  * @param array $variables
@@ -699,6 +702,9 @@ function hook_theme_suggestions_alter(array &$suggestions, array $variables, $ho
  * hook called (in this case 'node__article') is available in
  * $variables['theme_hook_original'].
  *
+ * Implementations of this hook must be placed in *.module files.
+ * Or make sure that hook implementation available at any given time.
+ *
  * @todo Add @code sample.
  *
  * @param array $suggestions
diff --git a/core/modules/search/search.module b/core/modules/search/search.module
index bf00878d39..cdcc3f377c 100644
--- a/core/modules/search/search.module
+++ b/core/modules/search/search.module
@@ -106,6 +106,13 @@ function search_theme() {
 }
 
 /**
+ * Implements hook_theme_suggestions_HOOK().
+ */
+function search_theme_suggestions_search_result(array $variables) {
+  return array('search_result__' . $variables['plugin_id']);
+}
+
+/**
  * Implements hook_preprocess_HOOK() for block templates.
  */
 function search_preprocess_block(&$variables) {
diff --git a/core/modules/search/search.pages.inc b/core/modules/search/search.pages.inc
index 9467dd8250..703b2ff550 100644
--- a/core/modules/search/search.pages.inc
+++ b/core/modules/search/search.pages.inc
@@ -9,13 +9,6 @@
 use Drupal\Core\Language\LanguageInterface;
 
 /**
- * Implements hook_theme_suggestions_HOOK().
- */
-function search_theme_suggestions_search_result(array $variables) {
-  return ['search_result__' . $variables['plugin_id']];
-}
-
-/**
  * Prepares variables for individual search result templates.
  *
  * Default template: search-result.html.twig
diff --git a/core/modules/views_ui/views_ui.module b/core/modules/views_ui/views_ui.module
index 15f85e3a02..5423f242b5 100644
--- a/core/modules/views_ui/views_ui.module
+++ b/core/modules/views_ui/views_ui.module
@@ -157,6 +157,13 @@ function views_ui_preprocess_views_view(&$variables) {
 }
 
 /**
+ * Implements hook_theme_suggestions_HOOK().
+ */
+function views_ui_theme_suggestions_views_ui_view_preview_section(array $variables) {
+  return array('views_ui_view_preview_section__' . $variables['section']);
+}
+
+/**
  * Returns contextual links for each handler of a certain section.
  *
  * @TODO
diff --git a/core/modules/views_ui/views_ui.theme.inc b/core/modules/views_ui/views_ui.theme.inc
index e6ef8756ff..d1aef4c46c 100644
--- a/core/modules/views_ui/views_ui.theme.inc
+++ b/core/modules/views_ui/views_ui.theme.inc
@@ -547,10 +547,3 @@ function template_preprocess_views_ui_view_preview_section(&$variables) {
     $variables['links'] = $build;
   }
 }
-
-/**
- * Implements hook_theme_suggestions_HOOK().
- */
-function views_ui_theme_suggestions_views_ui_view_preview_section(array $variables) {
-  return ['views_ui_view_preview_section__' . $variables['section']];
-}
