Villain is 25/20

I feel that his calling range on the button includes very few kings, so I feel that he is bluffing here a ton with missed draws or small PPs. However, he could easily have a 4 here (43s, 54s, 64s, A4s).

Sometimes I check flop here...not sure what is optimal.
Thoughts on all streets?

Poker Room skin
No Limit Holdem Ring game
Blinds: $3/$6
5 players
Converter

Stack sizes:
Hero: $628.80
CO: $291.00
Button: $483.35
SB: $312.90
BB: $1.724.20

Pre-flop: (5 players) Hero is UTG with 9 9
Hero raises to $21, CO folds, Button calls, 2 folds.

Flop: 2 K 4 ($51, 2 players)
Hero bets $37, Button calls.

Turn: 4 ($125, 2 players)
Hero checks, Button bets $87, Hero calls.

River: Q ($299, 2 players)
Hero checks, Button bets $200, Hero

edit: just noticed I bet too small on flop.