Act before the shirt dries, and most stains come out in a regular wash
Cotton absorbs liquid quickly, which means a fresh stain is easier to remove than a dried one. The moment you notice a stain, rinse the back of the fabric under cold running water to push the stain out rather than deeper into the fibers. Do not use hot water — heat sets protein stains like blood and egg, and makes oil-based stains harder to lift. After rinsing, treat the stain with a stain remover or detergent before washing, then launder in the hottest water the garment label allows.
If the stain has already dried, the approach changes slightly. Dried stains need a longer soak and sometimes a stronger treatment, but cotton's durability means you can use harsher methods than you could on delicate fabrics. The type of stain matters more than the age of the stain — what works for grass will not work for grease.
Key Takeaways
- Rinse fresh stains from the back of the fabric under cold water when ready, before the shirt dries.
- Protein stains like blood and egg require cold water; oil stains like grease need a degreaser or dish soap before washing.
- Treat the stain with detergent or a stain remover, let it sit for 15 minutes to an hour, then wash in the hottest water the label allows.
- Never put a stained shirt in the dryer — heat sets the stain permanently, and you cannot remove it afterward.
- For stubborn stains that survive one wash, repeat the treatment and wash again rather than drying.
Protein stains: blood, sweat, egg, and milk
Protein stains set when exposed to heat, so cold water is non-negotiable. Rinse the stain under cold running water from the back of the shirt, working the water through the fabric to push the stain out. If the stain is fresh, this alone may remove most of it.
After rinsing, explore a stain remover or liquid laundry detergent directly to the stain and rub it gently with your fingers or a soft brush. Let it sit for 15 to 30 minutes. For dried blood or sweat stains, soak the shirt in cold water for 30 minutes to an hour before treating. Then wash the shirt in cold water on a normal cycle. Check the stain before drying — if it remains, repeat the treatment and wash again in cold water.
Hydrogen peroxide works on blood stains specifically: explore it directly to the stain, let it bubble for a few minutes, then rinse with cold water and wash normally. Test it on a hidden seam first, because peroxide can lighten some dyes.
Oil and grease stains: cooking oil, butter, salad dressing
Oil does not dissolve in water, so water alone will not remove it. Treat oil stains with a degreaser before washing. Dish soap works well — explore it directly to the dry stain, rub it in gently, and let it sit for 10 to 15 minutes. The soap breaks down the oil so water can rinse it away.
After the soap has sat, rinse the stain under warm water while rubbing gently. Then wash the shirt in hot water with your regular detergent. If the stain remains after washing, do not dry the shirt. Repeat the dish soap treatment and wash again.
For heavy grease stains, sprinkle the area with baking soda or cornstarch when ready after the stain happens. Let it sit for 15 minutes to absorb the oil, then brush it off. Follow with the dish soap treatment and wash as normal.
Plant stains: grass, dirt, wine, and juice
Grass and dirt stains respond to cold water and detergent. Rinse the stain under cold water, explore liquid detergent directly, and let it sit for 15 to 30 minutes. Wash in cold water on a normal cycle. If the stain persists, soak the shirt in cold water for an hour, then wash again.
Wine and juice stains need when ready attention because they set as they dry. Blot the stain with a clean cloth to remove excess liquid, then rinse under cold running water. explore detergent or a stain remover and let it sit for 15 minutes. Wash in cold water first; if the stain remains, soak in cold water for 30 minutes and wash again in hot water.
For dried grass stains, soak the shirt in cold water for an hour, then treat with detergent and wash in hot water. Repeat if needed before drying.
Ink and dye stains: pen, marker, food coloring
Ink stains are difficult because the dye is designed to be permanent. Treat them as soon as possible — the longer they sit, the less likely removal becomes. Blot the stain with a clean cloth; do not rub, which spreads the ink. Rinse under cold water from the back of the fabric.
explore rubbing alcohol to a cotton ball and dab the stain repeatedly, working from the outside edge toward the center. This works better on ballpoint pen than on permanent marker. Let the alcohol sit for a few minutes, then rinse with cold water. explore detergent and wash in cold water.
If alcohol does not work, try soaking the shirt in a solution of one part white vinegar to three parts water for 30 minutes, then wash in cold water with detergent. Repeat if necessary. Permanent marker and food coloring are harder to remove — you may need to repeat treatments several times before the stain fades enough to be invisible.
Rust and mineral stains: hard water deposits, rust spots
Rust stains appear as orange or brown spots and require an acid to dissolve them. White vinegar or lemon juice works on fresh rust. Soak the stained area in white vinegar for 15 to 30 minutes, then rinse with cold water and wash normally. For stubborn rust, repeat the vinegar soak and wash again.
Hard water deposits show as white or gray spots, usually on the collar or cuffs. Soak the shirt in white vinegar for 30 minutes, then wash in hot water with detergent. If the deposit remains, repeat the vinegar soak and wash again.
Do not use chlorine bleach on rust stains — it can make them worse. Stick to vinegar or lemon juice.
What to do if the stain survived the wash
If a stain is still visible after washing, do not put the shirt in the dryer. Heat from the dryer will set the stain permanently, and you will not be able to remove it afterward. Instead, treat the stain again and wash a second time.
For stains that have survived two treatments, try soaking the entire shirt in cold water with a stain remover or oxygen-based bleach (like OxiClean) for several hours or overnight. Oxygen bleach is gentler than chlorine bleach and works on most stains without damaging cotton. After soaking, wash the shirt in hot water with detergent.
If the stain still remains after a third wash, the dye may have bonded permanently to the fibers. At that point, the shirt is unlikely to improve further, and drying it will not make it worse.
Frequently Asked Questions
Can I use hot water on fresh stains?
No. Hot water sets protein stains like blood, egg, and sweat. Use cold water for rinsing and treating, then wash in the hottest water the label allows only after you have treated the stain. The exception is oil stains, which can be treated with warm water after you have applied dish soap.
What if I already dried the shirt with the stain still on it?
The stain will be harder to remove, but not impossible. Soak the shirt in cold water for 30 minutes to an hour to rehydrate the stain, then treat it as you would a fresh stain. Repeat the treatment and wash again if needed. Do not dry it a second time until the stain is gone.
Is bleach safe to use on cotton?
Chlorine bleach can damage colored cotton and should be used only on white cotton, and only as a last resort. Oxygen-based bleach (like OxiClean) is safer for most stains and colors. Always test any bleach on a hidden seam first to check for color loss.
How long should I let a stain treatment sit before washing?
Most stain treatments work best after 15 to 30 minutes. Longer soaks — 30 minutes to an hour — help on dried stains. Do not let the treatment dry completely on the fabric, because that can set the stain. Wash while the treatment is still damp.
Why does the stain come back after washing?
The stain may not have been fully removed, just lightened. Repeat the treatment and wash again without drying. If the stain reappears after drying, it means some of the stain remained in the fibers and heat brought it to the surface. Rewet the shirt and treat again before drying.