Democrats suffered because a lot of their voters are urban

One of the biggest disadvantages Democrats face in House elections is the fact that their candidates tend to win by bigger margins than Republican candidates do. That sounds like a good thing, but it also means they have more wasted votes (that is, votes above the last one needed to win the election). If those wasted votes were distributed in other races, they could theoretically swing some additional seats toward Democrats. A significant factor here is that Democrats tend to cluster geographically in cities. Redistricting tends to lean in favor of keeping geographic regions together, which means heavily Democratic urban districts and less heavily Republican rural distrcts, implicitly advantaging Republicans. To avoid that, you'd need to draw districts that blend together areas with little in common (inner city Pittsburgh with central Pennsylvania, for example). These kinds of districts are, as political scientists Jowei Chen and Jonathan Rodden put it, "unlikely to emerge by chance from a nonpartisan process," and they're definitely unlikely to emerge from a partisan, Republican-led redistricting process. And there were far more nonpartisan or Republican-led redistricting processes than Democrat-run ones. The result is that wasted votes create a significant (~ 6%) advantage for Republicans, as illustrated by the chart above.