Get the Recipe
Everything you need to know about eating and cooking with curds
In the world of cheaty foods, broccoli cheese soup has always seemed like one of the cheatiest. Yes, "broccoli" is the first word in the name, and "soup" sure sounds healthy, but let's get real: When you go up to the counter and tell the order-taker, "I'd like a bowl of broccoli cheese soup, please," what you're really saying is "Thank you for making it easy and acceptable to drink a bowl of nacho cheese sauce for lunch."
There's nothing wrong with owning it. Cheese is delicious, and not every single lunch has to be virtuous. Still, I sometimes wish that the broccoli part of the whole thing was taken a little more seriously, if only for the purely selfish reason that I love broccoli.
My goal here was to create a recipe for broccoli cheese soup that was as comforting as the ultra-cheesy kind you typically find, but simultaneously really tasted like broccoli.
Building in the Broccoli
For my first test, I used a very common technique: Sauté onions and carrots in butter until softened but not browned, since browned onions and carrots become distractingly sweet. Add some chicken stock to the pot—water also works fine, though chicken stock lends more flavor—along with some dairy. (I tested heavy cream, regular milk, and skim milk and found that straight-up whole milk was best; it provided creaminess without an overwhelming amount of extra dairy fat, which can dull flavors.) Thicken with starch. Simmer. Blend in cheese. Add broccoli and cook just until tender.
With this approach, I wound up with a soup that tasted like what it was: cheese soup, with bits of broccoli floating in it.
Next, I went the opposite route, testing a few recipes that called for simmering the broccoli for a long, long time (these tended to be slow-cooker recipes). These soups ended up tasting very much like the chafing-dish version you're probably familiar with if you ever eat lunch at Panera: broccoli flavor built right into the soup, but no brightness or freshness to speak of.
This wasn't surprising. Anybody who has made my pasta with braised broccoli, or the braised broccoli rabe recipe from my book, knows that the flavor of broccoli will change dramatically based on how long it's cooked. Cook it for a short period of time, and it stays grassy and bright. Cook it for a very long period, and it turns rich and savory.*
* Interestingly, a recent recipe from America's Test Kitchen for cauliflower soup found that the same holds true for cauliflower. I'm guessing it's a common trait in all brassicas.
Each style has its appeal, but what I really wanted was both: deep broccoli flavor worked into the soup, along with pieces of bright, fresh, grassy broccoli. So how do we get the best of both worlds? Simple: Just add the broccoli in two different stages.
I started by separating heads of broccoli into stems and florets, cutting the florets into bite-size pieces. Next, I chopped up the stems and sautéed them in butter, along with onion and a carrot. (I also tried leek and celery, but found them unnecessary.) I added some sliced garlic to the blend as well, sautéing it just until aromatic.
After adding my stock and dairy and giving the soup base a good long simmer to fully tenderize the broccoli stems, I puréed the whole thing using an immersion blender, adding grated cheddar cheese to the pot as I blended. The texture of the soup wasn't exactly where I wanted it to be (a little grainy), but I figured I could focus more on that after I'd worked out the broccoli flavor issue.
The resulting soup was delicious, with nicely layered broccoli flavor, but it could have been even better. I'd already enhanced the flavor of the vegetable by playing with the variable of time—what if I were to also play with the variable of heat? Just like Brussels sprouts, broccoli gets an intensely sweet, nutty flavor when subjected to very high heat. There had to be a good way to take advantage of that.
How could I incorporate that flavor into the soup? My first thought was to roast the broccoli stems, as Daniel does for his roasted-broccoli soup, but roasting and then simmering seemed a little fussy for a single recipe. Instead, I decided to do it all on the stovetop by searing the broccoli florets in a bit of oil right at the start, then transferring them to a baking sheet to cool while I constructed the rest of the soup base.
Doing this allowed me to add those browned florets back to the soup before serving, pulsing them with the immersion blender just enough to break them apart and spread some of that sweet, nutty flavor around. The resulting soup had great, multilayered broccoli flavor. Now it was time to turn my attention to the other important element: the cheese.
Chasing Maximum Cheesiness
I went with a combination of grated sharp cheddar and chunks of American cheese that I got from the deli case. (Check out this article on American cheese for more details about the difference between the deli and the presliced stuff.) This combo provides a nice mix of sharp, "flavorful" cheese and the more comforting, dairy-forward character of mild American. (There's nothing stopping you from using all cheddar, all American, or any other young, moist cheese, of course.)
It's easy to think "Just add more cheese!" if you want a cheese soup to be cheesier, but anyone who's ever tried dumping grated cheese into a pot of simmering liquid knows that it doesn't quite work like this. Your cheese ends up clumping in a solid mass, with a slick of fat breaking out and floating on the surface. Why does this happen?
Let's take a quick look at what cheese is made of:
- Water is present to varying degrees. Young cheeses, like Jack, young cheddars, or mozzarella, have a relatively high water content—up to 80%. The longer a cheese is aged, the more moisture it loses, and the harder it becomes. Hard cheeses, like Parmigiano-Reggiano or Pecorino Romano, may be as little as 30% water after several years of aging.
- Milk fat, in the form of microscopic globules kept suspended in a tight matrix of protein micelles (more on those in a second). Under about 90°F, this fat is solid. Because of this, and because of their suspension, the globules don't come into contact with each other to form larger globules, so cheeses stay creamy or crumbly instead of greasy.
- Protein micelles are spherical bundles of milk proteins. Individual milk proteins (the main ones are four similar molecules called caseins) resemble little tadpoles (or sperm, if you will), with hydrophobic (water-avoiding) heads and hydrophilic (water-seeking) tails. These proteins come together headfirst in bundles of several thousand, protecting their hydrophobic heads and exposing their hydrophilic tails. These micelles link together into long chains, forming a matrix that gives the cheese structure.
- Salt and other flavorings make up the rest of the cheese. Salt can have a profound effect on the texture of the cheese—saltier cheeses have had more moisture drawn out of the curd before being pressed, so they tend to be drier and firmer. Other flavorful compounds present in cheese are mostly intentional by-products of bacteria and aging.
Normally, these four players work together in relative harmony. But heat messes the whole thing up. Here's what Harold McGee has to say in On Food and Cooking:
First, at around 90°F, the milk fat melts, which makes the cheese more supple, and often brings little beads of melted fat to the surface. Then at higher temperatures—around...150°F/65°C for Cheddar...enough of the bonds holding the casein proteins together are broken that the protein matrix collapses.
The key to making a cheese soup that stays creamy and emulsified is to find a way to ensure that the fat globules don't band together and that the proteins don't tighten up too much. Fortunately, after developing my recipes for cheese sauce and Ultra-Gooey Stovetop Mac and Cheese, I have a bit of experience in this field.
The common solution is to use a flour-based roux. Flour can thicken up the water phase of the soup, which in turn makes it difficult for fat globules to coalesce. Just like in a creamy Mornay sauce, the cheese can't separate. But starch-thickened sauces tend to have a particular texture that I find off-putting. Rather than glossy and smooth, like melted cheese, they end up more pasty and dull. I wanted to avoid using a flour-based roux in my soup.
First, I tried substituting evaporated milk for the whole milk I was using in the recipe. Evaporated milk has a higher concentration of loose milk proteins, which can help to keep the mixture emulsified. The downside is that evaporated milk tastes like cooked milk. This flavor isn't so distracting in a cheese sauce or mac and cheese, both of which have a very high percentage of cheese, but it didn't work for the soup.
Next, I turned to other thickeners and emulsifiers: cornstarch, sodium citrate, and...a potato. (One of these things is not like the other. Consider this foreshadowing.)
Cornstarch works much better than flour, especially if you add it by tossing the grated cheese with it, which allows you to incorporate it smoothly, with no chance of clumping. But it's still got the problem of being slightly, well, starchy.
Sodium citrate works incredibly well in this context. It's a salt that works on a chemical level to maintain a stable emulsion between fat and water. A little pinch of it in cheese soup or cheese sauce can make almost any cheese melt with the texture of Velveeta. However, at least until it becomes a more common pantry staple, I wanted to find a solution using ingredients available at any supermarket.
That led me to the humble potato. If you've ever made the mistake of trying to make mashed potatoes in a food processor or blender, you know that blending potatoes can turn them incredibly sticky and starchy, almost like bubble gum. For mashed potatoes, this is bad. But, when it's deployed in a controlled manner, this effect can be a powerful tool in your kitchen arsenal. It's the same technique I use to give my dairy-free Vegan Nacho Sauce a gooey, cheese-like texture, and it proved to work just as well in this soup.
By adding a few ounces of potato to the soup base along with the stock and simmering it along with the broccoli, I was able to thicken up the broth enough that the cheese stayed perfectly creamy and emulsified when I blended it in at the end. As a final flavor boost, I also added just a teaspoon of dried mustard (tossed with the cheese) and a dash of hot sauce.
I blended it all together, then stirred in my charred broccoli florets.
It was everything I've ever wanted in a broccoli cheese soup: intensely cheesy, but with a strong broccoli backbone. Which, come to think of it, is exactly the way I'd describe Crucifer-Man, the wisecracking, half-man/half-brassica superhero who fights ecoterrorists by flinging extra-crispy baked kale chips.
Unlike this soup, he's not very effective.