I've seen both "лу́чший друг" and "вéрный товáрищ" used online to mean "best friend" and I was wondering which is more commonly used. Is the latter only used in specific contexts?
I disagree with @V.V. on
товарищ being outdated. While historical association with communism and Soviet period is indeed strong, word
товарищ is used not only in ironical context. It's just that it's differ from what it meant at the Soviet period (sort of communistic analogue of sir or monsieur - by gender-agnostic) and is used in it's original meaning.
That is, "товарищ" is a buddy, a person you have nice relationships with, one you can rely on, but not necessarily friend. So I agree with @V.V. on "лучший друг" being the most relevant translation.
Other words and phrases worth two now:
Закадычные друзья- very closed friends, also
Друзья не разлей вода- idiomatic, for close friendship.
кореш- slang words for close friend.
Вéрный товáрищ has connotation of war circumstances or other difficulties. It means somebody who does not betray you or leave you in hard circumstances. Remains faithful despite the hardships. I would translate it "faithful comrade".
Лу́чший друг simply means best friend, somebody with whom you are in good mood and like to spend time.
It is possible that лу́чший друг betrays you and stops being лу́чший друг. On the other hand вéрный товáрищ cannot betray because the very phrase means somebody who does not betray.
Лучший друг would be a better choice nowadays.Товарищ with or without attributes is not outdated but used less frequently. It is still used in historical background, books,films,etc. Though the word itself is not to blame for its political past, it is somewhat being avoided nowadays. Друг, друзья, приятель are the usual choice.