How to Get Oil Stains Out of Fabric Sofa/couch 2026
Here's how to get oil stains out of a fabric sofa or couch: act fast, identify your fabric type, and use the right method for the job. Oil bonds to fibers quickly, so the longer you wait, the harder it becomes to lift without damaging the upholstery.
The good news is that most oil stains come out completely when you match the cleaning method to your fabric. The bad news is that using the wrong approach, like water on a water-sensitive fabric, can make things worse. This guide walks you through exactly how to figure out what you're dealing with and what to do about it.
Image source: Bing (Web (fair-use with source credit))
Quick Answer
Blot fresh oil immediately with a clean cloth. Sprinkle baking soda or cornstarch to absorb residue. Apply a dish soap solution for W-code fabrics.
Use solvent-based cleaners for S-code fabrics. Always check the care label first. Test any cleaner on a hidden spot before treating the stain.
Why Oil Stains Behave Differently From Spills (And Why That Matters)
Oil is hydrophobic. That means it repels water and bonds directly to fabric fibers instead of sitting on the surface where you can wipe it away. Water-based spills like coffee or juice sit on top of the fiber and wick outward.
Oil sinks in and oxidizes over time, which is why a stain that looked minor yesterday can become permanent if you don't treat it correctly.
The type of oil matters too. Cooking oil, body grease, motor oil, and candle wax all have different chemical compositions. Each one responds to different cleaning agents.
A method that lifts olive oil from cotton might do nothing on motor oil ground into polyester.
Stain age is the other big variable. A fresh spill under an old one responds dramatically faster. Aggregate cleaning guides and manufacturer care instructions consistently report that stains treated within the first hour have a significantly higher full-removal rate than those left overnight.
First Things First: Find Your Fabric Code Before You Touch Anything
Before you reach for any cleaner, flip a cushion and look for the care tag. It's usually tucked under the seat or along the back frame. You're looking for a single letter: W, S, WS, or X.
This code tells you exactly which cleaning agents are safe for your fabric. The system comes from ASTM International standards and is required on upholstered furniture sold in the US under the FTC Care Labeling Rule.
Here's what each code means:
| Code | What it means | Safe to use |
|---|---|---|
| W | Water-based cleaning only | Dish soap, water, vinegar solution, steam |
| S | Solvent-based cleaning only | Dry cleaning solvent, rubbing alcohol, no water |
| WS | Either water or solvent is fine | Your choice based on what's available |
| X | Vacuum or brush only | No liquids or solvents at all |
If the tag is missing or faded, check the manufacturer's website. Brands like IKEA, West Elm, and Article publish fabric care guides online. You can also look up how to identify fabric types by texture and weight, which helps narrow down your options.
If you truly can't identify the code, default to the gentlest approach: dry absorption with cornstarch, then a solvent-based method. It's better to under-treat than to ruin the fabric.
Identify What Kind of Oil You're Dealing With
Not all oil stains are created equal. The source determines which cleaning agent will work best.
Cooking oil and grease. Olive oil, vegetable oil, butter, mayo, salad dressing. These are organic oils that respond well to dish soap, which is designed to break down grease. If the stain also contains food particles or dairy, you're dealing with a protein-oil combo that may need an enzymatic cleaner after the initial degreasing.
Body oil and lotion. Sebum, sweat, sunscreen, moisturizer. These bond tightly to fabric because they contain proteins alongside the oil. They're common on armrests and headrests.
An enzymatic cleaner or rubbing alcohol works best here.
Motor oil and mechanical grease. Petroleum-based, heavier, and more stubborn. These often require a commercial degreaser or dry cleaning solvent. If you've got motor oil on your sofa, you're likely dealing with a set stain that needs multiple treatment passes.
Candle wax. Technically a solid oil. The wax needs to be removed first through freezing and scraping, then the residual oil stain is treated using the standard method for your fabric code.
Makeup and foundation. Oil plus pigment. These can leave a colored stain even after the oil is lifted. Treat the oil component first, then address any remaining discoloration with an oxygen-based cleaner tested on a hidden area.
The Master Method: Cleaning Oil Stains on W-Code and WS-Code Fabric
This is the most common scenario. Most cotton, polyester, and blended upholstery fabrics carry a W or WS code, which means you can use water-based cleaning methods. Here's the full process.
Step 1 — Absorb the Excess Immediately
Grab a clean, dry cloth or paper towel. Press it firmly onto the stain to soak up as much oil as possible. Do not rub.
Rubbing pushes the oil deeper into the fibers and spreads the stain outward.
Once you've blotted the surface, sprinkle a generous layer of baking soda or cornstarch over the entire stain. Baking soda is slightly more absorbent, but cornstarch works just as well and leaves less visible residue on dark fabrics.
Let it sit for at least 15 to 30 minutes for a fresh stain. For a heavy or set stain, leave it for 2 hours or even overnight. The powder will clump as it absorbs the oil.
Vacuum it up thoroughly with an upholstery attachment.
If the stain is still visible after vacuuming, repeat the cornstarch application. For thick grease stains, two to three rounds of absorption may be needed before you move to the next step.
Step 2 — Apply Dish Soap Solution and Blot
Mix one tablespoon of dish soap, like Dawn or Fairy, into two cups of warm water. Dawn is frequently cited in cleaning guides for its degreasing strength, but any standard dish soap works.
Dip a clean white cloth into the solution and wring it so it's damp, not soaking wet. Over-wetting is one of the most common mistakes. Too much water soaks into the cushion filling and can cause mildew or leave water rings.
Dab the stain from the outside edge toward the center. This prevents the stain from spreading outward. Work in small sections and blot frequently with a dry cloth to lift the oil out of the fabric.
You'll see the oil transferring from the fabric to your cloth. Keep switching to a clean section of the cloth as it picks up grease. Continue until no more oil transfers.
Step 3 — Rinse, Dry, and Evaluate
Dampen a fresh cloth with plain water, no soap. Blot the cleaned area to remove any soap residue. Leftover soap attracts dirt and can leave a sticky feel.
Press a dry towel firmly against the area to absorb as much moisture as possible. Then let it air dry naturally. A fan speeds things up.
Avoid direct heat from a hair dryer or space heater, as heat can set any remaining oil into the fabric.
Once fully dry, check the spot under natural light. If a shadow of the stain remains, repeat the process. For persistent marks, apply a small amount of 3% hydrogen peroxide to a cloth, dab the stain for no more than 10 minutes, then blot and rinse.
Test this on a hidden area first, as hydrogen peroxide can bleach dark or colored fabrics.
If you're dealing with a delicate fabric like linen or chenille, you might want to read up on how to find grainline on fabric to understand fiber direction before applying any liquid treatment. Working with the grain helps prevent texture damage.
What to Do When the Stain Has Already Set (Old or Dried Oil)
Set stains need more aggression, but you can still work within your fabric code. The oil has oxidized and bonded to the fibers, so a single pass won't cut it.
For W-code fabric, start with the absorption step. Then apply 70% isopropyl rubbing alcohol to a clean cloth. Dab the stain from the outside in, just like the dish soap method.
Alcohol breaks down oxidized grease better than soap alone. Blot repeatedly until the transfer stops.
Follow with the dish soap solution to lift the remaining residue. Rinse with a water-dampened cloth and blot dry. If a shadow persists, apply 3% hydrogen peroxide for 10 minutes maximum.
Rinse and dry again.
For set stains on WS-code fabric, you have the option to switch to solvent-based cleaning if water methods aren't cutting it. A dry cleaning solvent applied with a blotting motion can reach oil that dish soap can't touch.
Expect to repeat the full cycle two or three times for stains over 24 hours old. Patience matters more than product strength here.
Cleaning S-Code Fabric: When Water Is Not an Option
S-code fabrics include silk, acetate, velvet, and some treated synthetics. Water causes discoloration, water rings, and fiber damage on these materials. No exceptions.
Here's the process. Blot excess oil with a dry cloth. Apply a dry cleaning solvent, available at most hardware stores, to a clean white cloth.
Dab the stain gently from the outside edge inward. Let the solvent evaporate naturally.
Once the solvent has dried, sprinkle cornstarch over the area and leave it for at least 2 hours, or overnight for heavy stains. Vacuum thoroughly. Repeat if the stain shadow is still visible.
Do not use water-based dish soap, vinegar, or hydrogen peroxide on S-code fabric. These will almost certainly cause water marks or color bleeding that's harder to fix than the original stain.
If the stain covers a large area or the fabric is silk or velvet, this is where you should seriously consider calling a professional. One wrong move can ruin the finish permanently.
Removing Oil From Leather and Faux Leather Without Damaging the Finish
Leather doesn't use the W/S code system, but it needs its own approach. Oil stains on leather are actually easier to treat than on fabric because the oil sits on the surface rather than soaking into woven fibers.
Wipe the spill immediately with a dry microfiber cloth. Don't use water, dish soap, or vinegar on leather. These strip the natural oils and cause cracking over time.
Apply a pH-neutral leather cleaner to a soft cloth and work it gently into the stained area. Wipe with a damp cloth to remove residue. Then apply a leather conditioner to restore moisture.
This last step matters. Without it, the cleaned spot can dry out and crack while the surrounding leather stays supple.
For faux leather, the process is similar but gentler. Use a mild soap solution, wipe clean, and dry immediately. Avoid alcohol-based cleaners, which can cause faux leather to peel.
If the oil has soaked into a leather seam or stitching, you may need a professional leather restoration service. That's especially true for aniline or unfinished leather, which absorbs liquids fast and shows every mark.
Candle Wax on Your Sofa: The Freeze-Scrape-Iron Method
Candle wax is a solid oil stain. It needs a different sequence because you have to remove the wax before you can treat the oil residue underneath.
Start by placing an ice pack or a bag of frozen peas on the wax for 15 to 20 minutes. This hardens the wax so it becomes brittle. Once it's frozen solid, scrape off as much as you can with a dull knife or the edge of a credit card.
Work gently to avoid cutting the fabric.
Place a clean paper towel or brown paper bag over the remaining residue. Set an iron to low heat with no steam setting. Press the iron onto the paper for a few seconds.
The heat melts the wax, and the paper absorbs it. Keep moving to a clean section of paper as it picks up wax.
Once the wax is gone, you'll have an oil stain left behind. Treat it using the method for your fabric code, whether that's dish soap for W-code or solvent for S-code.
This method works on all fabric codes because the iron step uses dry heat. Just keep the temperature low and never use steam on S-code fabric.
The Mistakes That Make Oil Stains Permanent
Most oil stain failures come down to a handful of common errors. Here are the ones that cause real damage.
Rubbing instead of blot. Every time you rub an oil stain, you push it deeper into the fibers and spread it outward. Blotting lifts. Rubbing buries.
Using water on S-code fabric. Water rings on velvet or silk are nearly impossible to fix at home. Always check the code first.
Applying heat to a fresh stain. Hair dryers, irons used too hot, or even sitting in direct sunlight on a fresh spill will set the oil permanently. Air dry only, and keep the room cool.
Over-wetting the cushion. Soaking through to the filling causes mildew, odor, and a stain that resurfaces days later as the oil wicks back up from deep in the cushion. Dampen your cloth, don't pour liquid on the sofa.
Mixing cleaning chemicals. Vinegar and hydrogen peroxide combined create peracetic acid, which is a respiratory and skin irritant. Stick to one product at a time and rinse between applications.
Skipping the spot test. Even safe products can react badly with certain dyes or finishes. Always test on a hidden area first. Wait 15 minutes, blot dry, and check for color change or texture damage before treating the visible stain.
Waiting too long. A fresh oil stain can often be removed in one session. A week-old stain might take four or five rounds. Act as soon as you notice it.
If your sofa has stubborn buildup from years of use, you might also want to look into how to remove mold from fabric furniture, since old stains trapped in damp cushions can sometimes lead to bigger problems.
Household Products vs. Commercial Cleaners vs. Calling a Pro
You've got three tiers of cleaning power. Here's when each one makes sense.
Household products handle most fresh oil stains on W-code fabric. Baking soda, dish soap, cornstarch, and rubbing alcohol cover the majority of spills you'll encounter. The cost is minimal, and the results are solid for stains under 24 hours old.
Commercial upholstery cleaners like Resolve, Bissell, or Carbona are worth keeping on hand for set stains or recurring problem spots. These are formulated for fabric and often include surfactants that lift oil more aggressively than dish soap alone. Follow the product instructions and always spot-test first.
Professional upholstery cleaning runs between $100 and $300 per sofa as of 2026. Call a pro when the stain covers a large area, the fabric is delicate or antique, or you've tried two rounds of home treatment with no improvement. Professionals use hot water extraction and industrial solvents that reach deeper than anything you can do with a cloth and a spray bottle.
If your sofa has pilling or surface fuzz alongside the stain, a fabric shaver can clean up the texture after the stain is gone. Just make sure the fabric is fully dry before you run one over it.
How to Prevent Oil Stains From Setting in the First Place
Prevention is easier than treatment. A few habits go a long way.
Apply a fabric protector spray to your sofa after purchase. Products like Scotchgard create a barrier that causes oil to bead up rather than soak in. Reapply every six months or after any deep cleaning.
Keep greasy snacks away from the couch. It sounds obvious, but most oil stains come from chips, pizza, and buttered popcorn eaten during a movie. A tray or plate between the food and the fabric solves the problem.
Wash your hands before settling in after applying lotion, sunscreen, or hair products. Body oil transfers to armrests and headrests constantly, and over time it builds up into a dull, darkened patch that's hard to reverse.
Vacuum your sofa weekly with an upholstery attachment. Surface oil and dust combine into a grime layer that attracts more oil. Regular vacuuming keeps the fabric surface clean and makes future spills easier to treat.
When to Stop and Call a Professional Upholstery Cleaner
There's a point where home methods won't cut it. Here's when to stop and pick up the phone.
The stain has survived three full treatment rounds with no visible improvement. At that point, the oil has likely bonded at a molecular level, and you need industrial extraction.
The fabric is silk, velvet, antique, or has a finish you can't identify. These materials are unforgiving. One wrong product can cause permanent discoloration or texture damage.
The stain has reached the cushion filling. If oil soaked through the fabric and into the foam or batting, surface cleaning won't reach it. The stain will keep reappearing as oil wicks back up.
A professional can extract from deep within the cushion.
You're dealing with a large area, like a full seat cushion covered in grease. Spot treating a stain that size often leaves a visible clean patch surrounded by dirty fabric. A pro can clean the entire cushion evenly.
The sofa is under warranty. Some manufacturer warranties void if you use unauthorized cleaning methods. Check your documentation before applying anything beyond vacuuming.
Quick-Reference Decision Guide: Your Fabric, Your Oil, Your Method
Here's the full decision tree in one place.
| Fabric Code | Oil Type | Stain Age | Method |
|---|---|---|---|
| W or WS | Cooking oil, grease | Fresh | Baking soda absorb, dish soap solution, blot, rinse, air dry |
| W or WS | Cooking oil, grease | Set | Rubbing alcohol pre-treat, dish soap solution, hydrogen peroxide if needed |
| W or WS | Body oil, lotion | Any | Rubbing alcohol, then enzymatic cleaner for protein residue |
| W or WS | Motor oil | Any | Commercial degreaser, multiple passes, professional if no improvement |
| S | Any oil | Fresh | Dry cleaning solvent, cornstarch absorb, repeat |
| S | Any oil | Set | Dry cleaning solvent, extended cornstarch, consider professional |
| Leather | Any oil | Fresh | Dry wipe, pH-neutral leather cleaner, conditioner |
| Faux leather | Any oil | Fresh | Mild soap wipe, dry immediately, no alcohol |
| Any code | Candle wax | Any | Freeze, scrape, iron through paper towel, then treat residual oil per code |
| X | Any | Any | Vacuum only, consult professional for any liquid treatment |
If you're unsure of your fabric code, start with the gentlest option. Cornstarch absorption and dry cleaning solvent are safe starting points for almost any upholstery.
Frequently Asked Questions
Can dish soap damage my sofa fabric?
Dish soap is safe for W-code and WS-code fabrics when diluted properly. Use one tablespoon per two cups of water. Undiluted dish soap can leave a sticky residue that attracts dirt.
Never use it on S-code fabrics, as the water content can cause rings and discoloration.
How long should I leave baking soda on an oil stain?
For fresh stains, 15 to 30 minutes is enough. For set or heavy stains, leave it for 2 hours or overnight. The powder needs time to draw the oil out of the fibers.
Vacuum it up completely before moving to the next step.
Will vinegar remove oil stains from a sofa?
Vinegar alone doesn't break down oil effectively. It can help with odor and some food-based residue, but it's not a primary oil stain remover. Stick with dish soap for W-code fabric or solvent for S-code fabric.
Never mix vinegar with hydrogen peroxide.
Can I use a steam cleaner on an oil stain?
Steam can help after you've already treated the stain with a cleaning agent. The heat and extraction lift residual oil and soap from the fabric. Don't use steam as the first step, though.
Heat on untreated oil can set the stain permanently. Only use steam on W-code and WS-code fabrics.
What if the stain keeps coming back after cleaning?
That usually means oil has soaked into the cushion filling beneath the fabric. Surface cleaning removes the visible stain, but oil trapped in the foam wicks back up over time. This is a job for a professional upholstery cleaner with hot water extraction equipment.
Is it worth hiring a professional for one small stain?
For a single small stain on durable W-code fabric, probably not. Household methods work well. But if the fabric is delicate, the stain is large, or you've already tried home treatment twice without success, a professional cleaning is worth the cost.
It runs $100 to $300 and saves you from permanently damaging a sofa that costs far more to replace.