Fresh Mozzarella From Scratch Recipe

A partially sliced ball of homemade fresh mozzarella cheese on a wooden cutting board.
Making mozzarella from scratch isn't nearly as hard as you think.

Serious Eats/Vicky Wasik

Why It Works

  • Using non-homogenized milk, pasteurized at under 170°F (77°C) guarantees viable curd.
  • Setting the mozzarella in room-temperature whey yields better flavor and texture than using an ice bath.

At Serious Eats, we were lucky enough to work for a time right across the street from Di Palo Selects, an Italian fine-foods store that just happens to make some of the best fresh mozzarella I've ever tasted. It's milky, tender, and mild, with a faint layer of cream beneath the skin that gushes a little when you slice it. In other words, this isn't that stiff, tough ball of vacuum-sealed supermarket mozzarella, and it's definitely not the low-moisture cooking mozzarella that you throw on pizzas or lasagnas. It's mozzarella for savoring on its own, perhaps with a sprinkle of sea salt, or torn up for a simple Caprese salad. This mozzarella? You buy it when it's still warm, and it never goes into the fridge.

But what about those of us who don't have the benefit of living or working close to a great fresh-mozzarella source? Is there a way that everyone out there can get their hands on the good stuff? A quick Google search for homemade mozzarella will give you an emphatic yes: There are countless recipes for fresh mozzarella and dozens of different DIY kits for sale, all of which promise better-than-store-bought results. Unfortunately, it also doesn't take much testing to realize that there's a whole lot more to making excellent fresh mozzarella than the right equipment and a reliable recipe. While experience doesn't hurt, it really all boils down to the milk.

Milk 101: Selecting the Right Milk

Before we dig into the nitty-gritty, it's important to understand that milk contains two types of proteins—casein and whey. Turning milk into cheese starts by causing the caseins to coagulate into milky curds, leaving behind a cloudy, watery by-product, also known as whey. There are two ways to effect these changes: with rennet (an enzyme found in the stomach of unweaned grazing animals, like calves and lambs) or with acids (like lemon juice or vinegar), both of which do their thing in combination with heat. In the case of mozzarella, we'll be using rennet and citric acid.

But, in order for the rennet and acid to actually work, the milk proteins themselves also have to be in the right condition. That's why virtually every recipe for mozzarella will insist that the best cheese comes from the freshest, least processed milk. Longer-term storage at low temperatures, high-temperature pasteurization, and homogenization can all alter the protein structures, ultimately wreaking havoc on your ability to make great cheese.

So what does that mean for those of us without a herd of dairy cows in the backyard?

For starters, go non-homogenized. Most farmers market milks are non-homogenized, but my supermarket usually carries a few cartons as well. These milks are filled with nice big dairy-fat globules that rise up to the top, for a recognizable cream line at the neck of the bottle. Homogenized milk, on the other hand, has been processed by a high-pressure pump that breaks those blobby fats into smaller bits, increasing their surface area by up to 10 times. When this happens, "the milk proteins migrate and stabilize around those new fat globules," explains Dr. Lloyd Metzger of South Dakota State University's dairy science department. The distribution of fat and protein changes so drastically in this process that it's virtually impossible to make homogenized milks into viable mozzarella.

If you absolutely cannot find non-homogenized milk, Metzger recommends purchasing a gallon of skim milk and adding a carton of cream to it, rather than using homogenized whole milk. The only obstacle? That skim milk also has to meet our other major standard for cheese-making: lower-temperature pasteurization.

"The minimum legally required temperature for pasteurization [145°F/63°C] basically has no effect on the protein," explains Metzger. "But when you get to the 170, 175°F [77, 79°C] point, the casein and the whey proteins actually start to interact with each other." Those whey proteins, he elaborates, "are similar to the proteins in eggs—when they get too hot, they start to aggregate, and they take the casein proteins with them. What you're left with are proteins that won't coagulate into the kind of curds needed to stretch mozzarella cheese."

This is a tricky but crucial point. Ultra-pasteurized milk is heated to a whopping 280°F (138°C), which leaves a lot of wiggle room between that 145°F baseline. Since pasteurized milk rarely comes with a precise temperature printed on the carton, I highly recommend calling the dairy or manufacturer to find out the precise temperature at which the milk is pasteurized—simply avoiding ultra-pasteurized milk isn't a reliable workaround.

