One Letter Decides Whether Water Ruins Your Sofa

By Sofie in

· Updated

Pale linen sofa in a bright living room with cushions in place

The short answer: upholstery cleaning codes are a single letter on a tag under your cushions, and they decide whether water is safe on your sofa or ruins it. W means water-based cleaners. S means solvent only, and water causes rings, browning and shrinkage. WS means either. X means vacuum and soft brush only, which includes no steam, because steam is water. The part almost nobody explains is why: the code is set by the mill after testing and reflects the backing and the applied finish as well as the face fabric, so a cotton that would tolerate water on its own can be coded S because what is underneath it cannot. Find the tag before you buy any cleaner, and if there is no tag at all, treat it as S until a hidden-spot test says otherwise.

Disclosure: this post contains affiliate links, and as an Amazon Associate I earn from qualifying purchases. If you buy through them I may earn a small commission at no extra cost to you. I only recommend things I would use in my own home.

Dry cleaning solvent bottle beside a soft nylon bristle brush
Dry cleaning solvent bottle beside a soft nylon bristle brush

Find the tag first

Almost every guide on this subject explains the letters and forgets to tell you where to look, which is the one piece of information you need before any of it becomes useful. Two minutes with your hand under a cushion settles a question that otherwise costs you a sofa.

The four places it hides

Under the seat cushions is the most common, usually sewn into the seam of the deck, the flat platform the cushions sit on. Take the cushions off entirely rather than lifting one corner.

On the underside of the cushion itself is second, often on the zip side you never see. Underneath the frame is third, which means tipping the sofa forward or lying on the floor with a torch. And on the side seam near the armrest is fourth, sewn flat against the fabric where it is easy to miss.

The tag carries more than the code, usually including fibre content and a manufacturer reference. The letter you want is normally on its own line, sometimes preceded by the word cleanability.

Why the code is not about the fabric you can see

This is the part that changes how you read the whole system. The code is assigned by the mill after testing, and it reflects the fibre, the construction and any applied finish taken together. Which means a fabric that would tolerate water perfectly well on its own can carry an S code because the backing or the finish cannot.

So the instinct that gets people into trouble is entirely reasonable and entirely wrong: you look at a sofa, recognise the fabric as cotton or a hard-wearing weave, conclude water is obviously fine, and skip the tag. The tag is not describing the surface. It is describing the whole assembly, including the layer you have never seen and the treatment you did not know was applied.

Numbers worth knowing

The codes come from the Joint Industry Committee for Upholstery Fabric Standards and are used across the furniture and contract trades. The critical detail nobody passes on to homeowners is that they are voluntary at the regulatory level. They are effectively mandatory for contract bids and major retailers, which is why most mainstream sofas carry one, but a piece from a small maker, a vintage find or an imported bargain may have no code at all.

So no tag does not mean safe. It means untested, or tested by somebody who did not label it. Treat an untagged piece as S, which is the cautious assumption, and confirm with a hidden-spot test before you put water anywhere near it.

One more reason to look now rather than later: the tag is far easier to find on a clean dry sofa than on one you have already spilled red wine across and are searching in a hurry.

Hidden spot test being applied to the back of a sofa skirt
Hidden spot test being applied to the back of a sofa skirt

Work out what you can use in 3 taps

The code, the mess, and how far it has got. Those three decide what goes on the fabric and what must not.

Faint pink dye bleed across a pale upholstery panel
Faint pink dye bleed across a pale upholstery panel

Every code, including the ones nobody explains

Most guides cover four letters. There are more than four, and the rarer ones turn up on exactly the pieces where getting it wrong is most expensive.

Code Means You can use Never Typical fabrics
W Water-based Upholstery shampoo, mild detergent foam Solvents. Bleach unless stated. Over-wetting Most polyester, olefin, solution-dyed synthetics
S Solvent only Water-free dry cleaning solvent Water. Steam. Any water-based product Silk, rayon, viscose, velvet, damask, some linens
WS, W/S, SW Either Water-based or solvent, matched to the stain Skipping the pre-test. Saturating Many blends and treated natural fibres
X, X/S Vacuum only Vacuum, soft brush, professional service Water, solvent and steam. Everything Delicate weaves, some chenilles, textured novelties
D Dry clean only Professional dry cleaning Home cleaning of any kind Removable covers on tailored pieces
F Foam only Dry foam from a specialist cleaner Liquid water. Saturation Fabrics that tolerate moisture briefly but not volume
O Organic fibre Cold water only Warm or hot water, which shrinks it Untreated natural fibres
SC Spot clean only Depends on the stain. Dry cloth for oil Whole-piece cleaning at home Often leather and leather-look surfaces
E, N Leather codes Leather-specific products only Fabric cleaners of any kind Leather and bonded leather

