SANTA CLARA, Calif. — The Niners said there’ll be days like this. There’ll be days like this, the Niners said.
Second-year quarterback and newly named starter Trey Lance had a difficult day at the San Francisco training camp Friday morning, but no one here is pressing the panic button just yet.
“There’s always going to be ups and downs. I’m more worried at this point about how we respond,” Lance told me after practice. “I thought it was a little bit sloppy today for sure on my end. But we’re going to keep getting better. It’s only Day 3 so we got a lot of work to do.”
Early in team drills, Lance appeared to throw a pass slightly behind tight end George Kittle that was picked off by second-year safety Talanoa Hufanga. A few plays later, a deep ball intended for Ray-Ray McCloud hung in the clouds, and good coverage by Charvarius Ward helped it fall incomplete.
Later, another intended pass to Kittle went incomplete when the tight end appeared to slip and fall as the ball was released. Lance was high on a sideline pass to Kittle with cornerback Emmanuel Moseley in coverage. And finally, Lance’s boot-and-stop throw intended for Brandon Aiyuk arrived as a wounded duck that fluttered so much, Ward couldn’t judge it well enough to get what should have been an interception.
The question today is one that may be repeated throughout camp: How much of this is Lance needing reps with the offense vs. how much is this the defense being better?
At this point, it’s hard to tell. The defense could easily be the best in the NFL. Nick Bosa can wreck any play at any point. Fred Warner appeared to get two TFLs on rush attempts during team drills. The Niners have a great defensive backfield with depth to spare.
Please check the opt-in box to acknowledge that you would like to subscribe.
Thanks for signing up!
Keep an eye on your inbox.
Sorry!
There was an error processing your subscription.
Folks I speak with here tell me Lance had a great spring and summer and has taken greater command of the offense and huddle. Deebo Samuel should be on the field with his new contract soon (more on that below), and the offensive line is going through a bit of musical chairs right now.
If Lance is struggling at a camp practice before the pads come on, no one here is worried. Lance has earned the opportunity to drive the car here, and I asked him why he believes the organization has such faith in a young quarterback taking over a playoff contender.
“I’m confident in myself but I guess that’s a question for those guys,” Lance says. “They know I got their back and I know they got my back 100%. So I’m excited to get this year started. I’m going to do everything I can to be as prepared as I can Week 1 and even the preseason . I’m going to be ready to go.”
Camp observations
There’s a great sense of optimism here that Samuel’s contract extension will get done in the coming days. The prevailing thought has been Samuel would wait on fellow WR DK Metcalf to get his deal done before inking with the Niners. Metcalf’s deal included a record $30 million signing bonus, and now Samuel has a new mark to hit. Samuel and his agent will want a “win” in this deal, whether it’s average annual value topping Tyreek Hill’s $30M AAV, or a signing bonus that eclipses Samuel’s, or record cash flow in the first three years of the deal.
Kyle Shanahan likes this roster more than any other he’s had in his six years in San Francisco, but there’s an obvious weakness at the interior of the offensive line. Alex Mack’s retirement wasn’t a surprise, but the team still needs Jake Brendel or Daniel Brunskill to win that job. Brunskill could also get the right guard gig, and San Fran has had to kick Jaylon Moore out to right tackle early in camp as Mike McGlinchey returns from a quad injury. The Niners feel good about Aaron Banks at left guard, but he’s still just a second-year player.
San Francisco would love to trade Jimmy Garoppolo to a non-NFC West team and get a draft pick in return. I’d like to get eight hours of uninterrupted sleep a night. Everyone is doing and saying the right things here as it relates to the former franchise QB, but there’s a very real possibility the Niners will have to simply release Garoppolo before the final roster cutdowns when his cap hit of $26.95M gets locked in. Right now there’s no team that would reasonably trade for Garoppolo (and his contract), but that could change as quarterback competitions shake out around the league and/or key QBs go down with injuries. Still, folks I speak to around the league say if they needed Garoppolo, they’d simply wait for the Niners to cut him and work out a deal for him. It’s a bit of a gamble, of course, but it’s logical. Shanahan even repeated Friday that the team will do what’s in the best interest of the organization, and that reasonably means cutting him and getting the cap space.
I know, I know. It’s the “best shape of my life” season at the start of every training camp in the NFL. I had been told coming into camp to look out for Javon Kinlaw and how he’s improved his body, and seeing him walk out of a meeting room early Friday morning, the change was obvious. Kinlaw appears to have turned some of his softness into lean muscle. He’ll return to practice from a knee injury soon, and he’ll be key in what DeMeco Ryans’ defense is trying to do this year.
The 49ers have experienced a fairly significant brain drain at various coaching positions lately. They lost former DC Robert Saleh to the Jets and former OC Mike McDaniel to the Dolphins, and Ryan figures to be the next coordinator to get a head coaching job soon. John Lynch has put together an impressive staff in the Bay, but his group could be next. Former Niners exec Martin Mayhew is now the GM in Washington, and AGM Adam Peters and player personnel director Ran Carthon have gotten GM interviews in recent years and should get their shots very soon.
require.config({"baseUrl":"https://sportsfly.cbsistatic.com/fly-0290/bundles/sportsmediajs/js-build","config":{"version":{"fly/components/accordion":"1.0","fly/components/alert":"1.0","fly/components/base":"1.0","fly/components/carousel":"1.0","fly/components/dropdown":"1.0","fly/components/fixate":"1.0","fly/components/form-validate":"1.0","fly/components/image-gallery":"1.0","fly/components/iframe-messenger":"1.0","fly/components/load-more":"1.0","fly/components/load-more-article":"1.0","fly/components/load-more-scroll":"1.0","fly/components/loading":"1.0","fly/components/modal":"1.0","fly/components/modal-iframe":"1.0","fly/components/network-bar":"1.0","fly/components/poll":"1.0","fly/components/search-player":"1.0","fly/components/social-button":"1.0","fly/components/social-counts":"1.0","fly/components/social-links":"1.0","fly/components/tabs":"1.0","fly/components/video":"1.0","fly/libs/easy-xdm":"2.4.17.1","fly/libs/jquery.cookie":"1.2","fly/libs/jquery.throttle-debounce":"1.1","fly/libs/jquery.widget":"1.9.2","fly/libs/omniture.s-code":"1.0","fly/utils/jquery-mobile-init":"1.0","fly/libs/jquery.mobile":"1.3.2","fly/libs/backbone":"1.0.0","fly/libs/underscore":"1.5.1","fly/libs/jquery.easing":"1.3","fly/managers/ad":"2.0","fly/managers/components":"1.0","fly/managers/cookie":"1.0","fly/managers/debug":"1.0","fly/managers/geo":"1.0","fly/managers/gpt":"4.3","fly/managers/history":"2.0","fly/managers/madison":"1.0","fly/managers/social-authentication":"1.0","fly/utils/data-prefix":"1.0","fly/utils/data-selector":"1.0","fly/utils/function-natives":"1.0","fly/utils/guid":"1.0","fly/utils/log":"1.0","fly/utils/object-helper":"1.0","fly/utils/string-helper":"1.0","fly/utils/string-vars":"1.0","fly/utils/url-helper":"1.0","libs/jshashtable":"2.1","libs/select2":"3.5.1","libs/jsonp":"2.4.0","libs/jquery/mobile":"1.4.5","libs/modernizr.custom":"2.6.2","libs/velocity":"1.2.2","libs/dataTables":"1.10.6","libs/dataTables.fixedColumns":"3.0.4","libs/dataTables.fixedHeader":"2.1.2","libs/dateformat":"1.0.3","libs/waypoints/infinite":"3.1.1","libs/waypoints/inview":"3.1.1","libs/waypoints/jquery.waypoints":"3.1.1","libs/waypoints/sticky":"3.1.1","libs/jquery/dotdotdot":"1.6.1","libs/jquery/flexslider":"2.1","libs/jquery/lazyload":"1.9.3","libs/jquery/maskedinput":"1.3.1","libs/jquery/marquee":"1.3.1","libs/jquery/numberformatter":"1.2.3","libs/jquery/placeholder":"0.2.4","libs/jquery/scrollbar":"0.1.6","libs/jquery/tablesorter":"2.0.5","libs/jquery/touchswipe":"1.6.18","libs/jquery/ui/jquery.ui.core":"1.11.4","libs/jquery/ui/jquery.ui.draggable":"1.11.4","libs/jquery/ui/jquery.ui.mouse":"1.11.4","libs/jquery/ui/jquery.ui.position":"1.11.4","libs/jquery/ui/jquery.ui.slider":"1.11.4","libs/jquery/ui/jquery.ui.sortable":"1.11.4","libs/jquery/ui/jquery.ui.touch-punch":"0.2.3","libs/jquery/ui/jquery.ui.autocomplete":"1.11.4","libs/jquery/ui/jquery.ui.accordion":"1.11.4","libs/jquery/ui/jquery.ui.tabs":"1.11.4","libs/jquery/ui/jquery.ui.menu":"1.11.4","libs/jquery/ui/jquery.ui.dialog":"1.11.4","libs/jquery/ui/jquery.ui.resizable":"1.11.4","libs/jquery/ui/jquery.ui.button":"1.11.4","libs/jquery/ui/jquery.ui.tooltip":"1.11.4","libs/jquery/ui/jquery.ui.effects":"1.11.4","libs/jquery/ui/jquery.ui.datepicker":"1.11.4"}},"shim":{"liveconnection/managers/connection":{"deps":["liveconnection/libs/sockjs-0.3.4"]},"liveconnection/libs/sockjs-0.3.4":{"exports":"SockJS"},"libs/setValueFromArray":{"exports":"set"},"libs/getValueFromArray":{"exports":"get"},"fly/libs/jquery.mobile-1.3.2":["version!fly/utils/jquery-mobile-init"],"libs/backbone.marionette":{"deps":["jquery","version!fly/libs/underscore","version!fly/libs/backbone"],"exports":"Marionette"},"fly/libs/underscore-1.5.1":{"exports":"_"},"fly/libs/backbone-1.0.0":{"deps":["version!fly/libs/underscore","jquery"],"exports":"Backbone"},"libs/jquery/ui/jquery.ui.tabs-1.11.4":["jquery","version!libs/jquery/ui/jquery.ui.core","version!fly/libs/jquery.widget"],"libs/jquery/flexslider-2.1":["jquery"],"libs/dataTables.fixedColumns-3.0.4":["jquery","version!libs/dataTables"],"libs/dataTables.fixedHeader-2.1.2":["jquery","version!libs/dataTables"],"https://sports.cbsimg.net/js/CBSi/app/VideoPlayer/AdobePass-min.js":["https://sports.cbsimg.net/js/CBSi/util/Utils-min.js"]},"map":{"*":{"adobe-pass":"https://sports.cbsimg.net/js/CBSi/app/VideoPlayer/AdobePass-min.js","facebook":"https://connect.facebook.net/en_US/sdk.js","facebook-debug":"https://connect.facebook.net/en_US/all/debug.js","google":"https://apis.google.com/js/plusone.js","google-platform":"https://apis.google.com/js/client:platform.js","google-csa":"https://www.google.com/adsense/search/async-ads.js","google-javascript-api":"https://www.google.com/jsapi","google-client-api":"https://apis.google.com/js/api:client.js","gpt":"https://securepubads.g.doubleclick.net/tag/js/gpt.js","hlsjs":"https://cdnjs.cloudflare.com/ajax/libs/hls.js/1.0.7/hls.js","newsroom":"https://c2.taboola.com/nr/cbsinteractive-cbssports/newsroom.js","recaptcha":"https://www.google.com/recaptcha/api.js?onload=loadRecaptcha&render=explicit","recaptcha_ajax":"https://www.google.com/recaptcha/api/js/recaptcha_ajax.js","supreme-golf":"https://sgapps-staging.supremegolf.com/search/assets/js/bundle.js","taboola":"https://cdn.taboola.com/libtrc/cbsinteractive-cbssports/loader.js","twitter":"https://platform.twitter.com/widgets.js","video-avia":"https://vidtech.cbsinteractive.com/avia-js/2.4.0/player/avia.min.js","video-avia-ui":"https://vidtech.cbsinteractive.com/avia-js/2.4.0/plugins/ui/avia.ui.min.js","video-avia-gam":"https://vidtech.cbsinteractive.com/avia-js/2.4.0/plugins/gam/avia.gam.min.js","video-avia-hls":"https://vidtech.cbsinteractive.com/avia-js/2.4.0/plugins/hls/avia.hls.min.js","video-avia-playlist":"https://vidtech.cbsinteractive.com/avia-js/2.4.0/plugins/playlist/avia.playlist.min.js","video-ima3":"https://imasdk.googleapis.com/js/sdkloader/ima3.js","video-ima3-dai":"https://imasdk.googleapis.com/js/sdkloader/ima3_dai.js","video-utils":"https://sports.cbsimg.net/js/CBSi/util/Utils-min.js","video-vast-tracking":"https://vidtech.cbsinteractive.com/sb55/vast-js/vtg-vast-client.js"}},"waitSeconds":300});