Week 9 of the 2021 NFL season was stocked full of upsets, and the fantasy football landscape underwent significant changes. Some players made their return from injury, including Christian McCaffrey and Jeff Wilson Jr. Other big names missed out, including Aaron Rodgers, Kyler Murray, DeAndre Hopkins and James Robinson.
PFF's fantasy football recap focuses on player usage and stats, breaking down all the vital information you need to achieve fantasy success in 2021.
Click here for more PFF tools:
Rankings & Projections | WR/CB Matchup Chart | NFL & NCAA Betting Dashboards | NFL Player Props tool | NFL & NCAA Power Rankings
- Snaps include plays called back due to penalties like offensive holding or defensive pass interference. The other three stats have these plays removed.
- Targets may differ from official NFL sources. The most likely discrepancy would be from a clear thrown away pass, where the NFL may give the target to the nearest receiver, while this data will not.
- Carries are only on designed plays. Quarterback scrambles won’t count for the total number of carries in the game.
DEN @ DAL | MIN @ BAL | LV @ NYG | ATL @ NO | HOU @ MIA | BUF @ JAX | CLE @ CIN | NE @ CAR | LAC @ PHI | ARZ @ SF | GB @ KC | TEN @ LAR |
Denver Broncos @ Dallas Cowboys
- Melvin Gordon III: 21 carries, 80 yards, 1 TD, (0% stuffed rate); 2 receptions, 15 receiving yards
- Javonte Williams: 17 carries, 111 yards (7 avoided tackles)
|Denver Broncos||Snaps||Routes Run||Targets||Carries|
|Melvin Gordon III||41||16||2||21|
|Dallas Cowboys||Snaps||Routes Run||Targets||Carries|
Trade for Melvin Gordon III: Some fantasy managers have been waiting for Javonte Williams to take over the backfield, but that’s not going to happen as long as Gordon keeps playing this well. Williams and Gordon will have plenty of fantasy value the rest of the season because their schedule only gets easier from here. He’s not a buy-low because he had a good game, but he is someone every fantasy manager should want on their roster.
Monitor Ezekiel Elliott’s health: Elliott was in and out of the first half with a knee contusion. He played closer to his usual amount of snaps in the second half prior to garbage time. The former All-Pro gained 76 yards of offense, with the team focusing more on the passing game after falling behind. If he misses any time, Tony Pollard would be a must-start in fantasy football leagues.
Don’t add Malik Turner: The backup wide receiver will stand out in terms of fantasy points because of his two touchdowns. However, both scores came in garbage time. Turner played only one offensive snap in the first 54 minutes of the game, and then he played significantly when they were down 30-0. That’s why the snap counts for the wide receivers look closer than usual. He will likely remain the sixth wide receiver on the depth chart and might not even be active once Michael Gallup is back.
Minnesota Vikings @ Baltimore Ravens
- Lamar Jackson: 27-for-41, 266 passing yards, 3 TD, 2 interceptions, 21 carries, 120 rushing yards (third-most rushing attempts by a QB in NFL history)
- Dalvin Cook: 17 carries, 110 yards, 3 receptions, 12 receiving yards
|Minnesota Vikings||Snaps||Routes Run||Targets||Carries|
|Baltimore Ravens||Snaps||Routes Run||Targets||Carries|
Add Devonta Freeman: The Ravens have been without Latavius Murray for two games, which has given Freeman time to establish himself as a clear top-two running back on the team. He played more than the other backups put together, becoming the first back to play in over half of the team's offensive snaps in over a month. He gained 79 yards on 13 carries and caught a touchdown. Even when all of the backs are healthy, Freeman should maintain a significant role in the offense. Ty’Son Williams can be cut after not handling a single carry in this game.
Add Rashod Bateman: The Ravens wide receiver remains available in over 75% of ESPN leagues despite continuing to play well. He was targeted a career-high eight times today, leading to five catches for 52 yards. He also received a career high in terms of percentage of offensive snaps. That’s impressive considering how many plays Baltimore ran today. In the right matchup, he is already a borderline fantasy starter. He should only get better from here.
Buy low on Adam Thielen: Thielen didn’t have a great game with just six yards receiving, but he did score a touchdown. The veteran receiver scored 14 touchdowns last season, and he’s at seven at the halfway point this year. His target share is a little higher than last year, so he remains someone worth starting in fantasy football despite this one bad game.
Las Vegas Raiders @ New York Giants
- Hunter Renfrow: 7 receptions, 49 yards, 1 TD (2.9 aDOT)
- Evan Engram: 3 receptions, 38 yards, 1 TD (12.0 threat rate)
|Las Vegas Raiders||Snaps||Routes Run||Targets||Carries|
|New York Giants||Snaps||Routes Run||Targets||Carries|
Monitor the Giants' wide receivers: New York's wide receivers have struggled to stay healthy all season. Sterling Shepard and Dante Pettis missed this game, while Kenny Golladay, Karadius Toney and John Ross were limited all week due to various injuries. This left New York rotating wide receivers in and out, and no wide receiver caught more than two passes. The only healthy player was Darius Slayton, who was held without a catch and can be dropped in fantasy leagues. It could be hard to trust any of these players until they stop showing up on the injury report.
Start Hunter Renfrow: Zay Jones became an every-down starter this week, catching one of the four passes thrown his way. However, because the Raiders are now thin at receiver, the team's regular starters all ended up with a larger target share. This included Renfrow, who will likely be the clear top wide receiver the rest of the season. With how well Derek Carr has played in most games, this should make Renfrow a typical fantasy starter.
Add DeSean Jackson: Reports surfaced that Jackson would be signing with the Raiders shortly after the conclusion of the game. He will be a direct replacement for Ruggs, as they were two of the seven wide receivers with over 17.0 aDOT and over 30 targets over the last two seasons. The difference is Jackson has graded better in that time. It shouldn’t take long for him to overtake Zay Jones in playing time. If he gains chemistry with Derek Carr, he could become a fantasy starter.
Add Evan Engram in deep leagues only: Engram was the Giants' top receiving option all game and recorded a team-leading 38 receiving yards and their only offensive touchdown. Especially promising is the fact that he ran a route on all but one pass play.
Engram's ceiling isn’t very high because of his past play, and the wide receivers should eventually get healthier. But, due to his role in the offense, his floor is also higher than most tight ends. He’s not an ideal option at the position, but fantasy managers can do a lot worse.
Atlanta Falcons @ New Orleans Saints
- Alvin Kamara: 13 carries, 50 yards, 1 TD, 4 receptions, 54 receiving yards (5 total avoided tackles)
- Cordarrelle Patterson: 9 carries, 10 yards, 6 receptions, 126 receiving yards (30.0% threat rate)
|Atlanta Falcons||Snaps||Routes Run||Targets||Carries|
|New Orleans Saints||Snaps||Routes Run||Targets||Carries|
|Mark Ingram II||26||11||5||9|
Time to worry about Alvin Kamara: When the Saints added Mark Ingram II, it was clear that Kamara wouldn’t see 30 touches in a game again. He was down to 17 touches on Sunday compared to 14 by Ingram. New Orleans has largely played in competitive games so far, but the schedule will be getting easier. It’s possible the Saints give the ball to Ingram even more so Kamara can be more well rested for a potential playoff run. He is still a must-start every week, but it’s seeming less likely he will be a top-three running back the rest of the season.
Add Adam Trautman: The second-year tight end has become a larger part of the Saints offense as the season has progressed. He played between 86% and 88% of offensive snaps in each of the last four games. The former tight end from Dayton had career highs in targets (7), receptions (4) and yards (54) with Juwan Johnson as a healthy inactive. It would be risky to put him in starting lineups, but everything is trending in the right direction for him.
Don’t add Olamide Zaccheaus: The 24-year-old caught three passes for 58 yards and two touchdowns to help lead the Falcons to victory. Despite the success, he remained the clear third wide receiver in Atlanta’s offense. The Falcons use more two tight end sets than most teams and more two running back sets. That makes it harder for a third wide receiver to have fantasy value. Zaccheaus had only caught one pass in each of the previous two games.
Houston Texans @ Miami Dolphins
- Myles Gaskin: 20 carries, 34 yards, (34 yards after contact), 1 TD, 6 receptions, 23 receiving yards
- Brandin Cooks: 6 receptions, 56 yards (23.5% threat rate)
|Houston Texans||Snaps||Routes Run||Targets||Carries|
|Miami Dolphins||Snaps||Routes Run||Targets||Carries|
Start Jaylen Waddle: The first-round rookie wide receiver remains the brightest spot on the Dolphins offense no matter which quarterback is throwing his way. He received at least 84% of offensive snaps for the fourth straight game. He leads all offensive players in targets over the last four weeks (as of the end of the early slate of Sunday games). The former Alabama wide receiver has too high of a floor to leave on the bench.
Monitor the health of Scottie Phillips: The Texans fourth running back on the depth chart suffered a leg injury and didn’t return to the game. His four snaps all occurred in the middle of the second quarter.
This was basically a two-man backfield to start the game with Phillip Lindsay and David Johnson. The more the Texans fell behind, the more Rex Burkhead got involved. The only way a running back on this roster will become fantasy relevant is if the team starts playing a lot better or it becomes a two-man backfield.
Sell high on Myles Gaskin: This was Gaskin’s best game of the season from a usage perspective. He ran the ball 20 times compared to his previous season-high of 15. It was also his first time above 70% of offensive snaps all season, a mark he hit in half of his games last year.
On the down side, his efficiency rushing wasn’t good with 34 yards on those 20 carries. This game will likely hurt his chances of seeing this much work again. Miami has a short week and will face the Ravens, who have a much better run defense and a game script that will be very different. After that, Malcolm Brown will be eligible to return from injured reserve. Gaskin's offensive touches will decline after today.
Buffalo Bills @ Jacksonville Jaguars
- Stefon Diggs: 6 receptions, 85 yards (2 avoided tackles)
- Dan Arnold: 4 receptions, 60 yards (2 explosive catches)
|Buffalo Bills||Snaps||Routes Run||Targets||Carries|
|Jacksonville Jaguars||Snaps||Routes Run||Targets||Carries|
|Marvin Jones Jr.||51||29||5||0|
|Laviska Shenault Jr.||48||25||5||1|
Add and start Dan Arnold: The former Panther has been the Jaguars' top receiving tight end for four games now, and he’s gained 60 or more yards in three of them. He sits among the top 10 tight ends in receiving yards over the past five weeks despite the Jaguars having their bye week in that time. He would have a lot more fantasy value if Jacksonville made it into the end zone more often. Even without a touchdown, there are few tight ends with a fantasy floor as high as his currently.
Monitor the health of Zack Moss: The Bills running back suffered a head injury early in the third quarter and didn’t return to the game. Devin Singletary took over for the rest of the contest, as Matt Breida was inactive as usual. If Moss misses any time, then Singletary would be a fantasy starter, as he would likely see at least 75% of the offensive snaps.
It’s worth noting that Moss fantasy managers had reason for concern before the injury. Moss has consistently been seeing more playing time than Singletary with more routes run. Singletary was the player with the most routes at halftime. The former Florida Atlantic running back caught seven passes for 43 yards, compared to just two catches by Moss. There is a chance Moss could be fully healthy next week but not see enough playing time to be a fantasy starter.
Monitor the health of James Robinson: The Jaguars held out hope all week that Robinson could play with a heel injury, but he was ultimately inactive. Carlos Hyde saw the vast majority of snaps at running back, carrying the ball 21 times but managing just over three yards per attempt. If Robinson is inactive again, then Hyde is a safe start because Jacksonville doesn’t seem to trust any of its other running backs. We could also see these two backs split time until Robinson is fully healthy.
Cleveland Browns @ Cincinnati Bengals
- Nick Chubb: 14 carries, 137 yards, 2 TD, (120 yards after contact); 2 receptions, 26 receiving yards
- Joe Mixon: 13 carries, 64 yards, 2 TD, (30.8% first down rate); 5 receptions, 46 receiving yards
|Cleveland Browns||Snaps||Routes Run||Targets||Carries|
|Cincinnati Bengals||Snaps||Routes Run||Targets||Carries|
|Stanley Morgan Jr.||14||6||0||0|
Add Donovan Peoples-Jones: The second-year receiver has been a starter all season when healthy but has secured a spot in the lineup the rest of the season after Odell Beckham Jr.‘s release. He caught only two passes, but they went for 60 yards and a touchdown and 26 yards. This was his third straight game with at least 70 yards.
The game script and time of possession meant the Browns only attempted 21 passes all game. In future weeks, he will see more targets and continue to gain a lot of yards.
Drop Austin Hooper: The Browns tight end has been a cut candidate for most of the season, as he’s been splitting time with David Njoku. This has left both players running a route on roughly half of the pass plays each week. He caught two passes for 14 yards in this game. On the season, he’s never had more than 42 yards in a game, and he's found the end zone just once. He’s still rostered in 23% of ESPN leagues, which is too high.
Sell the Bengals wide receivers: The Bengals spent the entire game playing from behind, which meant the Burrow was forced to throw the ball 40 times. Over half of them went to one of the three starting wide receivers, but they didn’t make much of those targets. Tee Higgins had the best game with 78 yards on six catches. Ja’Marr Chase struggled with contested catches, while Tyler Boyd was rarely targeted.
Cincinnati has a bye next week, but the schedule doesn’t get any easier from Week 11 onward. The sell-high window has probably closed, but there is a chance some fantasy manager has higher hopes of a rebound.
New England Patriots @ Carolina Panthers
- Christian McCaffrey: 14 carries, 52 yards; 4 receptions, 54 receiving yards (4.5 YPRR)
- Damien Harris: 15 carries, 30 yards, (29 yards after contact), 1 TD; 1 reception, 3 receiving yards
|New England Patriots||Snaps||Routes Run||Targets||Carries|
|Carolina Panthers||Snaps||Routes Run||Targets||Carries|
|Terrace Marshall Jr.||22||18||1||0|
|Willie Snead IV||17||16||2||0|
Drop Chuba Hubbard: Christian McCaffrey returned to the Panthers' starting lineup and played in a limited capacity. Instead of the Panthers using a two-man backfield, Ameer Abdullah continued to be involved in the offense. If the offense remains as is, Hubbard can’t be put in starting lineups.
The chances are that McCaffrey will take a larger share of the snaps and touches over time. It’s okay to hold onto Hubbard in larger leagues, but he will only have value if McCaffrey gets hurt again.
Monitor the Patriots' backfield injuries: Damien Harris and Rhamondre Stevenson both left the game with head injuries in the fourth quarter and neither returned. Harris scored a touchdown, but Stevenson had the more impressive day, recording twice as many rushing yards and a 41-yard catch.
This is starting to become a backfield to avoid when everyone is healthy, as Stevenson is establishing himself as a clear part of the rotation. It’s possible Harris or Stevenson could have significant value in the short term if the other back misses time.
Drop Robby Anderson: Anderson remains a non-factor in the Panthers' offense. He caught one pass for 2 yards, marking his fourth straight game with less than 20 receiving yards.
His target ceiling fell with the return of Christian McCaffrey, and his playing time could eventually fall with the addition of Willie Snead IV. In Snead’s first game with the Panthers, he played in just under half of the team’s pass plays. No one on the roster was threatening his playing time before, but now we could start to see more three-receiver sets with D.J. Moore, Terrace Marshall Jr. and Snead.
Los Angeles Chargers @ Philadelphia Eagles
- DeVonta Smith: 5 receptions, 116 yards, 1 TD (5 explosive plays)
- Keenan Allen: 12 receptions, 104 yards (6.0 aDOT)
|Los Angeles Chargers||Snaps||Routes Run||Targets||Carries|
|Larry Rountree III||6||4||0||1|
|Philadelphia Eagles||Snaps||Routes Run||Targets||Carries|
Add Jordan Howard: Boston Scott surprisingly led the backfield last week in Miles Sanders’ absence, but Howard still scored two touchdowns. Today Howard led the team in carries, gaining 71 yards and a touchdown. Kenneth Gainwell largely got involved in garbage time last week, but he was used a little more throughout to further complicate things.
The Eagles have at least one more week without Sanders, and it’s a favorable matchup against the Broncos. There are other very favorable games on the schedule as well in case Sanders misses more time. Philadelphia could completely change their strategy again next week, but the matchups and opportunity are too good not to have Howard on a fantasy roster.
Josh Palmer trending up: The third-round rookie receiver split time with Jalen Guyton for the first time all season. He caught both passes thrown his way for 22 yards. He had just seven catches over the first seven games of his career. This isn’t enough to get him on fantasy rosters in the short-term, but he could become fantasy relevant by the end of the season.
Drop Jared Cook: The Chargers have continued to shift toward a committee at tight end. Donald Parham and Stephen Anderson both scored touchdowns, and both had season-highs in receiving yards. It was also the first time Cook’s percentage of offensive snaps dropped below 50%. The former Saint will remain a part of the offense the rest of the season, but opportunities will be harder to come by.
Arizona Cardinals @ San Francisco 49ers
- James Conner: 21 carries, 96 yards, 2 TD, (0% stuffed rate); 5 receptions, 77 receiving yards, 1 receiving TD
- George Kittle: 6 receptions, 101 yards, 1 TD (2.97 YPRR)
|Arizona Cardinals||Snaps||Routes Run||Targets||Carries|
|San Francisco 49ers||Snaps||Routes Run||Targets||Carries|
Monitor the Chase Edmonds injury: Edmonds limped off the field after his first play and didn’t return to the game. James Conner took the vast majority of snaps in his absence and dominated both on the ground and in the air to lead the Cardinals to victory. The former Steeler had games similar to this in Pittsburgh, but it was good to see Arizona trusting him in this role without Edmonds. Conner is already a fantasy starter when everyone is healthy, but he would have top-10 fantasy potential if Edmonds misses time.
Monitor the health of the Cardinals wide receivers: Arizona didn’t have DeAndre Hopkins or A.J. Green for Week 9. This forced Christian Kirk to the outside so Rondale Moore could play in the slot, while Antoine Wesley played over Andy Isabella in the other receiver spot. Kirk played well, catching all six passes thrown his way for 91 yards, and even completing a pass. Kirk should remain in fantasy starting lineups as long as one of their two starters is out of the lineup.
Drop Trey Sermon: The third-round rookie was back to being a healthy inactive after Jeff Wilson Jr. returned to the active roster. San Francisco didn’t change their strategy at running back, giving Elijah Mitchell nearly all of the early-down work and JaMycal Hasty nearly all of the third downs. Wilson didn’t see any snaps in his first game back, but he could join the rotation with more practice.
Green Bay Packers @ Kansas City Chiefs
- Travis Kelce: 5 receptions, 68 yards, 1 TD (18.9% threat rate)
- A.J. Dillon: 8 carries, 46 yards, (4.1 yards after contact per carry); 4 receptions, 44 receiving yards
|Green Bay Packers||Snaps||Routes Run||Targets||Carries|
|Equanimeous St. Brown||3||0||0||0|
|Kansas City Chiefs||Snaps||Routes Run||Targets||Carries|
Avoid the Packers tight ends: The Packers recently lost Robert Tonyan for the season, but they have used multiple players at the position in various roles all year. Tonight, there wasn’t a tight end clearly suited to take over the receiving role.
Instead, Green Bay's strategy was to shift toward more four-wide receiver sets, with all of Green Bay’s wide receivers healthy for the first time in over a month. This could be good news for the Packers' wide receivers once Aaron Rodgers is back. No tight end ran more than 10 routes, and none of them saw more than two targets.
Aaron Jones is trending down: A.J. Dillon continues to outperform the longtime Packers running back. The two players handled relatively similar workloads, with Dillon averaging more yards per carry. Dillon caught all four passes thrown his way for 44 yards, while Jones didn’t catch any of his targets. This was the easiest game remaining on the Green Bay running backs' schedule, with a rough three-game stretch coming up. Jones still has enough talent and will receive enough volume to be in starting lineups, but his rest-of-season rankings are on the decline.
Monitor the Kansas City wide receivers: The Kansas City passing game still isn’t operating nearly as well as everyone expected. No receiver had more than 25 receiving yards in this game, but their usage continues to evolve. Josh Gordon continued to be more involved in the wide receiver rotation, just like last week, but he was held without a catch for the fourth straight game.
Demarcus Robinson playing time remains on the downturn. He played fewer than 50% of offensive snaps last week for the first time all season. Today, he fell to fifth on the depth chart. Once Kansas City’s offense is able to get back on track, it’s possible one of the other receivers can more consistently play well with more routes run.
Tennessee Titans @ Los Angeles Rams
- Cooper Kupp: 11 receptions, 95 yards (4.6 aDOT)
- Robert Woods: 7 receptions, 98 yards (3 explosive plays)
|Tennessee Titans||Snaps||Routes Run||Targets||Carries|
|Los Angeles Rams||Snaps||Routes Run||Targets||Carries|
Add D’Onta Foreman: The Titans used multiple backs to replace Derrick Henry. The game started with Adrian Peterson handling the early-down work and Jeremy McNichols taking the field for third downs and the two-minute drill. A lot of McNichols' touches occurred at the end of the first half when Tennessee seemed undecided whether they were going to run out the clock or try to score. It’s unlikely his role will increase, making his fantasy value minimal.
Peterson was largely ineffective running with the ball, which is why Foreman led the team in snaps over the second and third quarters outside of the two-minute drill. The fifth-year back still recorded more rushing yards despite finishing with half the number of carries Peterson handled. It wouldn’t be surprising if Foreman became the lead back at some point if he keeps outplaying the future Hall of Famer.
Add Van Jefferson: The Rams basically stayed in 11 personnel all game, with Jefferson taking the field on nearly every play. He caught three passes for 41 yards, giving him similar numbers to the rest of the Rams receivers. The other receivers took a larger lead over Jefferson in the last few minutes of the game. He should continue to play over 90% of snaps each game with DeSean Jackson off the roster, and his target share should remain high. He’s still available in over 60% of ESPN leagues.
Julio Jones is trending up: Jones' season has been disrupted with injury. When he’s been able to play over the last month and a half, his role was limited. He didn’t receive as much time tonight as other teams' No. 2 receivers, but that’s largely because the Titans ran a lot of three-tight end or other goal-line sets.
The vast majority of the time, when the Titans had two or more receivers on the field, he was among them. The former Falcon caught all four passes thrown his way for 35 yards, finishing second on the team in receiving yards. In different game scripts, he should be heavily involved in the offense.