Use descriptive, topical anchors for most internal contextual links and branded or navigational anchors where the link’s job is navigation. The pivot is descriptive for relevance, branded for navigation, with the whole set varied naturally so it never reads like robotic exact-match repetition. Internal links are one of the clearest places you control what a page is about, so matching the anchor to the link’s actual job is what gets the most out of them.
Descriptive anchors are the right default for in-content links because they pass relevance about the target page. When you link to an article from inside a relevant passage, an anchor that describes what the destination covers tells both readers and Google what they will find there, which reinforces the target’s topic. That is the signal you want internal links to carry most of the time, so the bulk of your contextual linking should use clear, topical phrasing drawn from what the destination is genuinely about, not from a keyword you wish it ranked for.
Branded and navigational anchors fit a different job. When the link’s purpose is to point someone to the brand, the homepage, or a product or service by its name, the natural and correct anchor is that name, because the link is navigational rather than topical. Forcing a descriptive anchor onto a plainly navigational link reads oddly and serves no one. The two anchor types are not in competition, they answer to different functions, and reading the function of each link tells you which to reach for.
The practical move is to pick the anchor type by the link’s job and vary your wording naturally as you go. For contextual links into related content, describe the destination; for links to the brand, home, or a named product, use the name. Across the site, avoid hammering the same exact-match phrase into every anchor, since natural variation reads better to people and looks less manipulative to Google. Let each anchor follow what its link is actually for, and the pattern takes care of itself.