New video every week on YouTube →
Homemade Cajeta, Mexican Goat Milk Caramel From Scratch

Homemade Cajeta, Mexican Goat Milk Caramel From Scratch

Glossy, pourable and caramel brown, tangier and runnier than dulce de leche. Only the last 45 minutes need constant stirring, and a jar keeps about three weeks in the fridge. If goat's milk is hard to find or too strong, half cow's milk still counts as cajeta, and in the US an all-goat batch works out to about 65 cents a serving.

Cajeta (kah-HEH-tah) is Mexico’s goat’s milk caramel: fresh goat’s milk boiled with sugar and a pinch of baking soda until two thirds of it has steamed away and what is left pours like a thick, glossy, faintly tangy sauce. Around Celaya, in Guanajuato, it is protected as the geographical indication Cajeta de Celaya, finished at 65 to 69 °Brix, about a third of the starting volume. You only need milk, sugar, baking soda and a wooden spoon to get there, plus 150 minutes.

How do you make cajeta at home

How do you make cajeta from scratch? Bring 2 liters (8½ cups) of goat’s milk to a boil with 400 g (2 cups) of sugar, salt and cinnamon, stir in ½ teaspoon of baking soda off the heat, then simmer uncovered, stirring, until it reduces to a third and turns caramel brown. It is done when a drop on a cold plate holds like thick sauce. Ready in 150 minutes for 24 servings.

The method is simple and the ingredients are few. What decides success is the last 45 minutes, when the pot has lost most of its water and the bottom can catch in seconds. Up to then, the pot mostly looks after itself.

What you get. About 750 ml (3 cups), close to 950 g (2 lb), or 24 servings of 2 tablespoons: 3 cups from 2 quarts of milk.

Who should make it. Anyone who likes goat cheese or tangy dairy, or who uses a lot of caramel sauce. If goat flavor puts you off, the half-and-half version further down is still cajeta.

Difficulty. Medium. No tricky technique, only patience: turning up the heat to finish faster is the surest way to burn it.

Cajeta vs dulce de leche, and what goat’s milk changes

The honest difference is the milk. Cajeta is goat’s milk; dulce de leche is cow’s milk. Cajeta is usually runnier and has a tangy, slightly animal edge; dulce de leche tastes rounder and milkier. The Colombian version on this site, arequipe, a cow’s milk dulce de leche, uses 1 liter of milk, 300 g of sugar and ½ teaspoon of baking soda per liter and cooks for 125 minutes to 225 °F (107 °C), where it spreads. Cajeta uses 200 g of sugar per liter, a quarter teaspoon of baking soda per liter, and stops at a pourable stage.

Per 100 g, goat’s milk has 4.14 g of fat and 3.56 g of protein against 3.25 g and 3.15 g for whole cow’s milk. The extra fat is where the gloss and the goaty tang come from.

Goat’s milk, half and half, or cow’s milk, what each one gives youComparison of three milk choices for a 2-liter batch. All goat’s milk: tangy, the classic cajeta, required for the Premium grades of the Cajeta de Celaya geographical indication, about 15.68 dollars a batch at 6.99 dollars a quart of goat’s milk. Half goat and half cow: milder, allowed by the indication for typical cajeta in the low goat-milk season of November and December, about 9.41 dollars. All cow’s milk: this is dulce de leche, not cajeta, may curdle slightly near the end, about 3.14 dollars.All goatHalf and halfAll cowFlavortangy, goatymilder tangplain milkyStill cajeta?yes, Premiumyes, typicalno, dulce de lecheWatch out forfoam at the startfoam at the startcurdling at the endUS batch cost$15.68$9.41$3.14
If goat’s milk tastes too strong to you, half and half is still cajeta under the Celaya rules and costs about 40 % less.

The Cajeta de Celaya rules allow up to 50 % cow’s milk in November and December, when goats give less milk, but not in the Premium grades, which are goat’s milk only. At home, that makes half and half a legitimate cajeta with a gentler flavor. All cow’s milk gives you dulce de leche, and it may curdle slightly near the end, which an immersion blender fixes.

Ingredients, where to buy goat’s milk and what to swap

Goat’s milk, 2 liters (8½ cups). In the US, Meyenberg whole goat’s milk comes in 32 fl oz (946 ml) cartons at large supermarkets such as Kroger or ShopRite. In the UK, most large supermarkets sell goat’s milk.

Sugar, 400 g (2 cups). That is 200 g per liter, the 80 % milk and 20 % sugar ratio of Premium A cajeta from Celaya, and the one that has worked best for me. Light brown sugar or Mexican piloncillo gives a darker cajeta with a molasses note.

