How to strip header tags & shortcodes from the_excerpt()

Remove Shortcodes

First, try this on your functions.php:

add_filter( 'get_the_excerpt', 'strip_shortcodes', 20 );

If it doesn’t work then try this edit.

echo strip_shortcodes( get_the_excerpt() );

In case the shortcode is not registered with WordPress function add_shortcode

add_filter( 'the_excerpt', 'remove_shortcodes_in_excerpt', 20 );

function remove_shortcodes_in_excerpt( $content){
    $content = strip_shortcodes($content);
    $tagnames = array('box', 'alert');  // add shortcode tag name
    $content = do_shortcodes_in_html_tags( $content, true, $tagnames );

    $pattern = get_shortcode_regex( $tagnames );
    $content = preg_replace_callback( "/$pattern/", 'strip_shortcode_tag', $content );
    return $content;
}

Remove Headings

Add this code to your functions.php

function wp_strip_header_tags( $text ) {

$raw_excerpt = $text;
if ( '' == $text ) {
    //Retrieve the post content.
    $text = get_the_content(''); 
    //remove shortcode tags from the given content.
    $text = strip_shortcodes( $text );
    $text = apply_filters('the_content', $text);
    $text = str_replace(']]>', ']]>', $text);
}
    $regex = '#(]*>)\s?(.*)?\s?()#';
    $text = preg_replace($regex,'', $text);

    /***Change the excerpt word count.***/
    $excerpt_word_count = 60; //WP default is 55
    $excerpt_length = apply_filters('excerpt_length', $excerpt_word_count);

    /*** Change the excerpt ending.***/
    $excerpt_end = '[...]'; //This is the WP default.
    $excerpt_more = apply_filters('excerpt_more', ' ' . $excerpt_end);

    $excerpt = wp_trim_words( $text, $excerpt_length, $excerpt_more );

    return apply_filters('wp_trim_excerpt', $excerpt, $raw_excerpt);
}
add_filter( 'get_the_excerpt', 'wp_strip_header_tags', 5);