49ers

They Signed the Kid from Stockton, and He's Turning 33 on the Practice Squad

Brandin Cooks has 9,811 receiving yards, six 1,000 yard seasons, and two Super Bowl losses. The 49ers put him on the practice squad on Tuesday because the receiver room keeps emptying out.

Bay Area Sports Blog Staff · 49ers
Bay Area Sports Blog: Brandin Cooks, the kid from Stockton, signs with the 49ers practice squad

The paper towel from this morning is still on the counter. Plus 42 on one side, a stack of names on the other, and I told myself I was done counting for the day. Then the phone buzzed while I was rinsing a mug, and the name on it was Brandin Cooks, and I stood there with the water running because I had to read it twice.

They're putting him on the practice squad.

A kid from Stockton. Lincoln High. Turns 33 on Friday. Twelve seasons, seven stops if you count this one, 734 catches, 9,811 yards, 60 touchdowns, and the 49ers are handing him a practice squad spot on a Tuesday in September because the guys who were supposed to catch the ball can't walk. I know what I'm about to say isn't rational. I'm glad it's him. I'm also exhausted that we needed him.

I've driven that road. Stockton to Santa Clara is 205 into 580, over the Altamont, the windmills standing there in the heat while the traffic decides whether you're getting to the stadium in an hour or in two. Eighty miles. You can see the valley in the rearview and the South Bay in front of you and feel like you never left one place for another, you just sat still while the map moved. Cooks grew up on the far end of that drive. He has never worn red and gold. He has worn everybody else.

The room that made them pick up the phone

I wrote the out list this morning and I'm not going to rebuild it. You can go read the names. The short version is the one that made somebody in the building call a 32 year old who was still a free agent in week 3.

Ricky Pearsall had the PCL in his right knee repaired and he's done for 2026. He never got a snap this season. De'Zhaun Stribling, the rookie we spent August yelling about, had surgery on the deltoid ligament in his ankle and he's looking at something close to ten weeks, which is week 11 if the calendar is kind. Demarcus Robinson sprained his ankle high in the Miami game. Kyle put the absence at three to six weeks. He isn't playing Arizona. They may have to park him on injured reserve, and this club only gets eight returns off that list all year.

Christian Kirk and the calf are on IR. He isn't eligible until week 5. Mike Evans left in the second half Sunday with a hip that Kyle says has to be managed, and he also said Evans could've come back if the game had been close. I'm still calling that managed, not out, until Friday makes a liar out of me. If the hip wins the week, the receiver room for a home game against the Cardinals is Deebo Samuel, KhaDarel Hodge, Jacob Cowing, and whoever they trust off the practice squad.

That's the sentence. Cooks is the answer they wrote at the end of it.

Kyle said Sunday they'd probably add a veteran to the practice squad after Robinson went down. Monday he pointed at the guys already in the building and said somebody in there has to step up. Tuesday they signed the Stockton kid anyway. I don't think those two days contradict each other. I think Monday was the hope and Tuesday was the training room.

We're 2 and 0. Twenty seven to seven in Melbourne, thirty five to thirteen at Levi's, 62 points scored and 20 allowed, the best margin in the league, and the phone is still ringing for receivers. Plus 42 doesn't catch a slant. Arizona is here Sunday at 1:05, same building, and the week by week lives on the schedule hub. Who we thought we had in August is on the depth chart, which you should read with a pencil.

What the name used to mean

If you're my age you remember 2013 without trying. Oregon State. A receiver from Stockton catching everything that moved. 128 catches, 1,730 yards, 16 touchdowns, the most receiving yards in the country, the Biletnikoff, Pac-12 records that still get brought up when somebody in Corvallis has a big Saturday. I watched pieces of that season the way you watch a name that keeps showing up on the bottom of the screen while you're supposed to be doing something else. He was ours in the dumb geographic way. Not a 49er. A Valley kid. Close enough that you said his name like you had a stake.

The Saints took him 20th in 2014. As a rookie he caught 53 balls for 550 yards and three scores in ten games, and then he became the thing the league spent the next eight years trying to trade. In 2015 he went for 1,138 yards and nine touchdowns. In 2016 he went for 1,173 and eight. New Orleans shipped him to New England. In 2017, with Tom Brady, he went for 1,082 and seven. New England shipped him to the Rams. In 2018 he went for 1,204 and five, the biggest year of his life, and he ran it in once himself.

Read that again, because it's the line that still doesn't feel legal. Three straight seasons over 1,000 yards, three straight teams. Nobody had done that. He did it before he turned 26.

Houston got the next version. 1,150 yards and six scores in 2020. 1,037 and six in 2021, on 90 catches, the fullest plate he ever carried. That's six seasons of 1,000 or more, and four different franchises, which ties the record. Saints, Patriots, Rams, Texans. The logo kept changing. The number on the stat sheet didn't.

Then the number did.

The night in Minneapolis, and the night in Atlanta

Super Bowl LII, he was a Patriot. Early in the second quarter Malcolm Jenkins hit him and the ball and the afternoon left his body at the same time. Concussion. He had one catch for 23 yards and a one yard run, and then he was done, and New England lost to Philadelphia 41 to 33. I remember the quiet on the broadcast more than the hit. A fast guy, suddenly not getting up, in the game everybody watches.

A year later he was on the other sideline. The Rams had traded for him, and Super Bowl LIII was against the Patriots, and Cooks was the entire Los Angeles offense that anybody could find. Eight catches, 120 yards, 13 targets, the most anybody has been thrown to in a Super Bowl. The Rams scored three points. Three. They lost 13 to 3, and the man who used to catch passes from Brady spent the night failing to beat him. I've never decided whether that game made him look great or made the sport look broken. Both, probably. I still think about the 13 targets when somebody tells me a receiver can win a night by himself.