Two rows deserve reading twice. The X row includes steam, and people miss that constantly: steam is water in another state, so a steam cleaner on an X fabric is a water treatment however dry the machine claims to be. The same applies to S. If your code is S or X, hot water extraction and domestic steam cleaners are both off the table entirely.

And the W row has a limit most guides omit. W permits water-based cleaning and does not permit bleach, unless the fabric is specifically stated as bleach cleanable, which in practice means solution-dyed. Reaching for a diluted bleach solution on a W-coded sofa because the code said water is a reasonable-sounding mistake with a permanent result.

W does not mean washable

This is the single most common misreading. W means a water-based cleaner may be used in small quantities on the surface. It does not mean the fabric can be soaked, hosed, machine washed or saturated with an extraction machine. The face fabric is thin and the padding beneath it holds water for days, which is how a properly coded W sofa still ends up smelling of mildew after an enthusiastic clean.

Water ring visible on upholstery fabric with a defined edge
Water ring visible on upholstery fabric with a defined edge

The hidden-spot test, which is not optional

The code tells you what category of product is approved. It does not promise that a specific bottle will behave on your specific dye, and that gap is where most disappointments live.

Why a correct code can still go wrong

A code approves an agent category based on the fibre, the construction and the finish. It says nothing about how your particular colour will react. A fabric can tolerate water in general and still bleed dye, lose sheen, or come back with a slightly different texture where the cleaner sat.

Deep colours are the usual offenders, especially reds, and anything with a printed rather than woven pattern. WS fabrics deserve extra care despite being the most permissive code, precisely because the flexibility is about the agent rather than the dye.

How to do it in five minutes

  1. Pick somewhere genuinely hidden: the back of a skirt, the underside of a cushion, the fabric behind a leg. Not the back of the sofa if it faces a room.
  2. Apply a small amount of the cleaner exactly as you would use it, no more.
  3. Blot it with a white cloth. Any colour on the cloth means the dye is moving, and you stop there.
  4. Leave it to dry completely, which takes longer than you expect on upholstery. An hour minimum, ideally several.
  5. Look at the dried patch in daylight, from an angle. You are checking for a ring, a change in sheen, a stiffened patch or a shift in colour.

That last step is the one people skip, and it is where the information is. Everything looks fine while wet. Rings and texture changes only appear as the fabric dries, which is exactly why treating a visible stain first and discovering the problem afterwards is such a bad order to do things in.

Numbers worth knowing

Mainstream products carry code warnings on their own labels, which is a useful cross-check and rarely mentioned. One widely sold fabric stain and odour eliminator states plainly that it is not appropriate for velvet, silk or any item carrying a cleanability code of S or X. That is a manufacturer telling you the code system matters more than their product does, and it is worth reading the back of any bottle for the same line.

Use white or cream cloths only, for both testing and blotting. A coloured cloth pressed against damp upholstery can transfer its own dye into the fabric, which converts a stain problem into a colour problem. Kitchen roll works, plain white cotton works better.

And two habits that matter more than any product. Blot rather than rub, because rubbing drives the stain deeper and abrades the surface fibres so the spot looks different in the light even once it is clean. And work from the outside of a mark inward, so it shrinks rather than spreading into a larger, fainter halo.

The links below are affiliate links. As an Amazon Associate I earn from qualifying purchases.

Cross section showing face fabric, backing and padding layers
Cross section showing face fabric, backing and padding layers
Care tag sewn flat into a side seam near an armrest
Care tag sewn flat into a side seam near an armrest

For W and WS fabrics: a cleaner that names the codes

The reason to name this one rather than any water-based upholstery cleaner is a single line on its own label: it states that it is not appropriate for velvet, silk or any item carrying a cleanability code of S or X.

That matters for two reasons. It tells you the maker understands the code system rather than selling a universal solution, which is a reasonable proxy for whether they have tested anything. And it means the product itself confirms the argument of this article: the code decides, not the bottle.

