There are no guidelines for designing links except that text links should be made visually distinct from regular non-clickable text, and that the standard way to do this is by underlining them. For usability, the user shouldn't have to hover over it in order to see that it's a link.
Aside from that, you would just apply the same common sense approach one applies to all other UI elements.
Non-linked headings are text content just like non-linked body text. So how do you distinguish them? Well, you can make the heading bigger, or heavier, or a different color or typeface. Or you could organize the heading differently using alignment, margins, horizontal rules, etc.
It's no different with linked text. But if your headings are already differently sized/positioned/etc. then there's no need to distinguish linked headings from other links.
Apply the same IA principles to links as you would everything else. Navigation links are very important, so they should be visually distinct and both aesthetically and spatially separated from the other items in the UI.
Other types of links with special purposes, like tags or download links, should also be easily distinguishable from regular links. But this could be done with a simple icon or even just by grouping the links together under an appropriate heading.