Gordon will earn $4 million, reports MLB.com's Jeffrey Flanagan.
"He is one of the most driven players in the game today," Royals general manager Dayton Moore said of Gordon. "He represents everything the league wants in a player. He can still play at a high level, and he is willing to do whatever it takes to help the team win. He is the player that everyone strives to be."
The 35-year-old Gordon hit .266/.345/.396 with 13 home runs, 31 doubles, and 76 RBIs in 2019. He also won his seventh Gold Glove.
The Royals drafted Gordon second overall in 2005. He's spent his entire career with the organization.