Baking soda, ½ teaspoon (2.3 g). It does two jobs. It neutralizes the acidity that builds as milk concentrates, which would otherwise make the proteins precipitate (the milk curdles), and it holds the pH between 6 and 7, where Maillard browning, the reaction that gives color and flavor, moves fastest. Too much makes the result very dark and rubbery and leaves a soapy aftertaste.

Corn syrup, optional. Swap 100 g of the sugar for 100 g (about ⅓ cup) of light corn syrup or glucose syrup if you want a cajeta that stays smooth for weeks. Glucose limits crystal formation, which is why the Premium B grade of Celaya cajeta is 10 % sugar and 10 % glucose.

Equipment. A wide, heavy-based pot of about 6 liters (6 quarts), because the milk foams up, and a flat wooden spoon. Celaya cooks use copper pans and pine paddles; enameled cast iron or heavy stainless steel does the same job. A thermometer is optional.

Step by step, with the timing

150 minutes on the clock: 10 to prep, about 15 to reach a boil, just over an hour of brisk simmering with a stir every so often, and 45 minutes of constant stirring at the end.

Cajeta cooking day, stage by stage, in 150 minutesTimeline for cajeta made with 2 liters (8½ cups) of goat’s milk: minutes 0 to 10, measure and dissolve the baking soda in water; 10 to 25, milk, sugar, salt and cinnamon come to a first boil; 25 to 27, baking soda goes in off the heat and the foam settles; 27 to 95, brisk uncovered simmer, stirring every 5 to 10 minutes, until half the volume is gone; 95 to 140, medium-low heat with constant stirring until a third remains and it turns caramel brown; 140 to 150, cold-plate test, strain and jar.0153045607590105120135150minutesMeasure, dissolve soda10 minMilk and sugar to a boil15 minBaking soda, off the heat2 minBrisk simmer, stir often68 minLow heat, stir nonstop45 minTest, strain and jar10 minhands onon the heat, stir every 5-10 min
Only the last 55 minutes need you glued to the pot. Before that, a sweep of the bottom every 5 to 10 minutes is enough.

Adding the baking soda

Dissolve it in a tablespoon of water and add it off the heat after the first boil. The milk foams up within seconds. On a live burner it climbs over the rim; off the heat it settles in a couple of minutes.

Knowing when cajeta is done

Celaya’s cajeteros read the finish from the thread, or hebra, that runs off the pine paddle; a refractometer gives the Brix range from the intro. At home, use two checks together. The cold plate: a teaspoon on a chilled plate should set to the consistency of caramel sauce within a minute. The pot bottom: a spoon drawn across the pot should show the bottom for an instant before the cajeta closes over it.

How much water leaves the milk before cajeta is doneScale of percent solids: whole goat’s milk is 13 percent solids; with this recipe’s 400 grams (2 cups) of sugar the mix starts near 27 percent; the Cajeta de Celaya geographical indication sets the finish at 65 to 69 degrees Brix on a refractometer; Colombian manjar blanco reaches up to 76 degrees Brix and is also thickened with rice, which is why it sets firm.Goat’s milk alone13 % solidsAt the startwith the sugarCajeta is donefrom 65 °BrixUpper limit69 °Brix (Celaya)Manjar blancoup to 76 °Brix0%20%40%60%80%
Getting from 27 % to 65-69 °Brix means boiling off about two thirds of the volume, so mark the starting level on a wooden spoon handle.

I don’t give a fixed thermometer reading for cajeta. On this site’s arequipe the scale is 219 °F (104 °C) for a pouring sauce, 225 °F (107 °C) for a spread and 234 °F (112 °C) for a dulce that sets hard. Cajeta belongs on the sauce side, so I go by the cold plate and treat the thermometer as a warning that I am getting close.

Who this recipe is for

  • First time with goat’s milk → make it half and half; the tang is softer.
  • No time to stand at the stove → the slow-cooker route, uncovered on high: about 16 hours to light amber, then several more hours stirring every 20 to 30 minutes.
  • Need it in under an hour → a 14 oz (397 g) can of sweetened condensed milk, goat’s if you can find it, lid removed and wrapped in foil, 40 minutes in a pressure cooker with water halfway up the can. It is a close relative, not milk cooked down.
  • Cooking for a crowd → two 2-liter pots side by side beat one 4-liter batch. Cajeta cooks by evaporation, so the surface of the pot matters more than its size.

Why cajeta turns grainy, and other things that go wrong

Grainy cajeta has crystals of lactose and sugar in it. As water boils off, both sugars become saturated, and lactose gets even less soluble once the cajeta cools, so crystals grow in the fridge over the weeks. The tongue starts to notice them at 10 to 16 µm. Three habits keep them away: do not scrape the dried crust off the pot walls into the jar, swap 100 g of sugar for corn syrup, and do not cook past the point.