If you live somewhere with access to farm-fresh raw milk, and feel comfortable with the pros and cons of consuming it in cheese, then you're all set. That said, many (including Metzger) caution against consuming raw milk, not to mention the fact that it's illegal or exceedingly hard to find in some states. Luckily, you can often find excellent lower-temperature-pasteurized, non-homogenized alternatives at farmers markets and local dairies, and even some supermarkets (especially stores like Whole Foods) sell it.

Once you have the right milk, though, the process is surprisingly easy and fun—in fact, it's almost as satisfying as throwing Mentos in a bottle of soda and watching it explode. No, there won't be geysers of milk spouting in your kitchen, but fresh cheeses happen really quickly, which means you'll go from a pot of milk to curds and whey in a matter of minutes, and from curds and whey to a ball of mozzarella in just a handful more. I'm talking under an hour, start to finish, especially once you get the hang of things.

Here's a quick overview of how it's gonna go.

  1. Coagulate the milk into curds: We'll begin by adding citric acid to the milk, then gradually heat it and add rennet to complete the coagulation process, at which point we'll be left with curds (destined to become our cheese) and whey (the watery by-product that's left behind).
  2. Drain and slice the curds: Once the curds have separated from the whey, we'll drain them of extra liquid and slice them.
  3. Spin the curds: A relatively brief process of manipulating the curds under high heat, either in the microwave or in heated whey, "spinning" them until they're shiny, smooth, and ready to be formed into balls.
  4. Resting the cheese: We'll let the cheese relax in room-temperature whey for roughly 20 minutes before we dig in.

What You'll Need

Supplies needed for making fresh mozzarella at home: bowl, strainer, thermometer, slotted spoon, measuring cup, measuring spoons, rennet, citric acid, and gloves.

Serious Eats/Vicky Wasik

Unless you're the kind of person who keeps a pantry stocked with specialized cheese-making equipment, you're going to have to do a little shopping before you can get started. For starters, do a quick inventory and make sure you have a full set of measuring spoons and a liquid measuring cup—we'll be adding very precise amounts of those coagulants. One of the most crucial items you should have is an accurate instant-read thermometer, like the Thermapen, to ensure that you keep the milk within its ideal temperature range throughout the entire process. You'll also need a fine-mesh strainer, a heat-resistant bowl (Pyrex or stainless steel is fine), a slotted spoon, and a large, thick-bottomed stainless steel pot.

As for the actual ingredients, I'm happy to report that your milk will probably be the most expensive item you have to purchase. Food-grade citric acid is available in most well-stocked supermarkets, often near canning-related items, but if you can't find it, just order it online instead; my one-pound supply cost about $10, and it'll last me a long, long time. (Each batch of mozzarella calls for only a couple of teaspoons.)

Rennet may be a trickier supermarket find, but it's an easy online order, provided you don't get confused by all the options. Rennet is sold in both tablet and liquid forms, and you'll find animal and vegetable options for each. But frankly, all are equally effective, and conversion is straightforward. That said, I prefer to buy liquid rennet, as it's easier to measure if I choose to scale the recipe up or down.

Finally, you'll need a pair or two of gloves. We'll be sticking our hands into some very hot water during the spinning stage, and while some professionals may go in bareback, I'm not nearly so bold. I typically wear a couple pairs of latex gloves layered on top of each other, but one (or even two) pairs of heavy-duty dish gloves will also do the trick, especially if your hands are sensitive to heat. Just make sure the gloves are clean, fit your hands snugly, and don't have any holes in them (I learned that one the hard way).

Making Curds and Whey

This stage all happens in your stainless steel pot. There's no need to throw on your gloves just yet, but you do want your slotted spoon and your thermometer handy. We'll start by pouring the milk into the pot, whisking it well to distribute the cream and butterfat, and then adding the citric acid.

Many recipes call for diluting the citric acid in water before adding it to the milk, but I haven't been able to find a compelling reason to dirty the measuring cup or dilute the milk—sprinkling the citric acid in and giving the milk a good stir works every time. Just make sure to stir for at least 15 to 30 seconds to ensure that the acid fully dissolves and isn't just sitting on the bottom of the pot.

Then turn the heat on to medium-low, and continue to stir the pot regularly—we definitely don't want the bottom to scald. As the temperature rises, perhaps as early as 70 or 75°F (21 to 24°C), you'll start to see tiny little clumps of curd starting to form. Meanwhile, dilute the rennet in water; unlike citric acid, rennet is so powerful and fast-acting that dilution is the best way to ensure it mixes into the milk evenly before coagulation freezes everything in place.

When the milk reaches 88 to 90°F (31 to 32°C), add the rennet and stir well until it's evenly combined with the milk, about 30 more seconds.

Photo collage showing the traditional steps of cutting and cooking the curd to make homemade fresh mozzarella.
The traditional curd-cutting step.

Serious Eats/Vicky Wasik

Now, here's where things get interesting. Most recipes suggest that you turn the heat off once the curds hit that 88 to 90°F mark, cover the pot, and allow the curds to solidify for anywhere from five minutes to several hours. In this more traditional method, you'd check to make sure the curds can form a clean break by seeing if they pull away from the whey (you can see an example in the top-left image above). Then you'd slice your curds into a one-inch grid and continue heating the pot until the whey reaches 105°F (41°C) before straining the curds.

This slicing step is a fundamental one in most cheese-making situations: The size at which the curd is cut and the degree to which it is heated determines how much whey it expels, which has a profound impact on the final cheese.

But, ever impatient, I decided to try breaking the rules and comparing the traditional method to something a little more straightforward. Rather than turn off the heat (and add a minimum of 10 to 15 minutes to the recipe), I simply continued to heat the milk over low heat after adding the rennet, stirring very occasionally, until the whey hit that 105°F mark. That infrequent stirring actually breaks the curd up slightly, not unlike the traditional cutting step.

With both batches, I used a slotted spoon to scoop the curds out of the pot and into a mesh strainer set over a bowl (more on that in a moment), and made them into mozzarella. When they were ready, I asked my colleagues to blind-taste the two mozzarellas, one made using the more classic curd-cutting method and the other made from my shortcut approach, side by side. Not only were the results virtually indistinguishable from each other, but the final yield of cheese was the same. Less effort, less time, and identical results? It's basically a no-brainer to take the easier route.

Draining the Curds

Once your whey has reached 105°F, turn off the stove and let the pot stand for five to 10 minutes—we want to give the curds and whey the opportunity to settle and separate from each other. Then use the slotted spoon to carefully ladle the curds into the strainer, pressing down gently to drain off extra whey between spoonfuls. You can tip the strainer from side to side to help drain extra liquid off the top, since the curds should naturally form a large, semisolid mass. If you feel like there are a lot of small pieces still floating in the whey, you can send it through a separate strainer, but don't pour it down the drain! We'll need it again in a minute. Once you've let the curds drain and cool for roughly 10 minutes, you can place the mass on a cutting board and slice them into one-inch cubes, like so:

Fresh mozzarella curds cut into 1-inch cubes on a wooden cutting board.

Serious Eats/Vicky Wasik

If your curds have more of a crumbly, ricotta-like texture and resist forming a single mass (see below), you're looking at a milk issue. Time to get on the phone with your dairy and find out what the pasteurization story is.

Spinning the Curds

Assuming you're looking at shiny cubes of curd, you're halfway there! Now's when I like to add some salt to the mix. Great mozzarella shouldn't be noticeably salty, but I do like to offset the intense milky sweetness just a bit. Go ahead and season the whey that's still in your pot with one tablespoon of kosher salt—you can add more to taste if you want, or feel free to skip the salt altogether—stir it well, and then pour one-third of the whey into a bowl and set it aside. We'll be using this bowl of room-temperature whey for resting our mozzarella down the line.

From here on out, there are two ways to proceed. The first method involves the microwave, which, I'm pleasantly surprised to admit, totally does work and yields almost-as-delicious results. If you decide to use the microwave, you can put about a third of your curds into a microwave-safe dish, microwave it on high for 15 seconds, and just skip the instructions in the next paragraph.

The second method is the one I'm more partial to, since I find that it lends a bit more control to the process and gives you slightly more tender mozzarella, all without a whole lot more work. For this approach, you can place the pot containing the remaining two-thirds of your whey over high heat and raise the temperature to around 180°F (82°C), though even hotter is fine. Meanwhile, place about one-third of the curds in a heat-safe bowl. When the whey's hot, throw on your gloves and use a ladle to add enough liquid to cover the curds. You can keep the pot on low heat; you'll need more hot whey in a bit.

Whether you're using the microwave or the whey, after about 15 seconds, stick your heavily begloved finger into the dish. Can you handle the heat? If it's intolerable, grab a spoon to fish the curds out; otherwise, use your hand to gently draw them together and lift them out. They should be very soft and kind of sticky. If they're practically liquid-soft, leave them be for a minute or two. Have a sip of beer, check your email, sneak some bites of the cold curd resting on your countertop. Then stick your hands back in and grab the curds.

Do not knead the curds. There are many, many recipes that tell you to treat the curds "like bread dough." Do this only if you'd like to make cheese with the texture of squeaky chewing gum; otherwise, simply lift the mass out of the whey with both hands and slowly draw the curds apart. There shouldn't be a sensation of forcibly stretching, pulling, kneading, or tearing the curd. Rather, it should literally stretch itself. If it resists, return it to the bowl and add some more hot whey (or stick the bowl back in the microwave), and try again. If the curd just continues to break and tear, you are probably looking at a milk issue. Here's what bad curd, made from pasteurized homogenized milk, looks like in action:

Photo collage showing an attempt to make fresh mozzarella from pasteurized homogenized milk, with the curds breaking and tearing.
Bad curd from start to finish.

Serious Eats/Vicky Wasik

The curd above won't make an enjoyable mozzarella. Believe me, I've tried. You can manipulate it into something that looks just like mozzarella, but it won't taste like it one bit. You can try to salvage it by blending it into a spread with some seasonings like salt, pepper, and herbs, or just pick at it. It's kind of a tasty's just not the tasty snack you meant to make.

Assuming all is going well, simply fold the stretched curd back on itself after each pull, dipping the bundle back into hot whey as necessary to keep it pliable. You want to "spin" the curds only until they are shiny. When I'm working with high-quality milk, this can happen after just two, maybe four long stretches. If it's still looking dull after three or four stretches, try adding more hot whey from the stovetop—your issue may be temperature-related.

Once the whole mass looks smooth and shiny, fold the stretched curd over itself until it's roughly the size of your palm. With your other hand, make a C shape with your forefinger and thumb, and push the curd through that space, exerting pressure with your fingers to shape it into a sphere. Try to press hard enough to prevent any bubbles from forming under the skin (though a few small ones here and there are inevitable, especially when you're first starting out). Alternatively, you can make a full loop with your thumb and forefinger to make bocconcini—the small, egg-sized mozzarella balls are a little more manageable for beginners. In either case, when you have a ball you're happy with, pinch off any remaining curd. You just made mozzarella. Do a little dance, and then resist the temptation to pop it right into your mouth.