He couldn't. Not that night.

The years the speed got quieter

2019 was 42 catches and 583 yards. The top got shorter. You could see it if you wanted to, and a lot of us didn't want to, because the 2018 tape was still the tape we kept in our heads. He was 26. Fast guys are supposed to get a longer runway than that.

Houston still got two big years out of him after that, which is the part people skip when they write the obituary early. Then 2022 was 57 catches, 699 yards, three scores. Dallas gave him 2023, and he caught 54 balls for 657 yards and eight touchdowns, a red zone year more than a bomb year. 2024 he played ten games and finished with 26 catches, 259 yards, and three scores. The deep threat had become a veteran who could still find a soft spot if the quarterback trusted him, and then a veteran the quarterback stopped trusting.

Last season he went back to New Orleans on a two year deal and asked out in November. Ten games with the Saints, then five more in the regular season with Buffalo. The whole regular season, both cities, was 24 catches, 279 yards, and no touchdowns. Five of those catches and 114 of those yards came in the five games with the Bills. He still had a little of the old vertical in him when they actually threw it. They just didn't throw it much.

Buffalo kept him for January. At Jacksonville in the wild card he caught three passes for 58 yards in a 27 to 24 win. At Denver, in the game that ended their season, he started, played a little over half the snaps, and caught two balls for 20 yards. One of the throws that didn't get there became the interception people are still arguing about, the one that helped the Broncos get out of overtime with the ball and the season. Cooks was the man the ball was supposed to find. It found a defender instead. Buffalo never saw it again.

He has been a free agent since. Baltimore worked him out last week and let him leave. That's the market. A man 189 yards short of 10,000 receiving yards, and a building in Baltimore looked at the legs and said no thank you.

What he is, on this roster, this week

He's 5 foot 10 and about 190 pounds, which is the same body he brought to the combine when the Saints fell in love with the speed. The body is 33 on Friday. September 25. He'll spend his birthday on a practice squad in Santa Clara, learning a playbook he has never had to learn, behind a quarterback in Brock Purdy who was in middle school when Cooks was winning the Biletnikoff.

Say that out loud and it sounds sad. It isn't only sad. Practice squad means he isn't on the 53. They can elevate him for a Sunday a handful of times and then they have to decide whether he belongs. The point of this week, if they're being honest, is to find out whether the legs still make a safety turn his hips. If they do, he's a vertical they can put on the field while Evans's hip gets managed and Robinson's ankle decides how many weeks it wants. If they don't, he's a body at practice so Cowing and Hodge aren't catching every rep until their hands fall off.

I can live with either answer. I can't live with pretending he's the 2018 Ram.

Deebo is 30 and he's the one who still scares people after the catch. Evans is 33 and he's the one who has to be managed. Kittle is 32. Christian McCaffrey is 30. Kyle Juszczyk is 35. The receiver room was already a reunion before Cooks walked in, and the young guys are the ones in the training room. Pearsall. Stribling. That's the rotten joke of this September. We spent the offseason collecting experience because the kids got hurt, and now the experience is getting hurt too, and the next phone call is another guy old enough to remember the Saints drafting him.

189 yards.

That's what's left between Cooks and 10,000. I don't care about round numbers unless the man earning them is catching balls that help us on Sunday. If he gets there in a Niner uniform I'll lose my mind in a normal way, the way you do when a local name crosses a line you can explain to somebody who doesn't watch. If he gets there in December on a team that's still playing, even better. If he gets there in garbage time because we elevated him once and the game was over, I'll take the yardage and I won't build a statue. The number is a souvenir. The hip, the ankle, and whatever Christian Kirk's calf is doing in week 5 are the season.

Sunday, and the thing I'm willing to hope

I don't need him against Arizona. I need to say that before the group chat turns a practice squad signing into a savior post. We're 2 and 0. Purdy has spent most of the fourth quarters already on the bench. The home opener is in 35 to 13, and Melbourne is in the Rams recap. If Evans practices and Deebo is Deebo, Cooks can learn the signals and catch balls against the scout team and turn 33 without a helmet on Sunday. That would be the healthy version of this week. I have not seen the healthy version of a 49ers receiver week since July.

What I want, and I'm embarrassed by how small it is, is one rep in practice where he stacks a corner and the ball comes out before the safety can recover. One. Not a highlight from 2016. A rep on a field in Santa Clara, this week, with the legs he actually has. If that rep exists, they should elevate him the first time Evans or somebody else can't go. If it doesn't, leave him down there and let the kids play, and don't feed me a veteran presence speech. I've had enough of those. Hodge was already that speech in August.

There's a version of this that's just a Bay Area story and I keep trying not to drown in it. Lincoln High to Oregon State to every logo in the league and then, at the end, the team 80 miles from his mom's house. The Altamont in between. A practice squad contract and a birthday on Friday. It would play in a commercial with the wrong music. In the kitchen it played as a notification while the water ran, and my first feeling was relief, and my second feeling was the same one I had with the paper towel. We're doing this with the training room full. We keep having to do something.

He's here. He's from here. He has been great, and he has been ordinary, and last January he was the guy the ball didn't find. None of that gets decided again until he runs a route in this offense and somebody tells the truth about what they saw.

The paper towel can stay where it is. I wrote his name on the bottom, small, under the guys who can't play. Arizona doesn't care about any of it until Sunday. I do. I've cared about the name since he was a kid in the Valley catching everything, and I didn't think I'd be writing it next to a 49ers practice squad in the same September we're plus 42 and still short.

More coverage: 49ers · NFL · Bay Area Sports Blog home