It handles the water-based stain categories, which are food, coffee, red wine, blood and pet messes, and it binds odour as it cleans rather than covering it. Guardsman have been making furniture care products since 1915, which is the kind of longevity that suggests they have had time to learn which fabrics complain.

Worth it or skip: Worth it if your tag says W or WS, which covers most modern sofas. Skip it entirely if your code is S or X, where the manufacturer has already told you not to, and skip it for grease and oil even on a W fabric, since water-based cleaners spread oil rather than lifting it.

Check the Guardsman fabric cleaner on Amazon

Three more, by code and by job

An enzymatic shampoo, for pet smells on W and WS. Odour from a pet accident lives in the padding rather than the face fabric, which is why surface cleaning removes the mark and leaves the smell. This combines a biodegradable degreaser with an enzymatic odour eliminator, so the microbes break down the organic compounds instead of masking them. Water-based, so check your code first. See the enzymatic fabric shampoo →

A foaming cleaner with a brush, for general dullness. Overall grubbiness is accumulated skin oils and dust rather than a stain, and it needs agitation across the whole surface rather than spot work. This pairs a high-foaming cleaner with a drill brush, and foam is the right form for upholstery because it carries cleaning power without carrying volume. Suitable for W and WS only. See the foaming cleaner and brush kit →

A dry cleaning solvent, for code S. If your tag says S, a water-free solvent is the only home option and there is no substitute. This one is made for the job: a dry cleaning fluid formulated for silk, wool, velvet and rayon, which removes oil-based marks without water and evaporates completely rather than leaving the soapy residue or water rings that are the whole reason an S fabric is coded S. The method is on the label and it is the right one: apply it to a clean white cloth and blot, rather than spraying it onto the fabric. Use a small amount, work in a well ventilated room, keep it away from any flame, and avoid anything containing carbon tetrachloride, which is highly toxic and still turns up in old stock. See the dry cleaning solvent →

The same read-the-label-first logic applies to wool underfoot, where the threat is alkalinity rather than water. I go through it in the guide to cleaning a wool rug.

Underside of a sofa frame with a fabric label attached
Underside of a sofa frame with a fabric label attached

Already cleaned it and it went wrong? 2 taps

The quiz above is for before you start. This one is for afterwards, and it will tell you honestly what is recoverable and what is not.

Hand lifting a seat cushion to reveal a care tag on the deck seam
Hand lifting a seat cushion to reveal a care tag on the deck seam

People also ask about upholstery cleaning codes

What does WS mean on furniture?

WS, sometimes written W/S or SW, means the fabric tolerates either a water-based cleaner or a dry cleaning solvent. It is the most flexible of the codes and it is not a free pass. Match the agent to the stain rather than picking one at random: water-based for drinks, food and mud, solvent for grease, oil, ink and makeup. Pre-testing matters more on WS than anywhere else, because the code approves the agent category and says nothing about how your particular dye will behave.

Where is the cleaning code on a sofa?

Four places, in order of likelihood. Sewn into the seam of the deck, which is the flat platform under the seat cushions, so take the cushions right off. On the underside of a cushion itself, often on the zip side. Underneath the frame, which means tipping the sofa forward. Or on the side seam near the armrest, lying flat against the fabric where it is easy to miss. The tag usually carries fibre content and a manufacturer reference alongside the letter.

Can you steam clean a code S couch?

No. Steam is water in another state, so a steam cleaner is a water treatment however dry the machine claims to run. On an S fabric that means rings, browning and potential shrinkage, and the same applies to hot water extraction. The same rule rules out steam on an X-coded fabric, where no liquid of any kind is safe. Only W and WS fabrics can be steamed, and even then over-wetting is the risk, because the padding underneath holds moisture for days.

What if my sofa has no cleaning code?

Treat it as the most cautious code until you have evidence otherwise. The codes come from a voluntary industry standard rather than a regulation, so an unlabelled piece is untested rather than safe, and that is common on vintage furniture, small-maker pieces and imports. Do a hidden-spot test with the gentlest option you are considering, let it dry completely, and inspect it in daylight from an angle for rings, sheen changes or stiffening before going anywhere near a visible area.

Upholstery code FAQ

Does W mean the covers are machine washable?

No, and this is the most expensive misreading of the system. W means a water-based cleaner may be used on the surface in small quantities. Machine washing a W-coded cover can shrink it enough that it will not go back on, and even where the cover survives, the code says nothing about whether the piece was cut to fit a washed cover. If the maker intended the covers to be washed, they will say so separately.