Resting the Cheese

Gently lower the ball into the bowl of room-temperature whey that you set aside earlier, and continue spinning your remaining curd. If you've opted to use the whey for something else, or accidentally threw it away, you can use room-temperature water, salted to taste, as a resting liquid instead. Do not use ice water, though it's a common recommendation in mozzarella recipes. It will leave you with a rubbery ball devoid of all flavor. Just take a look at the samples below:

Photo showing homemade fresh mozzarella balls rested in different ways: sitting on the counter, in room-temperature whey, in room-temperature water, and in ice water.
From left: mozzarella left sitting out after shaping, mozzarella rested in room-temp whey, mozzarella rested in room-temp water, and mozzarella rested in ice water.

Serious Eats/Vicky Wasik

The cheese all the way to the left was placed directly on a cutting board, where it proceeded to flatten into a thin, unappealing (though no less delicious) disk. The middle two samples rested in room-temperature whey and water, respectively. And the sample all the way to the right? The one that looks significantly rounder? That's the one that was plunged into ice water, which shocked it and left it as stiff and hard as a handball.

Our favorite mozzarella balls were rested in salted whey for at least 15 minutes and no longer than 40 minutes. Too short a time left them strangely soft yet chewy, and almost rubber band-y. Too long, and they were mushy and slimy. Twenty to 30 minutes is the sweet spot, and as soon as your timer goes off, you should eat the mozzarella immediately, or at least within a few hours. If you must store or refrigerate it, wrap it tightly in plastic first and use our handy reheating method for optimal results.

