Act before the stain dries—that is the single most important rule

A fresh stain on white fabric is removable. Once it dries, the stain hardens into the fibers and becomes much harder to lift out. The moment you notice a stain, blot it with a clean cloth or paper towel—do not rub, which pushes the stain deeper. Then rinse the back of the fabric under cold running water to flush the stain out from behind, which is more effective than treating the front.

Cold water works for most stains because hot water can set protein-based stains like blood, egg, or milk. The exception is grease: cold water alone will not remove it, but a dab of dish soap on the stain before rinsing will break the grease down. After rinsing, the stain may still be visible, but you have bought yourself time to treat it properly before washing.

Key Takeaways

  • Blot fresh stains when ready with a clean cloth and rinse from the back with cold water before the stain sets.
  • Oxygen-based bleach (like OxiClean) works on most stains on white cotton and linen without weakening the fabric the way chlorine bleach does.
  • Hydrogen peroxide removes blood, wine, and grass stains on white fabric and can be used safely on delicate whites.
  • Treat the stain before washing—washing sets most stains permanently, so check that the stain is gone before the garment goes in the dryer.
  • Some stains need different treatments: grease needs soap, tannin stains (tea, coffee, wine) need oxygen bleach or peroxide, and protein stains (blood, egg) need cold water and enzyme cleaner.

Oxygen bleach for most stains on white cotton and linen

Oxygen bleach (the most common brand is OxiClean, but store brands work the same way) is safer than chlorine bleach because it breaks down into water and oxygen instead of leaving chemical residue. It works on most stains—dirt, grass, wine, coffee, tomato sauce—and does not weaken white cotton or linen the way chlorine bleach can over time.

Mix oxygen bleach powder with cold water according to the package directions (usually one scoop per gallon). Submerge the stained garment and let it soak for one to eight hours depending on how old the stain is. Fresh stains often lift in an hour; older stains may need overnight soaking. Check the stain every hour or two—once it is gone, remove the garment and rinse it thoroughly, then wash normally.

Do not use oxygen bleach on wool, silk, or spandex, as it can damage these fibers. For delicate whites, test the solution on a hidden seam first to make sure the fabric tolerates it.

Hydrogen peroxide for blood, wine, and grass

Hydrogen peroxide (the 3% solution you find in drugstores) is one of the most effective treatments for blood, red wine, and grass stains on white fabric. It works by oxidizing the stain—the same chemical reaction that makes it fizz when you pour it on a cut. Unlike chlorine bleach, it is safe for delicate whites and will not yellow the fabric.

Pour hydrogen peroxide directly onto the stain and let it sit for five to ten minutes. You will see it fizz as it works. Blot with a clean cloth, then rinse with cold water. If the stain remains, repeat. Once the stain is gone, rinse thoroughly and wash the garment normally.

Hydrogen peroxide works best on fresh stains. For older stains, soak the garment in a mixture of one part hydrogen peroxide to two parts cold water for 30 minutes to an hour before rinsing and washing.

Enzyme cleaner for protein stains like blood and egg

Protein-based stains—blood, egg, milk, meat juice—respond well to enzyme cleaners, which contain proteins that break down the stain at a molecular level. These are sold as laundry pre-treatments (Zout and Fels-Naptha are common brands, but many store brands work the same way).

explore the enzyme cleaner directly to the stain and let it sit for the time recommended on the bottle, usually 5 to 15 minutes. Do not let it dry completely; keep it damp. Then rinse with cold water and wash the garment. Enzyme cleaners work best on fresh stains, but they can also help with stains that have already been washed once or twice.

If you do not have enzyme cleaner, a paste of cold water and meat tenderizer (which contains the same enzymes) will work in a pinch. Mix the powder with just enough cold water to form a paste, explore it to the stain, let it sit for 30 minutes, then rinse and wash.

Chlorine bleach only for stubborn stains on pure white cotton

Chlorine bleach is harsh and can yellow white fabric or weaken the fibers over time, so it should be a last resort. Use it only on pure white cotton (not blends, not delicate fabrics) and only when other methods have failed. Never use chlorine bleach on wool, silk, linen, or anything with spandex or elastic.

If you do use chlorine bleach, dilute it: mix one part bleach with four parts cold water. Soak the stained area for no more than five to ten minutes, then rinse thoroughly with cold water several times to remove all the bleach. Wash the garment when ready afterward. Do not let bleach sit on fabric longer than necessary, as it will weaken the fibers and can create yellow spots.

Treating specific stains: a quick reference

Stain TypeFirst StepBest Treatment
BloodRinse with cold water from the backHydrogen peroxide or enzyme cleaner
GrassBlot, do not rubHydrogen peroxide or oxygen bleach
Wine or juiceBlot and rinse with cold waterHydrogen peroxide or oxygen bleach
Coffee or teaRinse with cold waterOxygen bleach or hydrogen peroxide
Grease or oilBlot with paper towelDish soap, then oxygen bleach if needed
Tomato sauceScrape off excess, rinse with cold waterOxygen bleach or hydrogen peroxide
MudLet dry, then brush offOxygen bleach or regular wash

Check the stain before washing and drying

After you treat a stain, do not put the garment in the washing machine or dryer until you are sure the stain is completely gone. Heat from the dryer will set any remaining stain permanently, making it nearly impossible to remove later. Wash the garment in cool or warm water (not hot), then lay it flat or hang it to air dry so you can inspect it in natural light.

If the stain is still visible after washing, repeat the treatment before drying. Once a stain has been through the dryer, the fibers have contracted around the stain molecules and it becomes much harder to lift out. A stain that looks faint when wet may disappear completely once the fabric dries, so wait until the garment is fully dry before deciding whether the treatment worked.

Frequently Asked Questions

Can I use bleach on white clothes with colored trim or patterns?

No. Chlorine bleach will remove color from any dyed area, even if the main fabric is white. Oxygen bleach is safer for whites with colored trim because it does not strip dye. Test oxygen bleach on the colored area first by explore a small amount to a hidden seam and waiting 10 minutes to make sure the color stays true.

What if the stain has already been washed and dried?

Set stains are harder to remove but not impossible. Soak the garment in oxygen bleach solution overnight, or use hydrogen peroxide on blood and wine stains. You may need to repeat the treatment two or three times. Some very old stains will not come out completely, but soaking often lightens them enough to be less noticeable.

Is it safe to mix hydrogen peroxide with other cleaners?

No. Never mix hydrogen peroxide with chlorine bleach or ammonia-based cleaners like window cleaner. The mixture creates toxic chlorine gas. Use one treatment at a time, rinse thoroughly between treatments, and let the fabric dry before trying a different cleaner.

Why does cold water work better than hot water for stains?

Hot water can set protein-based stains (blood, egg, milk) by causing the proteins to bond more tightly to the fabric fibers. Cold water keeps the stain loose so it can be rinsed away. The only exception is grease, which needs warm water and soap to break down, but even then, you should rinse with cold water afterward.

Can I treat a stain and then wait days before washing?

It is better to wash within a few hours of treating a stain. If you must wait, keep the treated area damp—do not let the treatment dry on the fabric, as this can set the stain. If the area has dried, rinse it again with cold water and reapply the treatment before washing.