Mike Evans improved his practice status Friday, which is encouraging news for San Francisco and poor material for anyone seeking certainty. After sitting out Wednesday and Thursday because of the rib injury sustained against Arizona, the 49ers receiver participated on a limited basis and remained questionable for Sunday’s game against Denver.
The step from no practice to limited work matters because it puts Evans closer to being an option. It also leaves Shanahan planning around a decision that cannot yet be made. Evans has moved into the game-time-decision category. That does not establish that he will play, run his usual workload or be fully effective if he does.
San Francisco therefore has to prepare two receiving plans at once. One includes Evans as an available receiver. The other assumes that the offense must function without him and asks whether the rest of the passing menu is broad enough to keep Denver from dictating the afternoon.
Brandin Cooks is the most obvious adjustment, though calling him an Evans substitute would be too neat for a player still learning the system. Coach Kyle Shanahan said Friday that Cooks is growing more comfortable after roughly two weeks of preparation. Cooks joined the practice squad Sept. 23 and was promoted Wednesday, giving him some runway but hardly a full offseason.
Comfort is valuable because it reduces the number of assignments a new player must process at speed. It is not the same thing as demonstrated production in San Francisco’s offense. The team has supplied no promised target total or defined starting role, so Cooks should be viewed as an expanding option rather than a replacement package waiting on the shelf.
That distinction could matter against Denver’s pass rush. The Broncos have eight sacks through three games, with Zach Allen responsible for three. San Francisco’s counterargument is unusually strong: Brock Purdy has played three games without being sacked.
His passing production stands at nine touchdowns and 789 yards. Those numbers show that the 49ers have protected the quarterback and kept the passing operation productive, but they do not guarantee the same clean conditions against Denver.
Kittle gives the offense another established route to production. Through three games, he has accumulated 174 yards receiving and found the end zone three times. That production gives Shanahan another established contributor to lean on if Evans is unavailable, without asking a recent addition to reproduce everything a missing receiver might provide.
Yet Kittle’s value is connected to the protection question. If Denver’s rush compresses Purdy’s pocket before routes can develop, the tight end’s reliability matters less than whether the quarterback has time to locate him.



