NFL/Teams/San Francisco 49ers

SAN FRANCISCO 49ERS

NFC NFC West · 19992026 · 479 games
12-5
2025 REG. SEASON
.706 · NFC West
437
POINTS FOR
25.7 per game
371
POINTS AGAINST
21.8 per game
+66
DIFFERENTIAL
2 playoff fixtures

01/2025 schedule

19 played
19 scheduled

02/Tendency

Play log
2020–2025 only
Share of this club’s 2025 regular-season plays, and what each returned
Play typePlaysShareYardsYPPTD
Pass60344.6%4,1616.9034
Run46234.2%1,8363.9715
Kickoff836.1%00.000
No play (penalty)584.3%00.000
Punt443.3%00.001
Extra point443.3%00.000
Field goal362.7%00.000
QB kneel191.4%-19-1.000
QB spike30.2%00.000

03/2025 roster

65 players
Regular season
PASSING
Player#POSGCMPATTYDSY/ATDINT
Brock Purdy13QB91972842,1677.62010
Mac Jones10QB112012892,1517.4136
RUSHING
Player#POSGCARYDSY/CTD
Christian McCaffrey23RB173111,2023.8610
Brian Robinson15RB17924004.352
Brock Purdy13QB9331474.453
Mac Jones10QB1136601.670
Skyy Moore23WR172115.500
Demarcus Robinson7WR14166.000
RECEIVING
Player#POSGTGTRECYDSY/RTD
Christian McCaffrey23RB171291029249.17
Jauan Jennings14WR15905564311.79
George Kittle85TE11695762811.07
Kendrick Bourne17WR14533755114.90
Ricky PearsallWR9533652814.70
Jake Tonges88TE1046342938.65
Demarcus Robinson7WR14352227612.51
Kyle Juszczyk44FB1628242138.92
Skyy Moore23WR17758717.40
Luke Farrell89TE131411857.72
Marquez Valdes-Scantling11WR4844010.00
Jordan Watkins17WR2322613.00
Brian Robinson15RB17128253.10
DEFENSE
Player#POSGTKLSACKTFLINTPDFF
Dee Winters53LB17980.08150
Tatum Bethune48LB12921.04040
Upton Stout20CB16821.04051
Ji'Ayir Brown27SAF16750.02261
Malik Mustapha6SAF12740.03130
Renardo Green0CB14600.000100
Deommodore Lenoir2CB17580.04250
Marques Sigle36SAF13520.01020
Fred Warner54MLB6500.02032
Curtis Robinson42LB10410.01010
Jason Pinnock25SAF13410.01000
Sam Okuayinonu91DT14393.06001
Luke Gifford51LB14350.00010
Jordan Elliott95DT14310.01010
Bryce HuffDE14294.06012
Kalia Davis93DT15280.54030
Darrell Luter Jr.28CB9270.01010
Clelin Ferrell98DE7244.04000
CJ West99DT10201.02000
Mykel Williams98DE9191.04000
Alfred Collins95DT11171.01022
Nick Bosa97DE3172.04002
Siran Neal33DB13170.00000
Robert Beal Jr.51DE5140.00000
Keion White56DE8121.52010
Nick MartinLB4110.00001
Chase LucasCB1090.00010
Jake Tonges88TE1080.00000
Yetur Gross-MatosDE680.00010
Luke Farrell89TE1370.00000
Brayden Willis9TE660.00000
Eric KendricksMLB260.00000
Christian McCaffrey23RB1740.00000
Isaac Guerendo31RB740.00001
Garret Wallow49LB240.00000
Malik Turner81WR230.00000
Colton McKivitz68OT530.00000
Kyle Juszczyk44FB1620.00000
Trent Williams71OT520.00000
Kevin GivensDT220.00000
Trevis Gipson52LB320.00000
Jonathan WeeksLS220.00000
Mac Jones10QB1110.00000
Jauan Jennings14WR1510.00000
Ricky PearsallWR910.00000
George Kittle85TE1110.00000
Dominick Puni77OT410.00000
Spencer Burford70G210.00000
Jalen Graham41LB110.00000
Eli Apple30CB110.00000
KICKING
Player#POSGPTS
Eddy PineiroK14118
Matt Gay14K216
Jake MoodyK15
Kicking points are complete; field-goal makes and attempts are present on 1,054 of 450,176 rows and are not shown.

The record above is derived from final scores for 2025 regular season only; playoff fixtures appear in the schedule marked with their round and are excluded from it. A player appears in a roster table only if he recorded something in that block, so the passing table is not a list of everyone who dressed. Games played is games with a stat line, not games on the roster. Sacks carry a half, which is why that column shows a decimal. Where a figure is a dash the block was absent from the source row rather than recorded as zero: the older weekly files carry no offensive block at all for some seasons, and a zero there would be a number the player never earned. The tendency table is a narrower window than the schedule above it — the play log covers 2020 to 2025 only — and carries no field position or down, so there is nothing here about where on the field these plays happened. No play (penalty) is a snap wiped out by an accepted penalty: the down did not count. Measured across the whole 2020-2025 play log, all 27,755 such rows league-wide, 27,747 gained no yardage and none scored, so a no-play row carries a share of the snaps but no yards, and it drags the yards-per-play column down.