Cleanlemons
← Notes from the floor

For customers · November 1, 20267 min read

How to clean a fabric sofa at home: read the W, S or X tag first, then stains and smell

How to clean a fabric sofa at home: find the cleaning code tag first (W, S, WS or X), vacuum every surface, treat stains by blotting with the cleaner that code allows, deodorise with baking soda, and dry it fast. In a humid city like Johor Bahru, drying matters as much as cleaning.

Most guides jump straight to "mix dish soap and water". That is fine for some sofas and ruins others. The small tag under the seat cushion decides which method is safe, so we start there.

What do the W, S, WS and X codes on a sofa tag mean?

The code tells you which kind of liquid the fabric can take: W means water-based cleaners, S means solvent (water-free) only, WS means either, and X means no liquid at all, vacuum and brush only. The tag is usually under a seat cushion or on the underside of the frame. Furniture makers and fabric suppliers use the same four letters.

CodeWhat you may useWhat goes wrong if you ignore it
WMild detergent in water, upholstery foamOver-wetting still causes rings and slow drying
SWater-free upholstery solvent onlyWater can leave permanent rings or shrink the fibres
WS (or SW)Either water-based or solventThe most forgiving; still test first
XVacuum and soft brush onlyAny liquid can stain or stiffen the fabric

If there is no tag (common on cheaper or older sofas), treat it as S or X until a hidden test spot proves water is fine. A wrong guess with water is the most common way a home cleaning job turns one stain into a large ring.

How do you clean a fabric sofa step by step?

Remove the cushions, vacuum everything including the crevices, spot-treat stains, sprinkle baking soda for smell, vacuum again, and let it dry with a fan running. For a three-seater, this takes about an hour plus drying time; that is our estimate, not a measured figure.

StepWhat to doWhy
1. Check the tagFind W, S, WS or XDecides every later step
2. Take cushions offShake and vacuum both sidesCrumbs and sand sit underneath
3. Vacuum with the brush headSeat, back, arms, then the crevice tool along every seamDry dirt turns to mud once you add water
4. Test your cleanerHidden spot, wait 5–10 minutes, blot with a white clothChecks for colour running or rings
5. Spot-treat stainsBlot from the outside edge toward the centreRubbing spreads the stain and frays the weave
6. DeodoriseSprinkle baking soda, leave a few hours, vacuumAbsorbs odour without wetting the fabric
7. DryFan or air-con on, windows open on a dry dayDamp padding is how sofas start to smell

Do not skip step 3. Water on an unvacuumed sofa pulls the dust down into the foam, and the "clean" patch dries darker than the rest.

Which stain needs which cleaner?

Fresh spills: blot with a dry cloth first, then use the mildest cleaner the code allows; only move up to stronger products after a spot test. The table below is for W and WS fabrics. For S fabrics, use a water-free upholstery solvent and follow its label. For X, vacuum and call a specialist.

StainFirst tryIf it staysWatch out
Coffee, tea, drinksBlot, then a few drops of dish soap in waterRepeat, blotting dry each timeDo not pour; dab with a damp cloth
Food grease, body oil on arms and headrestDish soap solution (it breaks grease)Upholstery foam cleanerHeadrest grime builds slowly; expect two or three rounds
Urine (kids, pets)Blot out as much as possibleEnzyme cleaner made for urineSoap alone often leaves the smell behind
InkUpholstery solvent on S or WS fabricSpecialistWater-based attempts can spread ink
Unknown old stainDish soap solution3% hydrogen peroxide, light fabrics only, after a testPeroxide can bleach dyed fabric

Two safety rules, because people grab whatever is under the sink. Never mix bleach with ammonia or with acidic toilet cleaners; both mixes release toxic gas (we explain this in the two cleaning mixes that can put you in hospital). And never put hydrogen peroxide and vinegar in the same bottle; together they form peracetic acid, which irritates eyes, skin and lungs. Bleach itself has no place on a sofa: it removes colour, not just the stain.

How do you get rid of a sofa smell?

Most sofa smells come from three places: body oil and sweat in the fabric, a spill that soaked into the foam, or damp padding that never dried. Baking soda handles the first; the other two need the source cleaned and dried.

  • Sweat and body oil: clean the arms and headrest with the dish soap solution, then baking soda overnight and vacuum.
  • Old spill in the foam: if the cushion cover has a zip and the tag allows it, wash the cover separately and let the foam dry in the shade with airflow. Smell coming back after a week means the liquid reached the foam and a surface clean is not enough.
  • Musty smell: this is a humidity problem. Johor Bahru's average humidity is around 84%, and the US EPA advises drying wet materials within 24 to 48 hours to stop mould growth. A sofa cleaned in the evening with windows closed may still be damp the next day. Clean in the morning, run a fan, and keep the air-con on if you have it.

Covering a smell with fabric spray only works for a day or two. The same idea applies to mattresses, which we cover in how to clean a mattress in a humid climate.

How often should you clean a fabric sofa?

Vacuum it every week or two, spot-clean spills the same day, and do a full clean like the steps above every three to six months. That rhythm is our own working habit rather than a published standard. Homes with pets, small children or a sofa used as a bed need the shorter end. Our cleaning frequency table puts the sofa next to everything else in the house.

How much does professional sofa cleaning cost in Malaysia?

A 2026 Klang Valley price guide from ClickBina puts fabric sofas at about RM30 to RM60 per seat, a 3 to 5 seater set at RM150 to RM300, and an L-shaped sofa at RM200 to RM400. Leather costs a little more, around RM40 to RM80 per seat, and a single armchair is RM40 to RM90. Individual cleaners advertising on social media quote roughly RM110 to RM180 for a three-seater. We could not find a reliable published price list specific to Johor Bahru, so treat these as a reference, not a JB quote.

ItemMarket range (Klang Valley, 2026)
Fabric sofa, per seatRM30–60
Leather sofa, per seatRM40–80
3–5 seater fabric setRM150–300
L-shaped or large sectionalRM200–400
Single armchair or reclinerRM40–90

What you pay for is the machine: hot water extraction sprays solution into the fabric and sucks most of it back out, so the padding dries in hours instead of days. A good job should be dry or nearly dry by the next morning; a sofa still wet the next day was over-wetted.

When is it worth paying someone?

For most homes the steps above are enough, and they cost less than RM20 in dish soap and baking soda. Paying a specialist makes sense when:

  • the tag says S or X and you do not want to risk a ring
  • there is a large urine accident that reached the foam
  • the sofa is light-coloured and greyed all over, not just in spots
  • you are handing back a rental unit or preparing a homestay before guests

Honest note: sofa extraction is not a service on our own price list. For that job, a specialist upholstery cleaner with the right machine is the better call. If you want to know which tools are actually worth buying for jobs like this, see cleaning tools worth the money.

What if you would rather not clean the rest of the house yourself?

The sofa is one corner of the living room; floors, bathrooms and the kitchen are where most of the weekend goes. If you would rather hand that part over, you can see what each cleaning service costs on our services page. We will tell you honestly when a job is cheaper to do yourself.

Ready when you are

Book a cleaning, or ask us anything about the software.

More articles