Agreed, as a DM, it is very important to reward the players for their performance in game, whether its combat or well executed ability checks. If you only give out XP as the result of combat, you run a high risk of turning your campaign into a murder hobo setting were players will go out of their way to kill every enemy and NPC simply for the sake of more XP.

A milestone system is probably the easiest way to deal with this without having to worry about how to balance XP from successful checks vs combat. Otherwise, simply awarding some amount of XP from non-combat resolutions, even if its less XP than what you would have gotten from combat, is still preferable to getting no XP at all for resolving things in a peaceful way.