Ingredients
Method
Step 1: Prepare and Parboil Your Potatoes
- Fill a large stockpot with water and add your cubed potatoes. This is critical: generously salt the water—I mean salt it almost like pasta water. The potatoes will begin absorbing seasoned water from the moment they hit the pot, which means they'll be flavorful all the way through, not just on the surface. Bring to a rolling boil and cook for exactly 10 minutes, or until a fork easily pierces the largest piece. You want them almost tender but not quite cooked through—they'll finish cooking in the soup itself. This prevents mushiness. Why this approach? The parboiling step removes excess starch from the potato surface, which means your finished soup will be creamy from the roux, not cloudy from loose starch. Drain thoroughly and set aside on a clean kitchen towel to absorb any excess moisture.

Step 2: Render the Bacon and Build Your Fat Base
- In a large Dutch oven or soup pot, add your diced bacon over medium-high heat. Let it cook undisturbed for the first minute—this helps the fat render—then stir occasionally until the bacon is deeply browned and crispy, about 8 minutes total. Don't rush this step. The Maillard reaction happening on that bacon is creating complex, savory flavor compounds that are the foundation of your entire soup. Remove the bacon with a slotted spoon to a paper towel-lined plate. Now here's where many home cooks go wrong: they either keep all the bacon fat (making the soup too heavy) or drain it completely (losing flavor). Leave exactly 2 tablespoons of that golden bacon fat in the pot. It's the perfect amount for building your roux without any greasiness.

Step 3: Create an Aromatic Base With Butter and Vegetables
- Add your 2 tablespoons of unsalted butter to the bacon fat—these two fats together create a more sophisticated flavor than either alone. Once melted and foaming slightly, add your grated onion. The reason I grate rather than dice? Grated onion distributes more evenly and dissolves partially into the fat, creating a seamless aromatic base that seasons every spoonful. Cook for 2-3 minutes, stirring occasionally, until the onion softens and begins to brown ever so slightly. You'll notice the fat starting to look slightly darker and smell intensely savory. This is the Maillard reaction again—flavor development in real-time. Now add your minced garlic and cook for exactly 1 minute more, stirring constantly. Stop at 1 minute—longer than that and garlic turns bitter.

Step 4: Make Your Roux (The Silkiness Secret)
- Sprinkle your measured flour directly over the butter-fat mixture and stir constantly for 1-2 minutes. This step is non-negotiable for texture. You're cooking out the raw flour taste while the fat coats each flour granule, preventing lumps when liquid hits it. The mixture will look like wet sand—that's exactly right. Some cooks skip this roux step and just add thickener at the end, but that approach gives you either gritty soup or unevenly thickened broth. The proper roux method creates an emulsion—the fat, flour, and liquid become chemically bonded, creating genuine creaminess.

Step 5: Whisk in Liquid Gradually (The Critical Part)
- Here's where technique separates good soup from great soup. Pour in your milk one cup at a time, whisking vigorously after each addition until completely smooth before adding the next portion. Once all milk is incorporated, whisk in your chicken broth in the same gradual manner. This prevents lumps and ensures the roux emulsifies properly. After all liquid is added, you should have a smooth, slightly thickened mixture with absolutely no lumps. If you do see lumps, strain the mixture through a fine-mesh sieve—don't skip this if needed, as it's your last chance to fix the texture.

Step 6: Add Potatoes and Half the Bacon
- Stir your drained parboiled potatoes into the pot along with half of your cooked bacon (save the other half for garnish). The soup should look generous with vegetables at this point. Increase heat to medium-high and bring the entire mixture to a gentle boil—you'll see lazy bubbles breaking across the surface. Once boiling, reduce heat to a simmer, partially cover the pot, and cook for 5 minutes. This finishing time allows the potatoes to completely tenderize while staying in their semi-firm state, and it lets all the flavors marry together without overcooking anything.

Step 7: Finish With Cheese and Sour Cream
- Remove the lid and stir in your shredded cheddar cheese, a handful at a time, stirring until each addition is completely melted and smooth. Medium cheddar provides sharpness without being overwhelming—if you use mild, the soup tastes flat; sharp is too aggressive. Once all cheese is melted, remove from heat and stir in your sour cream. The sour cream is essential here—it adds tang that cuts through the richness and brightens the overall flavor profile. If you're using Greek yogurt instead, the texture will be slightly thinner, so adjust your potato-mashing in the next step accordingly.

Step 8: Adjust Consistency and Seasonings
- Taste a spoonful and adjust salt and pepper to your preference. Now, here's the texture-perfecting final step: take your whisk and use the wires to gently break up the potato pieces in a mashing motion. You're not making mashed potato soup—you want roughly 30-40% of the potatoes to stay intact, while the rest break down slightly and thicken the broth naturally. This is where you control the final consistency. Like it brothier? Mash less. Prefer it thicker? Mash more. Once you've reached your ideal texture, taste again and make any final seasoning adjustments.

Step 9: Plate With Proper Garnishing
- Ladle into bowls and top each serving with a small handful of remaining crispy bacon, a small scatter of fresh green onion, and a small dollop of sour cream or Greek yogurt. The contrast of temperatures and textures—hot soup, cool sour cream, crispy bacon, fresh onion—is what makes each spoonful interesting. This isn't just garnish; it's the final flavor layer.