And there you have it. Your very own ball of homemade mozzarella cheese. Now you just have to decide what to do with it.

Ball of homemade fresh mozzarella on a black plate with a knife in the background.

Serious Eats/Vicky Wasik

What's that? You already ate it all? Yeah, me too.

Recipe Facts



Prep: 10 mins
Cook: 20 mins
Active: 30 mins
Resting Time: 30 mins
Total: 60 mins
Serves: 6 to 8 servings
Makes: 3 medium balls mozzarella

Rate & Comment


  • 1 gallon (3.8L) non-homogenized, low-temperature-pasteurized whole milk (see notes)

  • 1 1/2 teaspoons citric acid

  • 1/4 teaspoon rennet or 1/4 tablet rennet, diluted in 2 tablespoons (30ml) filtered or distilled water

  • 1 tablespoon (12g) kosher salt


  1. Pour milk into a large stainless steel pot and whisk to disperse butterfat. Sprinkle citric acid into milk and stir well to fully dissolve.

  2. Stirring every few minutes, bring the milk to 88°F (31°C) over medium-low heat. (This should take about 5 minutes.) Add rennet and stir to combine, about 30 seconds. Milk will begin to curdle into small clumps and separate from liquid whey. Reduce heat to low and continue heating until whey registers a temperature of 105°F (41°C) on an instant-read thermometer, about 3 to 5 minutes. Remove from heat and let stand 5 to 10 minutes.

    Photo collage showing the first steps in making homemade fresh mozzarella: Adding citric acid to a pot of milk, stirring, heating the milk, and adding rennet to the hot milk.

    Serious Eats/Vicky Wasik

  3. Using a slotted spoon, transfer curds to a strainer set over a bowl, pressing gently to drain. Curds should form a single mass. Allow to drain until whey is no longer dripping, about 10 to 15 minutes. Transfer drained curds to a cutting board. Slice into 1-inch cubes and divide into 3 even portions.

    Photo collage showing breaking up curds in a pot of whey, draining curds, and pressing the excess whey through a fine-mesh strainer.

    Serious Eats/Vicky Wasik

  4. Meanwhile, season whey with 1 tablespoon (12g) kosher salt (or more to taste), stirring well to dissolve. Transfer 1/3 of whey to a heatproof bowl and set aside.

  5. If Using the Stovetop Method: Bring remaining 2/3 of whey to 180°F (82°C) over high heat. Working with one portion of curds at a time, place in a heatproof bowl and add enough hot whey to cover. Wait 15 to 20 seconds, until curd is soft, sticky, and clumping together.

  6. If Using a Microwave: Working with one portion of curds at a time, place in a microwave-safe dish and heat on high in 15-second intervals until curd is soft and sticky.

  7. For Both Methods: Put on clean rubber gloves. Pick up ball of curds and slowly draw hands apart, allowing gravity to stretch curds; avoid forcing, tearing, or kneading curds. Continue folding and stretching curds, reheating in microwave or whey as necessary, until curds are shiny and smooth. (This should take approximately 2 to 6 stretches.)

    Photo collage showing pouring hot whey over mozzarella curds and then using hands to stretch the curd.

    Serious Eats/Vicky Wasik

  8. Fold curd into a mass that's roughly the size of your palm and make a C shape with the forefinger and thumb of one hand. Push curd through those fingers, exerting pressure to shape it into a sphere. Press hard enough to prevent large bubbles from forming under the skin. Alternatively, make a closed loop with thumb and forefinger and make several small, egg-shaped bocconcini.

    Photo collage showing the process of forming stretched mozzarella curd into a ball to make fresh mozzarella.

    Serious Eats/Vicky Wasik

  9. Gently lower ball(s) into room-temperature whey and let rest 20 to 30 minutes before eating. Meanwhile, repeat with remaining portions of curd. Cheese should be eaten immediately or within a few hours; to store, wrap tightly in plastic and follow these reheating guidelines.

