Jonathan Cooper was tested last Saturday in Houston. The San Francisco 49ers preseason contest against the Texans served as Cooper's first game action since returning from a knee injury. Cooper missed the team's entire offseason program and began training camp on the Physically Unable to Perform List.
Even when the veteran guard returned from PUP, it took another two weeks before he saw reps in full-team drills. That's why the preseason game in Houston was so pivotal for Cooper. There were no letter grades in this exam. It was a simple pass-fail. And since Cooper played 21 offensive snaps and made it out of NRG Stadium without a setback, the night was deemed a success.
"It was good to get some reps," Cooper said. "I could feel the rust. I knew I wasn't moving like myself. I was a little bit hesitant. I can see it on film. I'm just working to get back into my normal form.
"There's definitely a lot of room for improvement. I just had to remind myself that it was only the starting point."
Cooper was originally a first-round pick of the Arizona Cardinals in 2013. After three seasons with the Cardinals, Cooper spent the 2016 season with the Cleveland Browns. That was followed by a one-year stint with the Dallas Cowboys in 2017. Cooper signed with the 49ers as a free agent on May 20 and immediately became a top candidate to start at right guard.
Even with the golden opportunity in front of him, Cooper forced himself to exercise patience. A position battle didn't change the fact that the arduous climb back to full health remained a marathon, not a sprint. Cooper has become all too accustomed to the rehab process. He missed his entire rookie season due to injury, and he's yet to play a full 16-game season. Those misfortunes have matured his outlook.
"I think you have to acknowledge the small victories and see the improvement in yourself," Cooper said. "Things that are minute to some people on the outside are a big deal to me. That's what keeps me going. I'll notice things like, 'Hey this step was slow yesterday, but now I feel more comfortable with it or feel stronger doing this movement.' It's all a reminder of what I'm capable of doing."
Cooper is still just 28 years old and believes his best days are ahead of him. He essentially bet on that conviction by signing a one-year deal in San Francisco. At his best, Cooper prides himself on being an athletic guard who can move and be powerful at the point of attack. Those are all essential traits for a guard in Kyle Shanahan's offense. That's what drew Cooper to the opportunity with the 49ers.
Take a look at the top images from Wednesday's practice as the 49ers get ready for a trip to Indianapolis.

QB Jimmy Garoppolo and RB Alfred Morris

WR Pierre Garçon

DB Adrian Colbert

DT Jullian Taylor

WR Aldrick Robinson

DL Niles Scott, DL Sheldon Day and DL Solomon Thomas

CB Ahkello Witherspoon

WR Marquise Goodwin and QB Jimmy Garoppolo

DL D.J. Jones

OL Najee Toran and DL Sheldon Day

S Jaquiski Tartt

T Pace Murphy

P Jeff Locke and K Robbie Gould

CB Richard Sherman and WR Pierre Garçon

WR Victor Bolden Jr.

49ers Special Teams

49ers Offense

TE Ross Dwelley

OL Andrew Lauderdale

WR Victor Bolden Jr.

QB Nick Mullens

RB Jeremy McNichols, RB Jeff Wilson and FB Malcolm Johnson

QB Jimmy Garoppolo

WR Victor Bolden Jr.

QB C.J. Beathard

TE Ross Dwelley

WR Kendrick Bourne

WR Marquise Goodwin

LB Fred Warner, LB Malcolm Smith and LB Korey Toomer

WR Steven Dunbar Jr.

NT Earl Mitchell and DT Chris Jones

T Mike McGlinchey

LB Malcolm Smith

FB Kyle Juszczyk

WR Richie James Jr.

CB Richard Sherman

DT Jullian Taylor

LB Brock Coyle

LB Reuben Foster

WR Dante Pettis

CB Greg Mabin

DL Ronald Blair III

QB Jimmy Garoppolo and WR Pierre Garçon

DL Ronald Blair III

DL Jeremiah Attaochu

QB Jimmy Garoppolo and QB C.J. Beathard

OL Andrew Lauderdale

DL Will Sutton
"This is a place where you can do a lot of running," Cooper said. "I can use my natural athletic ability. It's also a young team that's on the rise. Getting here confirmed my decision. It's a great locker room with a bunch of great guys. There are no egos. I have a great feeling about the guys around here."
The tests from here on out will be more critical. Merely staying on the field won't be good enough. Cooper's play will be scrutinized, and it will ultimately be determined whether or not he's the man for the job at right guard.
Next up is the team's third preseason game against the Indianapolis Colts. Cooper, now with the confidence that his leg is fully healthy, is likely to see plenty of playing time. That pressure won't faze the six-year veteran. Cooper's approach is something of a metronome mixed with a horse wearing blinders. His strive for consistent progress won't be impacted by the other players – namely Joshua Garnett and Mike Person – competing for his job.
"I know it sounds monotonous, but just day-by-day, I'm trying to improve," Cooper said. "I'm trying to be the best player that I can be without looking to my left or to my right. Everything else will take care of itself."