Williams had agreed to a five-year deal worth at least $5 million per season, according to reports, but after a medical exam by team doctors it was determined the ankle would need a longer rehab and the contract terms were amended.
The one-year deal is a maximum value of $6 million, ESPN earlier reported.
The 26-year-old Williams underwent offseason surgery on his left ankle that puts his status in doubt for the season opener in September.
Williams was plagued by leg fractures during the 2013 and 2014 seasons, missing 21 of 32 games. But last year he was voted a team captain and started all 16 games, finishing with 65 tackles, one sack and one forced fumble.
“Through his dedication and hard work, Ian has grown into an excellent player on the field, a leader in our locker room and a positive influence in our community,” 49ers general manager Trent Baalke said. “He is a true professional, who has battled through a number of obstacles to this point in his career, and his perseverance is a tremendous example for everyone in our organization. We are very excited Ian has chosen to continue his career with the 49ers.”
In 31 career games, Williams has 137 tackles, two sacks, one forced fumble and one fumble recovery.