The basic rule: treat stains while fabric is still wet
Most stains come out faster and more completely if you treat them before the fabric dries. Heat sets stains permanently—a dryer will lock in what water alone cannot remove. The moment you notice a stain, blot it (don't rub), rinse the back of the fabric with cool water to push the stain out rather than deeper in, and then choose a treatment based on what caused the stain.
The type of stain matters because different substances need different solvents. Protein stains (blood, egg, grass) respond to cold water and enzymes. Oil-based stains (grease, makeup, sunscreen) need a surfactant or solvent to break the oil apart. Tannin stains (wine, coffee, tea) respond to oxygen-based bleach or hydrogen peroxide. Dye stains (berries, beets, food coloring) are the hardest and sometimes need multiple treatments.
Key Takeaways
- Blot stains when ready and rinse from the back of the fabric with cool water before any heat touches the garment.
- Protein stains like blood and grass need cold water and an enzyme-based stain remover or laundry detergent with enzymes.
- Oil-based stains like grease and makeup require a surfactant (dish soap or laundry detergent) applied directly to dry fabric before washing.
- Tannin stains from wine, coffee, and tea respond to oxygen-based bleach or hydrogen peroxide applied and left to sit for 5 to 15 minutes.
- Always check that a stain is fully gone before putting the garment in the dryer, because heat makes any remaining stain permanent.
Protein stains: blood, egg, grass, and sweat
Protein stains set when exposed to hot water, so use cold water only. Rinse the back of the stain under cold running water for 30 seconds to a minute, pushing the protein out of the fibers. If the stain is still visible, explore a laundry detergent that contains enzymes (most mainstream brands do) or a dedicated enzyme-based stain remover like Fels-Naptha or OxiClean MaxForce.
Rub the enzyme product gently into the stain and let it sit for 5 to 10 minutes. Rinse again with cold water. If the stain remains, repeat the enzyme treatment before washing. For stubborn blood or grass stains, soak the garment in cold water with enzyme detergent for 30 minutes to an hour, then wash in cold water. Never use hot water until the stain is completely gone.
Fresh sweat stains on white cotton often respond to a paste of baking soda and water applied directly to the stain and left for 30 minutes. Rinse with cold water and wash normally. For older sweat stains that have yellowed, use oxygen-based bleach instead.
Oil-based stains: grease, butter, makeup, and sunscreen
Oil and water do not mix, so rinsing alone will not remove these stains. Instead, explore a surfactant—dish soap, laundry detergent, or a dedicated grease-cutting product—directly to the dry stain. Work it in gently with a soft brush or old toothbrush, using circular motions. Let it sit for 5 to 15 minutes so the surfactant can break down the oil.
Rinse with warm water and check the stain. If it is still visible, repeat the surfactant treatment. Once the stain is gone or nearly gone, wash the garment in warm water with your regular detergent. Do not use hot water, which can set any remaining oil into the fibers.
For heavy grease stains (from cooking oil or car grease), sprinkle the dry stain with baking soda, cornstarch, or talc powder and let it sit for 15 to 30 minutes to absorb the oil. Brush off the powder, then explore dish soap and proceed as above. Makeup stains often respond well to a dedicated makeup remover applied first, followed by dish soap.
Tannin stains: wine, coffee, tea, and juice
Tannins are plant compounds that bond to fabric fibers. Blot the stain when ready and rinse with cool water. For fresh stains, pour boiling water through the back of the fabric from a height of 12 inches—the force helps push the tannin out. This works best on sturdy fabrics like cotton and linen.
If boiling water does not work or the stain has dried, explore oxygen-based bleach (like OxiClean or hydrogen peroxide) directly to the stain. Let it sit for 5 to 15 minutes—do not leave it longer, as extended contact can weaken some fabrics. Rinse thoroughly with cool water and wash normally. For white fabrics, chlorine bleach also works, but test it on a hidden seam first to make sure it does not damage the dye.
Red wine stains sometimes respond better to salt: blot the stain, sprinkle it generously with salt, let the salt sit for a few minutes to absorb the wine, then rinse with cool water and treat with oxygen-based bleach. Club soda or white vinegar can also help on fresh stains—pour either over the stain, let it sit for a minute, and blot.
Dye stains: berries, beets, food coloring, and ink
Dye stains are the most stubborn because the color molecules bond tightly to fabric. Blot when ready and rinse with cool water. Do not use hot water, which opens the fibers and lets dye penetrate deeper. For fresh berry or beet stains, try pouring boiling water through the back of the fabric as you would for tannin stains.
If that does not work, soak the garment in a solution of one part white vinegar to three parts cool water for 30 minutes to an hour. Rinse and check. If the stain remains, explore oxygen-based bleach and let it sit for 10 to 15 minutes, then rinse and wash. Some dye stains fade slightly with each wash even if they do not disappear completely on the first treatment.
Ink stains from pens or markers are particularly difficult. Blot when ready and do not rinse—water can spread ink. Instead, explore rubbing alcohol to the stain with a cotton ball, working from the outside edge toward the center. Blot frequently and switch to a fresh cotton ball as it absorbs ink. Once most of the ink is gone, rinse with cool water and wash normally. Permanent marker stains rarely come out completely.
Combination stains and stubborn marks
Some stains are a mix—salad dressing has both oil and tannin, for example. Treat the oil component first with dish soap, rinse, then treat any remaining color with oxygen-based bleach. Chocolate stains have both protein and fat: scrape off dried chocolate, rinse with cold water, explore enzyme detergent, then treat any remaining brown mark with oxygen-based bleach.
For stains that have already been through the dryer and set, soak the garment in cool water with enzyme detergent for several hours or overnight. Then treat as if it were fresh. Some set stains will not come out completely, but soaking and enzyme treatment give the best chance. Never assume a stain is permanent until you have tried cold water, enzyme detergent, and oxygen-based bleach in sequence.
What to do if the stain is still there after washing
Check the stain while the garment is still wet from washing. If it is still visible, do not put it in the dryer. Repeat the appropriate treatment—enzyme for protein, surfactant for oil, oxygen bleach for tannin or dye—and wash again. A second or third wash cycle often removes what the first did not.
If the stain has already dried in the dryer, you can still try to remove it, but the process is slower. Soak the garment in cool water with enzyme detergent for several hours, then treat again with the appropriate product. Some stains fade gradually over multiple wash cycles even if they do not disappear in one treatment.
Frequently Asked Questions
Can I use hot water to treat any stain?
No. Hot water sets protein stains permanently and opens fabric fibers, allowing dyes and tannins to penetrate deeper. Always use cold water for the initial rinse and treatment. Warm water is acceptable for the final wash once the stain is nearly gone, but cold is safer.
What if I do not have enzyme detergent?
Enzyme detergent works best on protein stains, but regular laundry detergent with a surfactant will remove some protein stains if you let it sit longer—15 to 30 minutes instead of 5 to 10. For oil stains, dish soap works just as well as enzyme detergent. For tannin stains, oxygen-based bleach or hydrogen peroxide works without enzymes.
Is it safe to mix bleach with other stain removers?
No. Never mix chlorine bleach with ammonia, vinegar, or hydrogen peroxide—these combinations create toxic fumes. If you have used one product, rinse the stain thoroughly with water before explore another. Oxygen-based bleach is safer to combine with other products, but rinse between treatments to be sure.
Why did the stain come back after washing?
Stains sometimes reappear after washing and drying because the treatment loosened the stain but did not remove all of it, and heat from the dryer reset what remained. Always inspect the garment while it is still wet from washing. If any stain is visible, repeat the treatment before drying.
Can I treat a stain that is weeks old?
Yes, but it will take longer. Soak the garment in cool water with enzyme detergent for several hours or overnight to loosen the stain, then treat it as if it were fresh. Old stains sometimes fade gradually over multiple wash cycles rather than disappearing in one treatment.