Special Equipment

12-quart stock pot, rubber or latex gloves (see note), instant-read thermometer, fine-mesh strainer


We strongly advise that you contact the dairy provider to determine the precise temperature at which your milk has been pasteurized. No mozzarella recipe will be successful with ultra-pasteurized milk, but even milks labeled "pasteurized" may not work. Seek out non-homogenized milk that has been pasteurized at 170°F (77°C) or lower. The whey can be uncomfortably hot during the stretching step; we recommend wearing clean, heavy rubber gloves or a double layer of latex gloves to protect your hands.

Nutrition Facts (per serving)
235 Calories
13g Fat
19g Carbs
12g Protein
Show Full Nutrition Label Hide Full Nutrition Label
Nutrition Facts
Servings: 6 to 8
Amount per serving
Calories 235
% Daily Value*
Total Fat 13g 16%
Saturated Fat 7g 36%
Cholesterol 39mg 13%
Sodium 747mg 32%
Total Carbohydrate 19g 7%
Dietary Fiber 0g 0%
Total Sugars 19g
Protein 12g
Vitamin C 0mg 0%
Calcium 436mg 34%
Iron 0mg 1%
Potassium 509mg 11%
*The % Daily Value (DV) tells you how much a nutrient in a food serving contributes to a daily diet. 2,000 calories a day is used for general nutrition advice.
(Nutrition information is calculated using an ingredient database and should be considered an estimate.)