Ghost CMS opens every external URL in the same page by default. This behavior distracts the user and increases the bounce rate. While it seems that there is no built-in option in Ghost to open external links in a new tab, we can fix this by injecting a short snippet of code.

<script>
var links = document.querySelectorAll('a');
for (var i = 0, length = links.length; i < length; i++) {
  if (links[i].hostname != window.location.hostname) {
    links[i].target = '_blank';
    links[i].rel = 'noopener';
  }
}
</script>
Paste this code in Ghost Settings → Code injection → Site Footer.

How it works

<script>

// Contain every link in an array.
var links = document.querySelectorAll('a');

// For every links,
for (var i = 0, length = links.length; i < length; i++) {

  // if the link's hostname is different from this Ghost's hostname,
  // i.e. If the link is an external link,
  if (links[i].hostname != window.location.hostname) {

    // change the target and rel value as the following.
    links[i].target = '_blank';
    links[i].rel = 'noopener';

  }
}

</script>

Changing the target to _blank will do the job. However, this will run the external link in the same Ghost process, leading to possible performance drops and security risks. We can prevent this by setting the rel value as noopener.

While modifying every link with JavaScript whenever accessing the page might slow down your Ghost CMS, the performance impact will be ignorable unless the page has a considerable number of external links. Until Ghost provides us a default option to open links in a new tab, this trick will do its job.

Additional readings