How do I remove stains from a white shirt?

Updated October 2026 · How we answer

Short answerAct fast: blot the stain, flush with cold water, then pretreat with a stain remover or a mix of liquid detergent and oxygen bleach. Wash in the hottest water safe for the fabric, and check before drying—heat sets stains.

General Stain Removal Steps

First, remove any excess stain by gently scraping with a spoon or blotting with a paper towel. Don't rub—it pushes the stain deeper. Flush the back of the stain with cold water to push it out of the fabric. For protein stains (blood, dairy, egg), always use cold water; hot water cooks them in.

Apply a prewash stain remover or a paste of liquid laundry detergent and a little water. Let it sit for 10–15 minutes. For tough stains, soak the shirt in a solution of oxygen bleach (like OxiClean) and cool water for up to an hour. Then wash as usual with a color-safe bleach alternative if needed.

  • Blot, don't rub.
  • Use cold water for protein stains.
  • Pretreat with detergent or stain remover.
  • Soak in oxygen bleach for stubborn marks.

Special Stains

For grease or oil, apply a few drops of dish soap directly to the stain, rub gently, and let it sit for 10 minutes before washing. For ink, dab with rubbing alcohol on a cotton ball, then rinse. For red wine, blot and cover with salt, then flush with cold water and pretreat.

If the stain persists after washing, do not put the shirt in the dryer. Heat sets the stain permanently. Repeat the pretreatment and wash again. For old, set-in stains, a long soak in oxygen bleach and hot water (if the fabric allows) can help.

  • Grease: dish soap.
  • Ink: rubbing alcohol.
  • Red wine: salt then cold water.
  • Never dry until the stain is gone.

Common mistakes

  • Using hot water on protein stains—it sets them permanently.
  • Rubbing the stain—this spreads it and damages fibers.
  • Drying the shirt before the stain is removed—heat makes it nearly impossible to get out.
From our shopsDad Gift Lab: Personalized mugs, tees and keepsakes for dad.