The top seed saw off the German 6-3 7-5 6-2 within one hour and 34 minutes on Centre Court to maintain his stellar form at the tournament.
Federer is yet to drop a set or face a break point in any of the three contests he has played so far, and his winning streak at Wimbledon now spans 29 matches.
The world number two broke his opponent for the first time in the sixth game of the first set and held his advantage to clinch it without too much resistance.
Struff settled into the game in the second set and the German's big serve caused Federer a few problems, but the Swiss broke him in the 11th game of it and did not look back.
In the third and final set, Federer broke for 2-1 and again for 5-2 before serving out to love and clinching the match point with an unstoppable ace.
Federer will play French 22nd seed Adrian Mannarino in round four.