Mattress stains are unusually difficult to clean because the mattress itself cannot be lifted into a sink or thrown in a washing machine. The stain has to come out where it sits, and the stain has to come out with minimal water because the foam, padding, and coil layers inside the mattress hold moisture for days. The result is that most people either give up and live with the stain or make the stain worse by using hot water, rubbing aggressively, or applying the wrong cleaner. The good news is that the right approach handles most stains within an hour of work and about 15 dollars in supplies. The bad news is that the right approach depends entirely on what the stain is.
The four chemistry groups
Mattress stains fall into four categories, each with a different cleaning chemistry.
Protein stains include blood, urine, sweat, vomit, breast milk, and any other bodily fluid. Protein stains set permanently when exposed to heat, so the rule is cold water only, never warm or hot. Protein stains also respond best to enzyme cleaners, which contain protease enzymes that break the protein into smaller fragments that lift out easily.
Tannin stains include coffee, tea, red wine, and most dark juice. These need an oxygen based cleaner (hydrogen peroxide or an OxiClean type powder) because the tannin molecules bond strongly to fabric fibers and resist soap alone.
Oil and grease stains include cooking oil splashes, body oils accumulated over years, and makeup. These need a degreasing surfactant, which can be dish soap (Dawn works well) or a dedicated stain remover with grease cutting action.
Tannin plus oil stains include chocolate, gravy, and most food stains. These are the hardest because they contain two chemistries and need two treatments in sequence.
Treating a stain with the wrong chemistry is the most common reason cleaning makes the stain worse. Hot water on a protein stain cooks the protein into the fabric. Bleach on a urine stain produces yellow-brown residue. Soap alone on coffee leaves a permanent ring. Identify the stain type first, then proceed.
Universal first steps
Regardless of stain type, the first response is the same. Blot, never rub. Use a clean white cloth or paper towel pressed firmly onto the stain to absorb as much liquid as possible. Rubbing pushes the stain deeper into the fabric and spreads it horizontally into a larger area. Keep moving to clean sections of the cloth as it picks up the stain, so you are not pressing the absorbed material back into the mattress.
Work from the outside of the stain toward the center. Working from the center outward expands the stain ring. Working from the outside in concentrates the stain into the area that already has it.
Do this blotting step within minutes of the spill if at all possible. A wet stain is much easier to remove than a dry one. If the stain is already dry, the cleaning takes longer but still works with the methods below.
Blood stains, the cold water method
Fresh blood comes out of mattress fabric with cold water alone if you start within an hour. Wet a clean cloth with cold water, blot the stain, switch to a dry section of the cloth, and repeat until no more red transfers to the cloth.
For dried blood or blood that has resisted the cold water step, hydrogen peroxide (3 percent, the standard pharmacy strength) is the next step. Hydrogen peroxide reacts with the iron in hemoglobin to break the bond between the stain and the fabric. Apply with a spray bottle in a light mist, watch for the bubbling reaction (which confirms the peroxide is working), wait 30 seconds, then blot with a clean cold-water-damp cloth. Repeat the spray and blot cycle three to five times for a stubborn stain.
A paste of cornstarch, cold water, and a small amount of salt also works for set blood. Apply the paste, let it dry completely (4 to 6 hours), brush off the dried paste, and vacuum. The paste absorbs the stain as it dries. This method takes longer but uses no chemicals and is safe for any mattress material.
Urine stains, the enzyme cleaner method
Urine is the hardest common mattress stain because it contains both protein components (which set with heat) and uric acid crystals (which form during drying and bond to fabric in a way that resists most cleaners). Cold water and soap remove some of the stain but leave the uric acid behind, which is why urine stained mattresses often smell like ammonia even after multiple cleanings.
The fix is an enzyme cleaner specifically formulated for biological stains. Nature’s Miracle, Rocco and Roxie Professional Strength Stain and Odor Eliminator, and Bissell Professional Pet Stain and Odor are three reliable options at about 15 to 25 dollars per bottle. These products contain enzymes that digest the protein and break down the uric acid crystals, so both components of the stain come out together.
Apply the enzyme cleaner generously to the stained area, enough to penetrate the fabric and reach the affected padding underneath but not so much that the mattress becomes saturated. Let it sit for 10 to 15 minutes (some products specify longer). Blot with a clean cloth to remove the cleaner and the dissolved stain. Repeat once if the stain remains.
After the enzyme treatment, sprinkle baking soda over the area and let it sit for at least four hours (overnight is ideal). The baking soda absorbs any remaining moisture and neutralizes residual odor. Vacuum thoroughly with a brush attachment.
Sweat yellowing, the long term issue
Sweat does not show as a fresh stain. Sweat shows as gradual yellow discoloration that appears over months or years of use, concentrated in the head and shoulder area where the body contacts the mattress most. Sweat staining is the most common reason an otherwise clean looking mattress has visible discoloration.
A paste of equal parts baking soda, hydrogen peroxide (3 percent), and a small amount of dish soap applied with an old toothbrush works for moderate sweat staining. Brush gently in circular motions to work the paste into the fabric, let it sit for 30 minutes, then blot with a damp cloth to remove the residue. Significant yellowing may need two or three applications.
For severe yellowing on white or light mattress fabric, an oxygen powder cleaner (OxiClean) mixed with cold water into a paste and applied the same way is stronger. Test on an inconspicuous area first because oxygen cleaners can lighten some fabric dyes.
Mattress yellowing is largely preventable with a waterproof or sweat resistant mattress protector. After cleaning a yellowed mattress, adding a protector keeps the cleaned surface from yellowing again.
Coffee and red wine, the oxygen cleaner method
Coffee and red wine are tannin stains, and they respond to oxygen based cleaners and to hydrogen peroxide. The method is the same as for blood: spray hydrogen peroxide in a fine mist, wait 30 seconds, blot with a damp cloth, repeat. For coffee with cream and sugar, the cream component is fat and the sugar is a separate stain class, so a follow up with dish soap and water handles the residual after the peroxide treatment.
Red wine on a mattress is rare but happens. The classic salt method (cover the fresh stain with table salt to absorb the wine) works for the first 10 minutes after the spill. After that, the peroxide method handles what remains.
The drying step that prevents mildew
The single most important step after any wet cleaning method is drying the mattress before mildew sets in. Mattress foam and padding can hold moisture for days, and any moisture trapped inside the mattress for more than 48 hours risks mildew growth that produces a smell impossible to remove without replacing the mattress.
Strip the bed and leave the mattress uncovered. Run a fan blowing directly across the cleaned area. If possible, prop the mattress on edge to allow air circulation around the cleaned spot. Sunlight is the strongest natural drying force and also kills any mildew spores present, so if you can move the mattress to a sunny spot or open the curtains to let direct sun hit the cleaned area, the dry time drops significantly.
Allow at least 4 hours of active drying before remaking the bed. For deep cleaning that saturated more of the mattress, allow 8 to 12 hours.
What to do with old set stains
Mattress stains that are years old and have been through multiple failed cleaning attempts are usually permanent. The cleaning methods above remove fresh and moderate stains but cannot reverse fabric damage that has occurred from oxidation, foam degradation, or repeated chemical exposure. For a heavily stained older mattress, the realistic options are to live with the visible staining (functional concern is zero), to cover the staining with a thick mattress protector or topper, or to replace the mattress.
For related guidance see our stain remover tips for upholstery and the methodology at /methodology.
Frequently asked questions
Can I use hydrogen peroxide on a memory foam mattress?+
Yes, but in small amounts and only on the surface fabric. Memory foam reacts poorly to soaking with any liquid because the foam cells trap moisture for days, which leads to mildew growth inside the mattress. Apply hydrogen peroxide with a spray bottle in a fine mist, blot with a dry towel within 30 seconds, and never let the foam absorb more than a thin surface layer. For deep stains, repeat the light application four or five times rather than soaking once.
Why does the same stain look worse after I try to clean it?+
Three reasons account for almost all of these cases. You used warm or hot water on a protein stain (blood, urine, sweat), which sets the protein permanently. You rubbed instead of blotted, which spread the stain into a larger ring. Or you used the wrong chemistry, such as bleach on urine, which reacts with urea to produce a yellow-brown residue worse than the original stain. The fix is to start over with cold water and the correct enzyme cleaner for the stain type.
Does baking soda actually remove mattress odors?+
Baking soda neutralizes acid odors (vomit, sour milk, some sweat) through chemistry and absorbs other odors physically through its porous structure. For best results, sprinkle a thick layer (about half a cup per square foot of stain area), leave it for at least four hours (overnight is better), and vacuum thoroughly with a brush attachment. Baking soda does not remove the source of the odor, so if a urine stain is the cause, the underlying enzyme treatment must happen first.
Is professional mattress cleaning worth the cost?+
For a mattress under three years old with one or two surface stains, no. The methods in this article handle those cases for under 20 dollars in supplies. For mattresses with deep urine penetration, mold from prolonged moisture, or accumulated allergens from years of use without a protector, professional steam cleaning (60 to 150 dollars typical) may be cost effective compared to replacement. For mattresses over eight years old with significant staining, replacement is usually the better choice because cleaning rarely restores the mattress fully.
How do I prevent future stains?+
A waterproof mattress protector is the single highest impact preventative. The SafeRest Premium Hypoallergenic Mattress Protector (about 35 dollars in queen) blocks sweat, urine, and most spills from reaching the mattress itself. Wash the protector monthly with regular detergent, and the mattress underneath stays clean indefinitely. For households with kids or pets, a protector pays for itself the first time it intercepts an accident that would otherwise have soaked through to the mattress core.