
How to Make Mozzarella Cheese
By Mia Hartwell
Making mozzarella at home takes about thirty minutes and feels, the first time it works, like a magic trick. A gallon of milk goes into a pot, and twenty minutes later you are pulling a warm, glossy, stretchy ball of cheese out of it with your hands. It is one of the few kitchen projects where the process is genuinely more satisfying than the result, and the result is very good.
It is also one of the few where a single decision made in the shop determines whether you succeed or fail before you start. Buy the wrong milk and nothing happens. No curd, no cheese, just a pot of warm liquid and a lot of confusion. That mistake accounts for the overwhelming majority of failed first attempts, and it has nothing to do with technique.
This guide covers the milk rule first, then the exact temperature at every stage, how to tell when the curd is ready to cut, and how to stretch it without turning it into rubber, which is the second most common way this goes wrong.
Read this before you buy milk
Do not use ultra-pasteurised or UHT milk. It will not work, and no amount of extra rennet, extra time, or careful technique will change that.
Ultra-pasteurisation heats milk to around 280F for shelf stability, and that heat permanently denatures the casein proteins that rennet needs to link together into a curd. The milk stays liquid or breaks into a fine sludge that never comes together. It is not a technique problem and it cannot be rescued.
- Use: whole milk labelled simply pasteurised. Low temperature pasteurised or raw milk from a local dairy is better still.
- Avoid: anything labelled ultra-pasteurised, UHT, or long life. Most organic milk in supermarkets is ultra-pasteurised, so check even if it looks premium.
- Homogenised is fine. It gives a slightly softer curd, but it works.
What You Need
- Whole milk, 1 gallon. Not ultra-pasteurised. This yields about 1 pound of cheese.
- Citric acid, 1½ teaspoons. Sold with canning supplies or online. It acidifies the milk quickly, which is what makes this a thirty minute recipe.
- Rennet, ¼ teaspoon liquid or a quarter tablet. Vegetarian microbial rennet works exactly as well as animal rennet.
- Unchlorinated water, ½ cup. Filtered or bottled. Chlorine deactivates rennet, and this catches a lot of people out.
- Non-iodised salt, 1 to 2 teaspoons. Cheese salt or plain sea salt. Iodine interferes with cheesemaking.
- A digital thermometer. Genuinely not optional here.
- A stainless steel pot, a long knife, a slotted spoon, and heatproof gloves for the stretching, since the curd will be around 135F.
Temperatures at a Glance
Mozzarella is really a sequence of temperatures. Print this or keep it open beside the pot.
| Stage | Temperature | Why |
|---|---|---|
| Add citric acid | 55F (cold) | Acid must disperse before any heating |
| Add rennet | 90F | The temperature rennet works best at |
| Set the curd | 90F, 5 min | Leave completely undisturbed |
| Cook the curd | 105F | Firms the curd and expels whey |
| Stretch | 135F | Below this it tears instead of stretching |
| Set the shape | Ice water | Locks the texture and stops cooking |
How to Make It
Dissolve the citric acid and rennet separately
Dissolve the citric acid in ¼ cup of cool unchlorinated water, and the rennet in a separate ¼ cup. Keep them apart until they go into the pot at different stages. Use filtered or bottled water, because chlorine will weaken or kill the rennet enzyme before it ever reaches the milk.
Stir the citric acid into cold milk
Pour the milk into a stainless steel pot while it is still cold, around 55F, add the citric acid solution, and stir thoroughly. The milk needs to be cold at this point so the acid disperses evenly. It may look very slightly grainy, which is normal.
Heat gently to 90F
Heat slowly over medium-low, stirring gently, until it reaches 90F. Do not rush this over high heat, which scorches the bottom and gives you uneven temperature through the pot. Take it off the heat as soon as it hits the mark.
Add the rennet, then leave it alone
Off the heat, pour in the rennet solution and stir gently with an up and down motion for 30 seconds only. Then stop completely and leave the pot undisturbed for 5 minutes. Continued stirring physically tears apart the protein network as it tries to form.
Test for a clean break, then cut the curd
Press a finger gently into the surface. It should part cleanly, with clear yellowish whey filling the gap rather than milky liquid. That is the clean break. If it still looks milky, wait a few more minutes. Then cut the curd into 1 inch cubes with a long knife.
Heat to 105F, then drain
Return to low heat and bring the curds slowly to 105F, stirring very gently so you do not break them up. Let it rest for 5 minutes, then ladle the curds into a colander and drain. Keep the whey, both for storing the cheese and for baking.
Heat to 135F and stretch
The curd needs to reach about 135F before it will stretch instead of tear. Either microwave it in 30 second bursts, draining liquid between each, or submerge it in whey heated to 175F. Wearing gloves, fold and stretch it like taffy 3 to 4 times only, stopping the moment it turns smooth and glossy.
Salt, shape, and cool
Work the salt in during the last fold, shape into one large ball or several small ones, and drop them into ice water for about 15 minutes. This sets the texture and stops the cooking. Then store in a light brine or in some of the reserved whey.
Storage
Fresh mozzarella is best on the day you make it and keeps for two to three days in the fridge. Store it submerged in some of its own whey or in a light brine, about a teaspoon of salt per cup of water, so it does not dry out and form a skin. Never store it dry in a container, which ruins the texture within hours.
It freezes for up to three months, but the texture changes: it firms up and becomes slightly grainy as the water crystallises. That makes frozen mozzarella perfectly good for pizza, bakes, and anything melted, and not great for a caprese salad where the texture is the point.
Common Mistakes to Avoid
Mozzarella is unforgiving in a few specific places and easy everywhere else. The first two mistakes here account for most failed attempts.
Using ultra-pasteurised milk
This is the reason most first attempts fail completely, and nothing else you do can rescue it. Ultra-pasteurised and UHT milk is heated to around 280F, which permanently denatures the casein proteins that rennet needs to link together into a curd. The milk stays liquid, or produces a fine sludge that will never come together, and people conclude they did something wrong with the rennet.
Do this instead: Read the carton and buy milk labelled pasteurised, not ultra-pasteurised or UHT. Whole milk, and ideally low temperature pasteurised or raw milk from a local dairy.
Mixing the rennet with chlorinated tap water
Rennet is an enzyme, and chlorine deactivates it. Dissolving it in ordinary chlorinated tap water can weaken or kill it before it ever reaches the milk, which gives you a soft, loose set or no set at all. Because the failure looks identical to using bad milk, it is very hard to diagnose without knowing to look for it.
Do this instead: Use filtered, bottled, or previously boiled and cooled water for both the rennet and the citric acid. Cool, not warm.
Working without a thermometer
Every stage of mozzarella is a specific temperature, and the windows are narrow. Rennet works properly at around 90F and is damaged much above that, and curd will not stretch below about 135F. Judging any of this by eye or by touch is guesswork, and the failure modes look like ingredient problems rather than temperature problems.
Do this instead: Use a digital thermometer and actually check at each stage. It is the one piece of equipment that is genuinely not optional here.
Over-stretching the curd
Stretching aligns the proteins into strands, which is exactly what gives mozzarella its character, but the process does not stop at good. Every extra fold tightens the structure further and squeezes out moisture and butterfat, so the cheese goes from tender and creamy to tough, dry, and squeaky. It is the most common reason homemade mozzarella disappoints even when it worked.
Do this instead: Stretch and fold only 3 to 4 times, stopping the moment it turns smooth and glossy like taffy. Under-working is far more forgiving than over-working.
Cutting the curd before it has set
Impatience at the five minute mark produces a curd that has not fully knitted together, so cutting it releases a cloud of fine particles into the whey rather than clean cubes. Those particles are lost yield, and the curd that remains is weak and difficult to handle through the heating and stretching stages.
Do this instead: Test for a clean break: press a finger into the curd and it should part cleanly with clear whey filling the gap. If it is still milky, give it another few minutes.
Stirring hard after adding the rennet
Once rennet goes in, the milk needs stillness to knit into a single mass. Continued stirring physically breaks apart the protein network as it forms, so instead of a clean set you get a shattered, grainy curd. Thirty seconds of gentle stirring distributes the rennet, and everything after that works against you.
Do this instead: Stir gently for 30 seconds only, using an up and down motion rather than a swirl, then leave the pot completely alone for 5 minutes.
Using iodised table salt
Iodine is antimicrobial, which is the point of adding it to table salt and precisely the problem in cheesemaking. It interferes with the cultures and can affect flavour, and the anti-caking agents in table salt can leave a slightly cloudy, chalky finish on fresh cheese.
Do this instead: Use cheese salt, flaked salt, or plain non-iodised sea salt. Check the label, since many everyday table salts are iodised without saying so prominently.
Pouring the whey down the drain
A gallon of milk leaves you with about three quarts of whey, and most of it goes straight into the sink. It is full of protein and flavour, and it is also the best thing to store the finished mozzarella in, so throwing it away costs you both an ingredient and the storage medium in one go.
Do this instead: Keep a jar for storing the cheese, and use the rest in bread dough in place of water, in smoothies, or as the cooking liquid for rice and grains.
What to Do With It
Fresh mozzarella is at its best barely touched, so the first thing to make is something where it is the main event. A caprese pasta or caprese chicken is exactly that, since there is nowhere for a rubbery supermarket ball to hide next to tomatoes and basil.
For melting, it is superb on a margherita flatbread, where homemade mozzarella browns and blisters differently to the pre-shredded kind, which is coated in starch to stop it clumping. It also lifts a baked ziti, eggplant parmesan, or a vegetable lasagna.
If you enjoyed the dairy side of this, our guide on making butter works on a similar principle, turning one ingredient into two useful ones in about ten minutes.
The short version
Use whole milk that is pasteurised but never ultra-pasteurised. Stir 1½ tsp citric acid (dissolved in unchlorinated water) into 1 gallon of cold milk. Heat to 90F, take off the heat, stir in ¼ tsp rennet for 30 seconds, then leave undisturbed 5 minutes. Cut the curd after a clean break, heat to 105F, drain. Bring the curd to 135F and stretch 3 to 4 times only. Salt, shape, ice water, done.
The first batch is the nervous one. Once you have seen the clean break and felt the curd turn glossy in your hands, the whole thing takes half an hour without much thought, and a pound of fresh mozzarella made an hour ago is not something you can buy.
For dinners to use it in, browse our pasta recipes, or see the rest of our kitchen guides.
Frequently Asked Questions
What milk should you use to make mozzarella?+
Whole milk that is pasteurised but not ultra-pasteurised. This is the most important decision in the entire process. Ultra-pasteurised or UHT milk has been heated so high that its proteins are denatured and will no longer form a curd, so it simply will not work no matter what else you do. Check the carton, and use raw or low temperature pasteurised milk if you can get it.
How long does it take to make mozzarella?+
About 30 minutes of active work using the citric acid and rennet method, which is what most home recipes mean by 30 minute mozzarella. Traditional cultured mozzarella uses a starter culture instead of citric acid and takes several hours, with a better flavour but far more waiting. For a first attempt, the quick method is the one to use.
How much cheese does a gallon of milk make?+
Roughly 1 pound of mozzarella from 1 gallon of whole milk, plus around 3 quarts of whey left over. Lower fat milk gives less, which is another reason to use whole. Do not pour the whey away, since it is useful in bread dough, smoothies, or as the cooking liquid for rice and grains.
Why did my mozzarella turn out rubbery?+
You worked it too much. Stretching aligns the proteins, which is what gives mozzarella its texture, but every extra fold tightens that structure further and squeezes out moisture and fat. Stretch and fold only three or four times, just until it turns smooth and glossy, then stop immediately. Overworked mozzarella comes out tough and squeaky rather than tender.
Can you make mozzarella without rennet?+
Not real mozzarella. Rennet is what coagulates the milk into a curd that can be stretched, and acid alone produces a soft, crumbly cheese closer to paneer or queso fresco. Those are worth making, but they will not stretch or melt like mozzarella. Vegetarian rennet made from microbial sources works exactly as well as animal rennet here.
How long does homemade mozzarella last?+
Two to three days in the fridge, kept submerged in a light brine or in some of its own whey so it does not dry out. Fresh mozzarella has no preservatives and is at its best on the day you make it. It can be frozen for up to three months, though the texture becomes firmer and slightly grainy, so use frozen mozzarella for pizza and bakes rather than salads.