As promised, I've gone through Week 1 rosters and calculated average ages for starters.
2012 Rosters: Oldest Starters (Week 1)
These would be actual starters, not projected or usual ones. There are differences (hence, the asterisk in the headline).
The Cleveland Browns had a third wide receiver instead of tight end Benjamin Watson. St. Louis opted for a second tight end, Matthew Mulligan, instead of fullback Brit Miller. Bradley Fletcher started for the Rams as a third cornerback, nudging out linebacker Mario Haggan against the Detroit lions, who went with a third wideout.
Multiple other teams made similar tweaks to open their games.
My point here isn't to list all the adjustments. Listing as many as I have will hopefully illustrate the NFL's situational nature. Starting offensive linemen tend to play full games across the board. Players at other positions are more likely to sub in and out of games regularly.
The players we consider starters don't always start. They often don't play all the snaps. Some play sporadically.
Many teams are constantly shifting from one personnel group to another. Defenses are constantly switching personnel to match up.
The chart shows age rankings for starters in Week 1, oldest to youngest. The first column shows overall rankings. The other columns show rankings for offense and defense. These are based on the rosters I maintain for every team, with ages calculated to the day (as opposed to rounding backward to the most recent birthday).
Note: I updated this item after realizing Casey Hampton, 35, needed to be listed as a starter for Pittsburgh, and that Tim Tebow was listed as a starter at tight end for the Jets. These changes bumped the Steelers' starting defense from sixth to first in average age. The Jets' change had a smaller effect.