Cajeta problems, why they happen and the fixTroubleshooting matrix. Grainy or sandy: lactose and sucrose crystals, from crust scraped off the pan walls or from weeks in the fridge; fix by warming gently with a spoonful of water and blending, prevent by swapping 100 grams of the sugar for glucose or corn syrup. Curdled: acidic milk or too little baking soda, more likely with cow’s milk; blend with an immersion blender and strain. Too thick once cold: cooked too far; warm with 1 to 2 tablespoons of hot water. Too thin: stopped early; 5 more minutes on low. Scorched: high heat or stopped stirring in the last 45 minutes; no fix, the flavor spreads through the batch.Why it happensFix itNext timeGrainy, sandysugar crystals fromwalls or old jarswarm, blend,strain100 g corn syrupfor 100 g sugarCurdledacidic milk, littlebaking sodaimmersion blender,then strainfresh milk, ½ tspsoda per 2 litersToo thick coldcooked too far1-2 tbsp hot watercold-plate testToo thinstopped early5 more min on lowcold-plate testScorchedhigh heat, stoppedstirring at the endno fixheavy pan, low heat,constant stirring
Four of the five can be rescued. Scorching cannot, which is why the last 45 minutes are low heat and constant stirring.

Allergens. Milk, and nothing else from the usual list: no gluten, egg or nuts unless you stir in pecans. Spice level: zero. Kids: most like it, though some notice the goat flavor; the half-and-half version helps. The spiked version below is for adults.

Cajeta quemada, cajeta envinada and other versions

  • Cajeta quemada → the same recipe cooked 15 to 20 more minutes on low, stirring, until dark brown. More bitter, thicker. Do not add extra baking soda to darken it.
  • Cajeta envinada → stir 2 tablespoons (30 ml) of sweet sherry or rum into each cup (240 ml) of finished cajeta off the heat. That is my own ratio. Added off the heat, most of the alcohol stays: about 85 % of alcohol stirred into a hot liquid after it leaves the heat.
  • Smoother for longer → 300 g (1½ cups) sugar plus 100 g (⅓ cup) corn syrup.
  • Darker and earthier → piloncillo or dark brown sugar instead of white.

What cajeta costs in the US

Goat’s milk is nearly the whole bill. At $6.99 a quart for Meyenberg, the most common price at ShopRite, Brookshire’s and Kroger in October 2026 ($6.99 to $7.79 depending on the store), and sugar at $1.024 a pound (US average, August 2026), a 2-liter batch costs about $15.68, or 65 cents a serving. Swap half the goat’s milk for whole cow’s milk at $4.229 a gallon (US average, August 2026) and it drops to $9.41, 39 cents a serving. All cow’s milk costs $3.14, but then you have dulce de leche. Baking soda, salt, cinnamon and vanilla are left out of the sums. UK goat’s milk prices vary too much for me to give a figure in pounds.

Storing, freezing and serving cajeta

Fridge. Homemade cajeta is often said to keep a month or more, even 2 months. I keep it up to three weeks, the same as my arequipe, in a clean, closed glass jar at 40 °F (4 °C) or below, and always use a clean spoon. Sugar does not make it mold-proof: molds can grow in dulce de leche at water activities of 0.74 to 0.85. If you see mold or it smells sour, throw out the whole jar. Like any milk-based dish, it should not sit out for more than 2 hours.

Freezer. Baking Sense freezes it for several months in a plastic tub with wrap pressed onto the surface. With that much sugar it never freezes rock hard.

Rewarming. Over a water bath, or in the microwave in 10-second bursts, stirring between them. A spoonful of hot water loosens a jar that has thickened in the fridge.

How to use it. Warm, over crêpes, ice cream or fruit; as a dip for homemade churros; spread inside split gorditas de nata; poured over flan napolitano instead of the caramel; or between the thin wafers of Colombian obleas. With a mug of café de olla it makes an afternoon snack. For a firmer, rice-set cousin, try Colombian manjar blanco.

Cajeta FAQ

What is cajeta made of? Goat’s milk, sugar and baking soda, reduced to about a third. The Celaya rules allow up to 50 % cow’s milk in the typical grade, and glucose in the Premium B, typical and commercial grades.

Can you make cajeta with cow’s milk? You can, but the result is dulce de leche, without the goat tang. Half goat and half cow keeps some of the flavor and still counts as typical cajeta under the Celaya rules.

Why do you add baking soda to cajeta? To neutralize acidity so the milk does not curdle during the long boil, and to speed up browning. Half a teaspoon for 2 liters (8½ cups) is enough; more turns it very dark and soapy.

