Anthony Dixon, the 49ers’ perennial third running back, has officially moved on to the Buffalo Bills. He signed his free-agent contract on Saturday after visiting with Bills coaches and officials on Friday.

Dixon was active for all 72 games, including playoffs, in his four-year 49ers career. But he was never able to rise above the No. 3 spot on the depth chart on offense.

Last season, Dixon ranked third among 49ers running backs with 80 snaps from scrimmage last season. He was behind Frank Gore and Kendall Hunter but ahead of LaMichael James, who played just 28 snaps the entire season.

Dixon grew frustrated with his limited role, and it was clear he would face an even-larger obstacle to get on the field with the expected addition this season of a healthy Marcus Lattimore.

Gore, Lattimore, Hunter and James are currently the 49ers’ top running backs. None is as big as Dixon (233 pounds). Dixon was used sporadically as a short-yardage back. It’s possible fullback Bruce Miller will see more opportunities on that role. Miller succeeded on 3-of-4 short-yardage rushing attempts last season on third and fourth downs.

Dixon’s loss will have a larger impact on 49ers special teams, on which he played on more than 63 percent of the team’s plays in the kicking game.

Miller is a solid contributor on special teams. And the other remaining running backs are not capable of picking up the slack. C.J. Spillman, Bubba Ventrone, Craig Dahl and Michael Wilhoite were the only 49ers who played more than Dixon in that phase of the game.