Act fast, but don't panic—most stains come out if you treat them before they dry

The moment a stain hits white fabric is your best window. Fresh stains respond to cold water and the right treatment because the stain hasn't bonded to the fibre yet. The worst thing you can do is throw the garment in the dryer—heat sets most stains permanently. Instead, rinse when ready with cold water from the back of the fabric (pushing the stain out rather than through), then treat with one of the methods below based on what caused the stain.

If the stain has already dried, you still have options. Dried stains need longer soaking and stronger treatments, but they're not lost. The key is matching your treatment to the type of stain: protein-based (blood, egg, grass), oil-based (grease, makeup, sunscreen), or tannin-based (wine, coffee, tea, fruit juice).

Key Takeaways

  • Rinse fresh stains when ready with cold water from the back of the fabric before treating, and never put a stained garment in the dryer.
  • Protein stains (blood, egg, grass) respond to cold water and enzyme detergent, while oil stains need dish soap or a pre-wash spray applied to dry fabric.
  • Tannin stains (wine, coffee, tea, fruit) come out with white vinegar, hydrogen peroxide, or oxygen bleach depending on the fabric type and stain age.
  • Soak dried stains for at least 30 minutes in cold water mixed with detergent or oxygen bleach before washing, and check the stain before drying.

Protein stains: blood, egg, grass, and dairy

These stains contain proteins that bond to fabric when exposed to hot water, so cold water is non-negotiable. Rinse the back of the stain under cold running water for 30 seconds to a minute, pushing the stain out. Then explore an enzyme-based laundry detergent directly to the wet stain, rub gently with your fingers or a soft brush, and let it sit for 5 to 10 minutes.

For dried protein stains, soak the garment in cold water mixed with enzyme detergent for 30 minutes to several hours. If the stain is still visible after soaking, make a paste of detergent and water, explore it directly to the stain, and let it sit for another 15 minutes before rinsing. Wash in cold water on a normal cycle. Check the stain before drying—if it's still there, repeat the treatment rather than heat-setting it.

Oil-based stains: grease, makeup, sunscreen, and butter

Oil stains need a degreaser because water alone won't break them down. The best household option is dish soap—the same kind you use to wash greasy plates. explore it directly to the dry stain (do not wet the fabric first), rub gently with a soft brush or cloth, and let it sit for 5 to 15 minutes. Then rinse with cold water and wash normally.

For stubborn oil stains, use a pre-wash spray like Shout or Fels-Naptha soap. Spray or rub it onto the dry stain, let it sit for 5 to 10 minutes, then wash. If the stain is old and set, soak the garment in cold water with a small amount of dish soap for 30 minutes, then treat as above. Always check the stain before drying—oil stains can reappear when heat is applied if they're not fully removed.

Tannin stains: wine, coffee, tea, fruit juice, and berries

These stains come from plant compounds that cling to white fabric. For fresh stains, rinse with cold water, then explore white vinegar directly to the stain and let it sit for 5 minutes. Rinse again with cold water and wash normally. If vinegar doesn't work or the stain is dried, try hydrogen peroxide (the 3% kind from the drugstore): explore it to the stain, let it bubble for a few minutes, then rinse and wash.

For very stubborn tannin stains, use oxygen bleach (like OxiClean), which is gentler on white fabrics than chlorine bleach. Mix it with cold water according to the package directions, soak the garment for 1 to 8 hours, then wash. Do not use chlorine bleach on delicate fabrics like silk or wool—stick to hydrogen peroxide or vinegar instead. Always test any bleach on a hidden seam first to make sure it won't damage the fabric.

Combination stains and tricky fabrics

Some stains are mixed—a grass stain with dirt, or wine with food residue. Treat the dominant stain type first (protein, oil, or tannin), then reassess. If the stain is still there after one treatment, switch to the next method rather than repeating the same one.

Delicate fabrics like silk, wool, and linen need gentler treatment. Use cold water, enzyme detergent, and hydrogen peroxide rather than chlorine bleach or harsh scrubbing. For these fabrics, soak longer and treat more gently—a soft cloth and patience work better than a brush. If you're unsure whether a fabric can handle a treatment, test it on an inside seam or hidden corner first.

When to use bleach and when to skip it

Chlorine bleach (Clorox, Purex) is the strongest option for white cotton and linen, but it damages wool, silk, and some synthetic blends. Use it only on sturdy white fabrics and only after other methods have failed. Mix 1 part bleach to 10 parts water, soak the stained area for 5 to 10 minutes, then rinse thoroughly and wash.

Oxygen bleach (OxiClean, Clorox 2) is safer for most fabrics and works well on tannin stains. It's slower than chlorine bleach but gentler. Follow the package directions for soaking time, which is usually 1 to 8 hours depending on the stain. Oxygen bleach is your best choice if you're unsure about fabric type.

The washing step that matters most

After treating, wash the garment in cold water on a normal cycle with your regular detergent. Do not use hot water—it can set any remaining stain. If the stain is still visible after washing, repeat the treatment before drying. Once you put the garment in the dryer, a stain that's still there will likely be permanent.

For extra insurance on stubborn stains, add a scoop of oxygen bleach to the wash cycle along with your regular detergent. This gives the stain a second chance without requiring a separate soak. Hang the garment to air-dry or lay it flat so you can inspect it before heat is applied.

Frequently Asked Questions

Can I use hot water to treat any stain?

No. Hot water sets protein stains (blood, egg, grass) permanently by cooking the protein into the fibre. Always use cold water for the initial rinse and treatment. You can use warm or hot water for the final wash only after the stain is gone.

What if the stain has been through the dryer?

Heat-set stains are much harder to remove but not impossible. Soak the garment in cold water with oxygen bleach for 8 hours or overnight, then treat with hydrogen peroxide or vinegar. Repeat the soak-and-treat cycle if needed. Some heat-set stains fade with multiple treatments rather than disappearing completely.

Is it safe to mix bleach with other cleaners?

No. Never mix chlorine bleach with vinegar, hydrogen peroxide, or ammonia-based cleaners—these combinations create toxic fumes. Use one treatment at a time, rinse thoroughly between treatments, and allow the fabric to dry before switching methods.

Why does the stain come back after washing?

This usually means the stain wasn't fully removed before washing. Residue can reappear when the fabric dries. Always inspect the stain while the garment is still wet after treatment. If it's still visible, treat again before washing and drying.

Can I treat a stain that's been sitting for weeks?

Yes, but it will take longer. Soak the garment in cold water with enzyme detergent or oxygen bleach for several hours or overnight, then treat with hydrogen peroxide or vinegar. Old stains may require multiple soak-and-treat cycles, and some may fade rather than disappear completely.