Add new column "Block description" on block layout page I need to add a new column called Block Short Description on Block layout under /admin/structure/block. 

Can anyone let me know how to achieve it?

I have Attached screenshot for reference.
That's a form. Themed as table. So I managed to do what you want via hook_form_FORM_ID_alter.

Thing is, I can't find the block description or admin label inside the block entity. So that's left. I hope you can find a way or maybe you can specify what "Block Short Description" is supposed to be.

/**
 * Implements hook_form_FORM_ID_alter().
 */
function MYMODULE_form_block_admin_display_form_alter(&amp;$form, \Drupal\Core\Form\FormStateInterface $form_state, $form_id) {

  // Add header column.
  array_splice($form['blocks']['#header'], 1, 0, 'Description');

  // Go through all blocks.
  foreach ($form['blocks'] as $bid =&gt; $block) {

    // Skip non-block elements (like '#header' or 'region-name').
    if ($bid[0] != '#' &amp;&amp; !strpos($bid, '-')) {

      // Load block.
      $entity = \Drupal\block\Entity\Block::load($bid);

      // Load description.
      // ksm($entity);
      // Can't find one. Take the label for now. Let OP figure this out themselves.
      $description = $entity-&gt;label();

      // Add description column to row.
      // @see https://stackoverflow.com/a/3354804/2199525
      $array = $form['blocks'][$bid];
      $form['blocks'][$bid] = array_slice($array, 0, 2, TRUE) +
        ['description' =&gt; ['#markup' =&gt; $description]] +
        array_slice($array, 2, count($array) - 1, TRUE);
    }
  }
}






Answer updated to display content type restrictions.

/**
 * Implements hook_form_FORM_ID_alter().
 */
function MYMODULE_form_block_admin_display_form_alter(&amp;$form, \Drupal\Core\Form\FormStateInterface $form_state, $form_id) {

  // Add header column.
  array_splice($form['blocks']['#header'], 1, 0, 'Description');

  // Go through all blocks.
  foreach ($form['blocks'] as $bid =&gt; $block) {

    // Skip non-block elements (like '#header' or 'region-name').
    if ($bid[0] != '#' &amp;&amp; !strpos($bid, '-')) {

      // Load block.
      $entity = \Drupal\block\Entity\Block::load($bid);

      // Load visibility settings.
      $conditions = $entity-&gt;getVisibilityConditions()-&gt;getConfiguration();

      // Load content types.
      $types = [];
      if ($node_types = isset($conditions['node_type']['bundles']) ? $conditions['node_type']['bundles'] : FALSE) {
        $node_types = Drupal\node\Entity\NodeType::loadMultiple($node_types);
        foreach ($node_types as $node_type) {
          $types[] = $node_type-&gt;label();
        }
      }

      // Set description.
      $description = 'Content types: ';
      if (!empty($types)) {
        $description .= implode(', ', $types);
      }
      else {
        $description = '- no content type restrictions -';
      }

      // Add description column to row.
      // @see https://stackoverflow.com/a/3354804/2199525
      $array = $form['blocks'][$bid];
      $form['blocks'][$bid] = array_slice($array, 0, 2, TRUE) +
        ['description' =&gt; ['#markup' =&gt; $description]] +
        array_slice($array, 2, count($array) - 1, TRUE);
    }
  }
}