Can I use bleach on a W fabric?

Only if the fabric is specifically stated to be bleach cleanable, which in practice means solution-dyed. W permits water-based cleaning agents and bleach is a different category of chemistry. This catches people out because the reasoning sounds sound: the code says water, bleach is diluted in water, therefore bleach is fine. It is not, and the result is permanent.

Why would a cotton sofa be coded S?

Because the code covers the whole assembly rather than the surface you can see. It is assigned by the mill after testing and reflects the fibre, the construction and any applied finish together, so a fabric that would tolerate water on its own can be coded S because the backing or the finish cannot. This is why recognising the fabric is not a substitute for reading the tag.

Are the codes legally required?

No. They come from the Joint Industry Committee for Upholstery Fabric Standards and are voluntary at the regulatory level, though effectively mandatory for contract bids and major retailers. That is why most mainstream sofas carry one and vintage, small-maker or imported pieces often do not. A missing code means untested rather than unproblematic.

Is it safe to use a carpet cleaning machine on upholstery?

On a W or WS fabric with an upholstery attachment, yes, with care. On S or X, no, because those machines work by injecting water. The bigger risk on any code is volume: upholstery padding holds water for days and a machine puts in far more than a foam cleaner does. If you use one, make several dry passes for every wet one and give the piece a day or two with a fan on it.

When is it worth calling a professional?

For any X or D code, for a whole-piece clean on an S fabric, for dye that has already moved, and for anything valuable where a mistake costs more than the visit. Ask specifically whether they identify the cleaning code before quoting. A firm that does not ask what the tag says is not a firm to let near a sofa.

The upholstery code cheat sheet

Find the tag, in this order

1. Seam of the deck, under the seat cushions. Take them right off.

2. Underside of a cushion, often on the zip side.

3. Underneath the frame. Tip the sofa forward.

4. Side seam near the armrest, lying flat.

The letters

W: water-based cleaners. Not washable, not bleach, not soaking.

S: solvent only. No water, no steam, ever.

WS, W/S, SW: either. Match the agent to the stain.

X, X/S: vacuum and soft brush only. Steam counts as water.

Rarer: D dry clean · F foam only · O cold water only · SC spot clean · E and N leather.

Before any product touches a visible area

Test on a hidden spot with the exact product, at the exact strength.

Blot with a white cloth. Any colour means stop.

Let it dry fully, then look in daylight from an angle for rings, sheen or stiffening.

Habits that matter more than products

Blot, never rub. Rubbing drives the stain in and abrades the surface.

Work outside inward, so the mark shrinks rather than spreading.

White cloths only. Coloured ones transfer dye into damp fabric.

Use less product than feels right, and dry it faster than feels necessary.

Free printable

The Cozy Home Starter Checklist

A sofa is usually the most expensive thing in a living room and the one most likely to be cleaned with whatever is under the sink. This printable walks you through a home room by room, catching the small decisions that keep things looking looked after rather than merely furnished.

Get the free Cozy Home Starter Checklist

Keep reading

The code tells you what you are allowed to use. These cover what to actually do, by material and by problem.

Find the tag before you find a cleaner

One letter under a cushion decides more about your sofa than the fabric name on the receipt does. W means water-based cleaning is permitted. S means solvent only, and water leaves rings, browning and shrinkage. WS gives you both. X means vacuum and gentle brushing and nothing else at all.

Two things about that letter are worth carrying around. It was set by the mill for the whole assembly, not just the face fabric, which is why a cotton weave can carry an S code because of a backing or a finish you will never see. And it is voluntary, agreed through an industry committee rather than required by law, so a piece with no tag has not been tested rather than being safe by default. Treat a missing code as X until a hidden spot test says otherwise.

The consequence people miss most often is steam. A steam cleaner feels dry and is not: steam is water in another state, so it is ruled out on S and X coded fabric however gentle the machine looks. And W does not mean washable. It means a small amount of water-based product applied carefully, not a cushion cover in a machine and not a hose.

Spend two minutes under the cushions before you spend an afternoon on a stain. The tag is usually there, and when it is not, that is information too.

Leave a Reply

Discover more from Cozy Home Vibes

Subscribe now to keep reading and get access to the full archive.

Continue reading