Вы можете исключить блок из BigPipe, отключив плейсхолдер в сборке блока (предварительная обработка слишком запоздала).
/**
 * Реализует hook_block_build_BASE_BLOCK_ID_alter().
 */
function mymodule_block_build_example_block_alter(массив &$build, \Drupal\Core\Block\BlockPluginInterface $block) {
  // Отключить заполнение этого блока.
  $build['#create_placeholder'] = ЛОЖЬ;
}
Но если это один из блоков, всегда имеющих задержку, это может сделать весь модуль BigPipe бесполезным.
Вы можете решить смещение контента в CSS. Задержите или остановите рендеринг блока (в этом случае вы можете использовать предварительную обработку) и заполните пробел в частично загруженной странице с помощью CSS.
Или сделайте блок заголовка более детализированным. Когда все динамические части заполнены, остальная часть блока кэшируется и загружается вместе с начальной загрузкой страницы.
Пример блока:
  общедоступная функция сборки () {
   
    $сборка = [];
   
    $сборка[] = [
      '#markup' => '<p>Статическая часть блока, загружается вместе с начальной страницей.</p>',
    ];
    $сборка[] = [
      '#lazy_builder' => ['\Drupal\mymodule\LazyBuilders::getUser', []],
      '#cache' => ['contexts' => ['user']],
      // контексты user, session или max-age 0 автоматически замещаются
    ];
    вернуть $сборку;
  }
/src/LazyBuilders.php:
<?php
пространство имен Drupal\mymodule;
используйте Drupal\Core\Render\Element\RenderCallbackInterface;
класс LazyBuilders реализует RenderCallbackInterface {
  общедоступная статическая функция getUser() {
    возвращаться [
      '#markup' => \Drupal::currentUser()->getDisplayName(),
    ];
  }
}