That much was obvious in the Bills' 19-16 loss to the Steelers on Saturday when the rookie receiver exited the game after taking a hit to the ribs, and the Bills' first-team offense struggled to push the ball downfield in his absence.

EJ Manuel completed 17 of his 27 pass attempts but averaged only 5.5 yards per attempt and failed to find the end zone for the third straight preseason game. Manuel was often dumping the ball off to tight end Scott Chandler or running back Fred Jackson instead of driving the ball to his receivers on deeper passes.

After a strong practice on Thursday in which Manuel was targeting Watkins often, he certainly missed the rookie on Saturday. Luckily, Watkins' injury isn't considered serious, according to Ian Rapoport. There were positives to take away from the offense's performance, but once again the final results weren't what they were looking for.

"Incomplete," Jackson said of the offense's showing. "We made some plays when we had the opportunities, but there was also some left out there. That's something we definitely have to focus on."

Here are five other observations from the Bills' loss.

1. Bills run defense again strong

The Bills wanted to fix their run defense this offseason, and if the first three preseason games are any indication, they should be much tougher against the run this season. The Bills' first-team defense allowed only 11 yards on five carries on Saturday and has allowed only 29 yards rushing this preseason on 15 designed runs. That's an encouraging sign moving forward.

2. Robert Woods makes the most of his opportunity

Sammy Watkins went down with an injury early in the game on Saturday, so Robert Woods got his chance at extended time with the Bills' first-team offense. He made the most of it, catching three passes on six targets for 49 yards. The Bills' wide receiver depth chart is crowded, but Manuel obviously has a lot of faith in Woods, so that should help the second-year receiver get his share of reps.

3. Stephon Gilmore allows another touchdown

Yes, Ben Roethlisberger made an outstanding throw, but for the second straight week Bills cornerback Stephon Gilmore allowed a touchdown. Last week it was Panthers rookie Kelvin Benjamin who beat him, this week it was second-year receiver Markus Wheaton doing the honors.

4. Defensive line depth

Landon Cohen and Stefan Charles both stood out again as the Bills backups entered the game. Charles picked up a sack and Cohen recovered a fumble and returned it deep into Steelers territory. Meanwhile, veteran defensive tackle Alan Branch didn't enter the game until late in the fourth quarter and could have an uphill battle to make the roster.

5. Thad Lewis struggles

The Bills' backup quarterback competition continues to go back and forth. Thad Lewis took the reps with the second-team offense on Saturday but was removed from the game after throwing an ugly interception. There's no clear leader in the competition at this point because both Lewis and Jeff Tuel have failed to establish himself at this point.