There are links, buttons, images and much more that directs users to new pages.
In my opinion, it should always stay in the same tab unless it's a PDF or download item. But when is it acceptable to open things in a new tab?
Open a new tab when you leave the basic navigational structure of your website.
This is a very "open" rule, since a lot of minor things can take you away from said structure, but bear with me.
Always allow a user to navigate to anywhere on your site. Every page you show should have some way to escape the current funnel, and switch to a different one. Even if it's a link all the way back to the homepage or app dashboard.
This allows users to change their minds at any point in time. (spoiler alert: users change their minds all the time!)
Loss of control
If you think of your navigation that way, you should be able to identify where users will lose that control.
Any time "the way back" disappears, you should allow users to come back by just clicking the other tab, or closing the new window. This is safer than relying on a back button to be able to do the job.
I think the aforementioned "back" button is a great analogy. Your site's navigational structure is as much an anchor as the back button is. It's there on every page, because the goals of your users change all the time.
And the same rule that applies to the back button should apply to the main navigation of your website: don't break it.
The decision to open links in new windows or not depends on the given site and the preferences of its visitors. Visitors to the sites with heavy linking are more willing to have links opened in new windows then open dozens of links in new windows manually. Visitors of less-heavy-linkage-sites are more likely to open some particular link in new window to remain on the site and continue to browse through it afterward. However, this is not true.
From the usability point of view the decision to enforce opening links in new windows violates one of the fundamental principles of the user interface design: users should always be in control of the interface they are interacting with. Leading user interface and usability researchers such as
claim that a user-friendly and effective user interface places users in control of the application they are using.
It is important that users are placed in control of the user interface they are using. Since users expect the link to be opened in the same window, set your links to open in the same window. Don't force a new window upon users unless there's a very good reason to do so. For the latter purpose, consider opening links in new windows if the link provides assistance or help, if it may interrupt an ongoing process or it leads to a non-html-document. Allow users to select how the links should be opened on a given web-site. Opening links in the same windows the lesser of two evils. And if users don't know how to do it quickly, tell them explicitly — they will be grateful for your help.
The most common situations when I chose to make a link open in a new tab are when I am taking the user away from my site to another site but I don't want them to leave my site completely, or when I am linking to something contextual for what they are working on, on my site.
Consider these examples:
1. I don't want them to leave my site
2. Contextually I want a new tab for the user
Basically the number one reason sites do it, is so that if you get distracted down a 'rabbit hole' once you click a link, their page is still there in a tab for you to come back to later. 'Time spent on page' is an important metric for sites, and they don't want to give that up too easily. But I've tried to give a few examples of other cases above.