diff --git a/typo3/sysext/backend/Classes/Preview/StandardContentPreviewRenderer.php b/typo3/sysext/backend/Classes/Preview/StandardContentPreviewRenderer.php
index cba9fa6adb41b34237c2c2d71340cb6ae9d886d2..ad5429d9384d8ef458147a94d9b402e0cef949fe 100644
--- a/typo3/sysext/backend/Classes/Preview/StandardContentPreviewRenderer.php
+++ b/typo3/sysext/backend/Classes/Preview/StandardContentPreviewRenderer.php
@@ -51,6 +51,25 @@ class StandardContentPreviewRenderer implements PreviewRendererInterface, Logger
 {
     use LoggerAwareTrait;
 
+    /**
+     * Menu content types defined by TYPO3
+     *
+     * @var string[]
+     */
+    private const MENU_CONTENT_TYPES = [
+        'menu_abstract',
+        'menu_categorized_content',
+        'menu_categorized_pages',
+        'menu_pages',
+        'menu_recently_updated',
+        'menu_related_pages',
+        'menu_section',
+        'menu_section_pages',
+        'menu_sitemap',
+        'menu_sitemap_pages',
+        'menu_subpages',
+    ];
+
     public function renderPageModulePreviewHeader(GridColumnItem $item): string
     {
         $record = $item->getRecord();
@@ -127,20 +146,6 @@ class StandardContentPreviewRenderer implements PreviewRendererInterface, Logger
                     $out .= $this->linkEditContent($this->getThumbCodeUnlinked($record, 'tt_content', 'media'), $record) . '<br />';
                 }
                 break;
-            case 'menu':
-                $contentType = $contentTypeLabels[$record['CType']];
-                $out .= $this->linkEditContent('<strong>' . htmlspecialchars($contentType) . '</strong>', $record) . '<br />';
-                // Add Menu Type
-                $menuTypeLabel = $languageService->sL(
-                    BackendUtility::getLabelFromItemListMerged($record['pid'], 'tt_content', 'menu_type', $record['menu_type'])
-                );
-                $menuTypeLabel = $menuTypeLabel ?: 'invalid menu type';
-                $out .= $this->linkEditContent(htmlspecialchars($menuTypeLabel), $record);
-                if ($record['menu_type'] !== '2' && ($record['pages'] || $record['selected_categories'])) {
-                    // Show pages if menu type is not "Sitemap"
-                    $out .= ':' . $this->linkEditContent($this->generateListForCTypeMenu($record), $record) . '<br />';
-                }
-                break;
             case 'shortcut':
                 if (!empty($record['records'])) {
                     $shortcutContent = [];
@@ -185,7 +190,7 @@ class StandardContentPreviewRenderer implements PreviewRendererInterface, Logger
                     if (!empty($label)) {
                         $out .= $this->linkEditContent('<strong>' . htmlspecialchars($languageService->sL($label)) . '</strong>', $record) . '<br />';
                     } else {
-                        $message = sprintf($languageService->sL('LLL:EXT:lang/locallang_core.xlf:labels.noMatchingValue'), $record['list_type']);
+                        $message = sprintf($languageService->sL('LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.noMatchingValue'), $record['list_type']);
                         $out .= '<span class="label label-warning">' . htmlspecialchars($message) . '</span>';
                     }
                 } elseif (!empty($record['select_key'])) {
@@ -197,22 +202,30 @@ class StandardContentPreviewRenderer implements PreviewRendererInterface, Logger
                 $out .= htmlspecialchars($languageService->sL(BackendUtility::getLabelFromItemlist('tt_content', 'pages', $record['pages']))) . '<br />';
                 break;
             default:
-                $contentType = $contentTypeLabels[$record['CType']];
-
-                if (isset($contentType)) {
-                    $out .= $this->linkEditContent('<strong>' . htmlspecialchars($contentType) . '</strong>', $record) . '<br />';
-                    if ($record['bodytext']) {
-                        $out .= $this->linkEditContent($this->renderText($record['bodytext']), $record) . '<br />';
-                    }
-                    if ($record['image']) {
-                        $out .= $this->linkEditContent($this->getThumbCodeUnlinked($record, 'tt_content', 'image'), $record) . '<br />';
-                    }
-                } else {
+                $contentTypeLabel = (string)($contentTypeLabels[$record['CType']] ?? '');
+                if ($contentTypeLabel === '') {
                     $message = sprintf(
-                        $languageService->sL('LLL:EXT:lang/locallang_core.xlf:labels.noMatchingValue'),
+                        $languageService->sL('LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.noMatchingValue'),
                         $record['CType']
                     );
                     $out .= '<span class="label label-warning">' . htmlspecialchars($message) . '</span>';
+                    break;
+                }
+                // Handle menu content types
+                if (in_array($record['CType'], self::MENU_CONTENT_TYPES, true)) {
+                    $out .= $this->linkEditContent('<strong>' . htmlspecialchars($contentTypeLabel) . '</strong>', $record);
+                    if ($record['CType'] !== 'menu_sitemap' && (($record['pages'] ?? false) || ($record['selected_categories'] ?? false))) {
+                        // Show pages/categories if menu type is not "Sitemap"
+                        $out .= ':' . $this->linkEditContent($this->generateListForMenuContentTypes($record), $record) . '<br />';
+                    }
+                    break;
+                }
+                $out .= $this->linkEditContent('<strong>' . htmlspecialchars($contentTypeLabel) . '</strong>', $record) . '<br />';
+                if ($record['bodytext']) {
+                    $out .= $this->linkEditContent($this->renderText($record['bodytext']), $record) . '<br />';
+                }
+                if ($record['image']) {
+                    $out .= $this->linkEditContent($this->getThumbCodeUnlinked($record, 'tt_content', 'image'), $record) . '<br />';
                 }
         }
 
@@ -357,17 +370,17 @@ class StandardContentPreviewRenderer implements PreviewRendererInterface, Logger
     }
 
     /**
-     * Generates a list of selected pages or categories for the CType menu
+     * Generates a list of selected pages or categories for the menu content types
      *
      * @param array $record row from pages
      * @return string
      */
-    protected function generateListForCTypeMenu(array $record): string
+    protected function generateListForMenuContentTypes(array $record): string
     {
         $table = 'pages';
         $field = 'pages';
         // get categories instead of pages
-        if (strpos($record['menu_type'], 'categorized_') !== false) {
+        if (strpos($record['CType'], 'menu_categorized') !== false) {
             $table = 'sys_category';
             $field = 'selected_categories';
         }