How to get url image page the right way?

Im guessing it is because you are using

echo the_post_thumbnail_url(array(300, 150));

instead of

the_post_thumbnail_url(array(300, 150));

the_post_thumbnail_url echos the output for you.

Another observation, the the_post_thumbnail_url uses the post data that is setup using setup_postdata, so there is no need for these two lines:

$thumb_id = get_post_thumbnail_id($post, 'news-image');
$url = wp_get_attachment_thumb_url($thumb_id, '300, 300');