What is the correct way to get the link url?
I find the best way to get a url especially when I'm using it in cases where I need to wrap custom html around it is to get the url object and then use the toString Method.

$node_field_link_url = $node_field_link-&gt;getUrl()-&gt;toString();


The getUrl() method of the LinkItem object returns a Url object. See https://api.drupal.org/api/drupal/core%21lib%21Drupal%21Core%21Url.php/class/Url/8.2.x 
And Url objects have a toString method that returns the string representation of that url.