Is cajeta the same as caramel? No. Caramel is sugar melted until it browns, usually finished with cream and butter. Cajeta is milk and sugar cooked down for over 2 hours, and its color comes from Maillard browning between milk proteins and sugars.

How do I fix grainy cajeta? Warm it gently with a spoonful of water, blend it with an immersion blender and strain. Next time swap 100 g of the sugar for corn syrup and leave the crust on the pot walls alone.

How long does homemade cajeta last? I keep it up to three weeks in the fridge at 40 °F (4 °C) or below. Some people keep it one to two months. Throw it out if you see mold.

What is cajeta quemada? The same cajeta taken further on low heat, until dark brown, more bitter and thicker; the versions section above has the timing. Cajeta envinada is finished with sherry or rum.

Nutrition per serving

Per 2-tablespoon serving, about 40 g (1.4 oz), out of 24, calculated ingredient by ingredient from this recipe’s quantities, using all goat’s milk and leaving out cinnamon and vanilla:

  • Calories: 124 kcal
  • Protein: 3 g
  • Carbohydrates: 21 g
  • Fat: 4 g, of which 2 g saturated
  • Fiber: 0 g
  • Sugars: 21 g
  • Sodium: 94 mg

About 17 g of the sugar per serving is added sugar; the rest is lactose from the milk. Made half and half, each serving loses about 4 kcal and a little fat.

I grew up in Venezuela with cow’s milk dulce de leche and learned arequipe in Colombia, so cajeta came late to my kitchen, and the first batch tasted too goaty to me. I made the second one half and half and have been nudging the goat’s milk up ever since. One thing I never skip is the plate in the freezer before the last stretch. Josnaisis.

Homemade Cajeta, Mexican Goat Milk Caramel From Scratch

Homemade Cajeta, Mexican Goat Milk Caramel From Scratch

By Josnaisis Ramirez · Gran Receta

Rate
★ ★ ★ ★ ★
✓ Thanks!

Prep

10 min

Cook

2 h 20 min

Servings

24

people

Total

2 h 30 min

Difficulty

Medium

Cuisine

Colombian · Venezuelan

Calories

124 kcal

Ingredients

For 24 servings · Check off what you have

Instructions

1

Measure everything first and dissolve the baking soda in the tablespoon of water in a small cup. Stand a wooden spoon in the empty pot, pour in the milk and mark the level on the handle, so you can see when it has dropped to a third.

2

In a wide, heavy-based pot of about 6 liters (6 quarts), stir together the milk, sugar, salt and cinnamon. Heat over medium-high, stirring until the sugar dissolves, and bring to a first boil, about 15 minutes.

3

Take the pot off the heat and stir in the dissolved baking soda. The milk foams up fast; wait about 2 minutes for it to settle. Doing this off the burner is what stops a boil-over.

4

Return the pot to medium heat and keep a brisk simmer, uncovered, for about 68 minutes. Sweep the bottom and corners with a flat wooden spoon every 5 to 10 minutes, and leave the crust on the walls alone. The milk turns from white to pale gold and loses about half its volume.

5

Lower to medium-low and stir constantly for about 45 minutes. The bubbles grow large and slow, the color deepens to caramel, and about a third of the original volume remains, roughly 750 ml (3 cups).

6

Do the cold-plate test: drop a teaspoon on a chilled plate, wait 1 minute and tilt. It should behave like thick caramel sauce and creep slowly, and a spoon drawn across the pot should show the bottom for a moment. Too runny, give it 5 more minutes; too stiff, stir in 1 to 2 tablespoons of hot water.

7

Turn off the heat, fish out the cinnamon and stir in the vanilla. Strain through a fine sieve if you see lumps, pour into clean glass jars and let it cool uncovered before lidding, so steam does not condense under the lid. Refrigerate.

Nutrition

Approximate values per serving · 24 servings total

124

kcal

3g

Protein

21g

Carbs

4g

Fat

0g

Fiber

2g

Sat. fat

94mg

Sodium

21g

Sugar

Tip: Cajeta thickens a lot as it cools, so stop when it still looks a little loose in the pot and trust the chilled plate, not the hot texture. Keep the last 45 minutes on medium-low with constant stirring: of all the ways cajeta can go wrong, scorching is the only one you cannot undo.
#cajeta recipe#goat milk caramel#cajeta vs dulce de leche#mexican caramel sauce#cajeta quemada
Josnaisis Ramirez
Josnaisis Ramirez · Cook & author

Mom of Dylan and home-cooking enthusiast. I share the Venezuelan and Colombian recipes that shaped my life. My story →

Link copied! Now you can share it