Content editor creating blank paragraphs in spaces and creating &nbsp in the_excerpt

Judging from your site’s content and the comments, you may try using the following CODE in your theme’s functions.php file. It’ll remove empty <p>&nbsp;</p> tags from post content:

add_filter( 'the_content', 'wpse_257854_remove_empty_p', PHP_INT_MAX );
add_filter( 'the_excerpt', 'wpse_257854_remove_empty_p', PHP_INT_MAX );
function wpse_257854_remove_empty_p( $content ) {
    return str_ireplace( '<p>&nbsp;</p>', '', $content );
}

However, after it removes the empty <p>&nbsp;</p> tags, paragraphs in your site’s post content will collapse with each other. To maintain the visual gap between paragraphs, you may use the following CSS:

.conteudo-noticia p {
    padding-bottom: 15px;
}

If nbsp; within meta description tags are coming from content (or excerpt) & the plugin used to capture them are handling the content as it should (according to WordPress loop standard), then after using the above CODE, meta tags should be fixed as well.

Note: After making the above changes, please make sure you clear browser cache properly and clear any server cache (from cache plugin, web server etc.) if present before testing the result.

Update:

If you don’t want to control paragraph gap with CSS padding, then there is a slightly different CODE you may try:

add_filter( 'the_content', 'wpse_257854_remove_empty_p', PHP_INT_MAX );
add_filter( 'the_excerpt', 'wpse_257854_remove_empty_p', PHP_INT_MAX );
function wpse_257854_remove_empty_p( $content ) {
    return str_ireplace( '<p>&nbsp;</p>', '<br>', $content );
}

This CODE, instead of removing the empty p tags, replaces them with line breaks <br>. So this way you can control paragraph gaps from within the editor without having empty p tags with &nbsp;.