The deal is worth $10.5 million, sources told ESPN's Adam Schefter and Adam Caplan.
"We are very excited to be able to keep a player and teammate like Jeremy in red and gold," 49ers general manager John Lynch said in a statement. "As we evaluated the roster, his production on the field really impressed us and we believe he is a great fit for our scheme. As we learned more and more about him, it became obvious his teammates have a great deal of respect for Jeremy as well. He is a true pro who is an asset to this team on offense, special teams and in the locker room."
Kerley, 28, was a key late addition for the 49ers in the preseason last year after they acquired him from the Lions near the end of training camp.
Despite having limited time to learn then-coach Chip Kelly's playbook, Kerley immediately became an integral part of the offense and went on to lead the team with 64 catches and 667 receiving yards while scoring three touchdowns.
In addition to his work as the team's primary slot receiver, Kerley also served as the team's punt returner. The six-year veteran has 246 catches for 2,892 yards and 12 touchdowns. He was originally a fifth-round pick of the Jets in 2011.
ESPN's Nick Wagoner contributed to this report.