You can make fresh mozzarella at home using buttermilk as a natural acidifier, and the result has a more complex, slightly tangy flavor than the quick citric-acid-only method most internet recipes rely on. The process takes about two hours from start to finish, yields roughly 1.3 pounds of cheese per gallon of whole milk, and requires just a handful of ingredients you can find at any grocery store.
Why Buttermilk Works
Mozzarella needs acid to transform liquid milk into solid curds. Most quick recipes use citric acid dissolved in water because it works in minutes. Buttermilk takes a slower, more traditional path. The live lactic acid bacteria in cultured buttermilk gradually lower the milk’s pH, and their enzymatic activity gives the finished cheese a richer, more nuanced flavor. Citric acid produces a milder, slightly sweet mozzarella. Buttermilk produces one with more depth, a gentle tang, and better aroma.
That said, buttermilk alone doesn’t provide enough acidity to fully coagulate the milk. You still need rennet, the enzyme that builds the protein network holding curds together. Some recipes also include a small amount of citric acid alongside the buttermilk. The buttermilk handles the flavor development while the rennet and citric acid handle the structural work.
Ingredients and Equipment
For a full batch, you’ll need:
- 2 gallons whole milk (not ultra-pasteurized; see milk selection below)
- 1 cup cultured buttermilk (the kind sold in cartons at the grocery store, with live cultures listed on the label)
- 1½ teaspoons citric acid dissolved in ½ cup cool, non-chlorinated water
- ¼ teaspoon liquid rennet (or ¼ tablet) dissolved in ¼ cup cool, non-chlorinated water
- Non-iodized salt (iodine can interfere with bacterial cultures)
For equipment, you need a large stockpot, a long knife or offset spatula for cutting curds, a slotted spoon or ladle, a thermometer that reads accurately between 80°F and 200°F, a colander, and a microwave-safe bowl or a second pot for heating water. Dissolve the citric acid and rennet in separate containers before you begin.
Choosing the Right Milk
This is the single most common reason homemade mozzarella fails. Ultra-pasteurized (UHT) milk will not work for this recipe, period. UHT processing heats milk to 280°F, which destroys the protein structures that rennet needs to build curds. You’ll end up with a pot of warm, slightly chunky milk instead of cheese. Over 80% of organic milk sold in the United States is ultra-pasteurized, so “organic” on the label is actually a warning sign unless you check the fine print.
Look for milk labeled “pasteurized” (heated to 161°F, which preserves protein function) or, even better, “vat pasteurized,” which uses lower temperatures and produces the best curds. Raw milk also works beautifully. Whole milk is essential. Reduced-fat milk yields less cheese with a drier, less satisfying texture. If you’re choosing between homogenized and non-homogenized, either works, but low-temperature pasteurized homogenized milk actually outperforms high-temperature non-homogenized milk in most home settings.
Step-by-Step Process
Acidify and Set the Curds
Pour both gallons of milk into your stockpot. Stir in the buttermilk and the citric acid solution. Heat slowly over medium-low, stirring gently, until the milk reaches 88 to 91°F. You’ll start to see the milk thicken and small curds may begin forming. This is normal.
Remove the pot from heat and stir in the dissolved rennet using slow, up-and-down motions for about 30 seconds. Stop stirring. Cover the pot with a lid and let it sit undisturbed for one hour. Resist the urge to peek for at least 45 minutes. When you come back, you should see a firm, custard-like mass of curd floating in a pool of yellowish-green whey. If you press the surface gently with a finger, it should break cleanly.
Cut and Heat the Curds
Using a long knife, cut the curd into roughly 1-inch cubes. Make parallel cuts in one direction, then rotate the pot 90 degrees and cut again. Try to also cut horizontally if you can, or use your ladle to gently break up the deeper curds.
Place the pot back on the stove and slowly heat the curds to about 105°F, stirring very gently every few minutes. The curds will shrink and firm up as they release more whey. This takes about 15 minutes. Don’t rush it with high heat or you’ll get rubbery cheese.
Drain
Use a slotted spoon to transfer the curds to a colander. Let them drain for several minutes, pressing gently. Save the whey if you plan to store your finished cheese in it (this makes the best storage liquid). The curds should feel like a soft, squeaky mass at this point.
Stretch the Cheese
This is the step that turns ordinary curds into mozzarella. The curds need to reach an internal temperature between 135 and 150°F to become elastic and stretchy. Below that range, the proteins won’t plasticize and you’ll just tear the cheese apart instead of pulling smooth, glossy strings.
There are two ways to get there. The microwave method is faster: place the drained curds in a microwave-safe bowl, microwave for one minute, drain off any liquid, then fold and press the curds together. Microwave again for 30 seconds, drain, and begin stretching. Repeat 30-second bursts as needed until the cheese is hot enough to pull like taffy. The hot water method gives you more control: heat a pot of water to 170 to 180°F, then submerge chunks of curd for about a minute at a time, pulling them out to stretch and fold.
Either way, sprinkle about 1 teaspoon of non-iodized salt over the curds as you begin folding. Stretch the cheese by pulling it away from itself, folding it back, and pulling again. Repeat until the surface becomes smooth and shiny. This usually takes 5 to 8 stretches. Overworking the cheese makes it tough, so stop as soon as it looks glossy.
Shape the cheese into balls by tucking the edges underneath and pinching them closed, or roll it into a log. Drop the finished balls immediately into a bowl of ice water for 5 minutes to set the shape.
Expected Yield
One gallon of whole milk produces roughly 1.3 pounds (about 590 grams) of fresh mozzarella, so a two-gallon batch gives you about 2.5 pounds. The exact yield depends on your milk’s fat and protein content. Raw milk and non-homogenized milk tend to yield slightly more cheese per gallon than standard grocery store milk.
Storing Fresh Mozzarella
Fresh mozzarella dries out and turns rubbery fast if you store it wrong. The best option is to submerge it in the whey you saved from draining. Stored this way in the fridge at 34 to 38°F, the cheese holds its soft, creamy texture for up to 7 days.
If you didn’t save the whey, make a simple brine: dissolve 1 teaspoon of fine sea salt in ½ cup of cold filtered water. Adding ¼ teaspoon of citric acid to this brine helps mimic the acidity of natural whey. Change the brine every 2 to 3 days. Plain water is a poor substitute. It leaches flavor and moisture from the cheese, and texture starts degrading within a day or two.
You can also fully submerge the mozzarella in extra-virgin olive oil, which works well for up to 5 days and adds its own flavor. Whatever method you choose, don’t leave fresh mozzarella at room temperature for more than 2 hours, and plan to eat it within the week. This cheese is at its absolute best within the first 24 hours.
Troubleshooting Common Problems
If your curds never formed, the most likely culprit is ultra-pasteurized milk. Check the label carefully. Some brands print “ultra-pasteurized” in small text below the brand name. If the curds formed but the cheese won’t stretch, the curd temperature during stretching was probably too low. Use your thermometer in the hot water or check that the microwave is actually heating the interior of the curd mass, not just the outside. If the finished mozzarella is rubbery or tough, you either heated the curds too aggressively during the cooking step, overworked the cheese during stretching, or both. Gentler handling and fewer stretches solve this.
If the flavor is bland, the buttermilk is doing its job but you may need more salt. Salting during the stretching phase distributes flavor throughout the cheese rather than just on the surface. You can also let the buttermilk culture work longer at the initial acidification stage. Extending the resting period after adding buttermilk from one hour to 90 minutes gives the bacteria more time to develop flavor compounds.

