Liquid Bath Milk

Who doesn’t want to bath in milk? Vegans perhaps. Well, this is a plant-based recipe. So now that everyone can submerge themselves in a latte, I’d better clarify that this is not the kind of milk you should add to your morning cup of coffee. It’s called a bath milk, because it resembles the colour and texture of milk. Although some people actually add cow’s milk to their bath-time ritual, this recipe uses plant-based ingredients to provide more benefits and a better spa experience. Epsom salts and sea salt will ease your muscles, detoxify your skin and help you sleep, while the olive oil and vegetable glycerine soften and moisturise your skin.

Recipe variations

Oil substitutes:
You may substitute the olive oil with any other oil that is liquid at room temperature. Avoid using solid oils like coconut oil, shea butter and avocado butter, because they may form solid white clumps of oil in the bath.

Adding essential oils:
You may add up to 5ml of essential oils to this milk bath, or you may exclude essential oils for a fragrance-free bath milk.

Changing quantities:
If you want to make a bigger batch, you may multiply the quantities. For example, multiply all ingredients by 5 to make one kilogram of bath milk. The same instructions apply.


Cost Price: R11.64 per 200g (in 2019, based on the best retail prices I’ve found. Price excludes essential oils).
Lasted me about:
 2 baths using half a bottle (100g) each time. You can add more or less to your bath.
Estimated shelf life: 3 months if you include the preservative, and store away from direct sunlight. Without the preservative, this bath milk only has a shelf life of 1 week when stored in the refrigerator. Please note that adding ingredients like vitamin E oil and anti-bacterial essential oils will not effectively preserve your product.


The 3 month shelf life may not be what you are used to. That’s why I recommend making a small 200g batch, which is enough for 2 baths. I think it’s realistic to expect that you’ll take at least 2 baths in 3 months? If not, consider halving the recipe for 100g (1 bath).


  • This recipe is vegan.
  • The Epsom salts in this recipe will ease sore muscles and help you sleep.
  • The sea salt in this recipe will detoxify your skin and boost your skin’s health.
  • Good idea for a gift.


  • Distilled water: is a pure form of water without additional minerals, salts and other deposits which typically shorten the shelf life of a lotion. You can find distilled water at most pharmacies. Don’t confuse distilled water with filtered, spring or purified water – they are not the same thing. (Buy here)
  • Vegetable glycerine: moisturises the skin and retains moisture in the skin by acting as a protective barrier that locks in moisture. (Buy here )
  • Olive oil: contains anti-aging antioxidants and hydrating squalene, making it superb for hair, skin, and nails. (Buy here)
  • Epsom salts: is also known as magnesium sulphate. It will soften rough, dry skin, ease sore muscles and promote good sleep. (Buy here)
  • Salt: will cleanse and detoxify your skin, stimulate circulation and ease stiff muscles and joints. (Buy here)
  • Eco E-wax: is a vegetable-based emulsifying wax which allows water and oil to combine without separating. It is also known as Glycerol Monostearate, and is ECOCERT and SOIL association approved for use in natural and organic products. (Buy here)
  • Geogard Ultra: is a synthetic preservative composed of gluconolactone, and the organic acid sodium benzoate in powder form. It is ECOCERT, NATRUE and SOIL association approved for use in natural and organic products. (Buy here)
  • Geogard 221: is a synthetic preservative composed of dehydroacetic acid and benzyl alcohol in liquid form. It is ECOCERT, NATRUE and SOIL association approved for use in natural and organic products. (Buy here)

Need help finding these, or other ingredients? My shopping guide may help you.

What do you think of this bath milk recipe? If you’ve tried it, please share your feedback in the comments below.


6 thoughts on “Liquid Bath Milk”

  1. Hi there.
    I tried this recipe and everything went well until I came back to add the geoguard, and saw that the milky part was on top with a cloudy water at the bottom, so it obviously separated.

    Any idea on what I could have done wrong?

    • Hello Frances

      Thanks for your feedback on this recipe. I’m sorry it was a flop though. I have a feeling that it’s the preservative. Did you by any chance use Geogard Ultra as the preservative? If so, did you include it in step 3 with the water phase? I know that this is what my blog instructed, but I’m discovering that this is not actually working with all my recipes. Some work, some don’t. When I published this recipe, I had made it with Geogard 221. I just included the Geogard Ultra instructions from the manufacturer’s instructions. So I’m actually going to update all the blog posts to reflect what I’ve learned about Geogard Ultra recently from my experience. My Geogard 221 has just run out and I’ve started using Geogard Ultra in everything now. I’m learning that it is not behaving with all of my recipes. I’ve made my Rich Winter Body Cream twice with Geogard Ultra in the water phase, and both times it has caused the emulsion to separate. So I’m thinking that perhaps the same has happened with you too with the bath milk?

      The solution:
      I’ve now been dissolving the required Geogard Ultra in part of the distilled water (boiled), and then stirring in that solution at the end, in cool down phase like I do with Geogard 221. That has worked for my winter body cream. Eg. If the recipe requires 2g of Geogard Ultra, then I dissolve that in about 10g hot distilled water (which I’ve subtracted from the water phase) and set aside. Then I add it after the emulsion is stable and the product has cooled down. So instead of using 97g water in the water phase, I only add 87g.

      Another tip:
      You could also use a tiny amount of gum to help stabilise and hold the emulsion. The reason I omitted this in the liquid bath milk, was so that it was as liquid as possible to resemble milk. But adding gum does help a product hold. For this recipe, I would hydrate about 0.5g xanthan gum in 1g of the gylcerine (again, subtract this from the total glycerine). Then add that paste into the hot water phase, let it dissolve as much as possible before adding the oil phase to it. The texture will be a little less liquid, perhaps like low fat yogurt. And when you add it to the bath it may have to be stirred around. But it will be less prone to separating.

      I hope this info helps. If you try the alternate Geogard Ultra method with this recipe, please share an update here for us to benefit from. Also if I get a chance soon, I’ll also test it out in my lab. Like I said, I’ve tried the alternate method with my winter cream, but not this bath milk yet. Getting there.

  2. Hi
    Is this going to make something like the Weleda Pine bath Milk? How do they do it? It only turns white/milky when it hits water!

    • Hello Oona πŸ™‚ Unfortunately, this is just standard bath milk – not an oil-to-milk product. So it is already milky white in the bottle (as pictured in the post). Perhaps I’ll post a recipe for that soon. To achieve an oil-to-milk product, you need to include a self-emulsifying emulsifier.


Leave a Comment