How to Remove Stains from Granite (and Keep Them Gone)

How we work

Part of Stone & Countertops · article 12 of 13

On this page
Gloved hand applying cream-colored cleaning paste to dark granite countertop with cleaning supplies blurred in

Most granite stains respond to one of two poultice methods. For oil-based stains (cooking grease, milk, butter), mix baking soda and water into a thick paste, spread it over the stain, cover with plastic wrap taped at the edges, and leave it for 24 hours. For organic stains such as coffee, juice, or wine, substitute hydrogen peroxide for the water in that same paste. Both methods work by drawing the absorbed substance back out of the stone's pores as the paste dries. Blot the residue, rinse with warm water, and dry the surface completely.

A few firm rules apply regardless of which method you use. Never reach for vinegar, lemon juice, or bleach; vinegar and similar acids don't stain granite, but they etch the surface, dulling the finish and leaving the stone more vulnerable going forward. Cornstarch is also off the list because it can scratch the surface. For ink or permanent marker, a dampened eraser worked in a circular motion is often enough. For wax, press a towel over the spot and apply gentle downward pressure to lift the wax into the cloth fibers without scraping.

If a stain doesn't respond after one or two attempts, particularly rust or deep-set oil stains, professional treatment is the realistic next step. Some stains can only be lightened, not fully removed.

What is the difference between a granite stain and an etch?

A stain and an etch are two completely different problems, and treating one as the other will either waste your time or make things worse.

A stain happens when a substance, typically an oil, a dye, or an organic liquid like coffee or wine, is absorbed into the pores of the stone and leaves pigment behind. The affected area looks darker than the surrounding surface. This is a subsurface issue: the material has physically entered the stone.

An etch is a surface-level chemical reaction. Acids, lemon juice, vinegar, certain cleaners, strip away the polished finish of the stone without changing its color. The result is a dull, lighter-looking patch that can look washed out or chalky. Granite is more resistant to etching than marble, but repeated acid exposure can still dull the surface and, over time, compromise the seal and make the stone more vulnerable to actual staining. If you want to understand exactly why acids cause this kind of damage, vinegar and other acids permanently damage natural stone in ways that are worth knowing before you reach for a household spray.

The distinction matters because the fixes are completely different. Stains are drawn out using a poultice that pulls the absorbed material back up through the pores. Etches cannot be poulticed out because there is nothing to draw out. A mild etch on polished granite may respond to a granite polishing powder, but deeper etching usually requires professional re-polishing.

Before treating anything, look closely at the affected spot. If it is darker than the stone around it, you are dealing with a stain. If it is lighter or dull, that is an etch, and poulticing it will accomplish nothing.

granite countertop with a spoon holding reddish-brown powder over a stain, showing cleaning technique on dark speckled

Does granite type affect how easily it stains?

  1. Identify whether you have a stain or an etch

    Stains are darker than the surrounding stone because a substance has been absorbed into the pores. Etches look lighter or dull and are caused by acid reacting with the surface finish. The distinction matters because each problem requires a different fix.

  2. Choose your removal method based on stain type

    For oil-based stains such as grease or milk, mix baking soda and water into a thick paste. For organic stains such as coffee, juice, or wine, mix hydrogen peroxide with baking soda into a thick paste. For ink or permanent marker, wet an eraser and rub it in a circular motion over the mark. For leftover wax, press a towel gently over the residue to melt and lift it.

  3. Apply a poultice and cover it

    Spread your baking soda paste or hydrogen peroxide paste over the stain in a thick, even layer. Cover the area with plastic wrap and tape down all four edges to slow evaporation and keep the poultice in contact with the stone.

  4. Allow the poultice to dwell for 12 to 24 hours

    Leave oil-based and organic stain poultices in place for at least 12 hours, and up to 24 hours for stubborn stains. Remove the plastic wrap, let the paste dry fully, then wipe it away with a soft, damp cloth.

  5. Avoid cleaners that can damage the stone

    Do not use vinegar, lemon juice, bleach, or other acidic or harsh cleaners at any stage. These will not remove stains and can etch or weaken the surface, making the granite more vulnerable to future staining. Cornstarch should also be avoided, as it can scratch the surface.

  6. Seal the granite to prevent future stains

    Once the surface is clean, apply a penetrating impregnating sealer, one labeled fluoropolymer or silicone-based, not a topical sealer, which wears off within weeks. Most granite needs resealing once a year, though light-colored, porous varieties such as Kashmir White may need it every 6 to 12 months. Use the water-drop test: if a bead of water darkens the surface in under five minutes, it is time to reseal.

What removes oil, water, ink, and wax stains from granite?

The right removal method depends entirely on what caused the stain. Using the wrong approach, say, hydrogen peroxide on an oil stain, wastes time and may not touch the problem at all.

Oil and grease stains respond best to a baking soda poultice. Mix baking soda and water into a thick paste, roughly the consistency of peanut butter, and spread it generously over the stained area. Cover it with plastic wrap and tape down all four edges to slow the drying. Leave it for 24 hours. As the paste dries, it draws the oil up out of the pores and into itself. Scrape it away gently with a plastic scraper, then wipe the surface clean with a damp cloth. For lighter oil stains, a few drops of gentle liquid dish soap on a soft cloth may be enough.

Water-based stains from coffee, juice, or wine call for a different poultice. Mix 12% hydrogen peroxide with baking soda to form a thick paste, apply it over the stain, cover with plastic wrap, and let it sit for 12 to 24 hours. Hydrogen peroxide lifts organic pigment without etching the stone. One firm caution: skip this method on dark granite, such as Absolute Black or Black Galaxy, as the peroxide can lighten the surface around the stain.

Ink and permanent marker respond surprisingly well to a simple eraser. Dampen the eraser slightly and rub it in a circular motion directly over the mark. Work gently rather than scrubbing hard, and the ink typically lifts without any chemical treatment.

Wax requires heat rather than a chemical. Lay a clean towel flat over the hardened wax and press down firmly with a warm iron or your hand. The gentle heat softens the wax and pulls it up into the towel fibers. Lift the towel rather than dragging it, to avoid spreading residue.

White spiral dough or pastry coil resting on a speckled gray granite countertop surface

What should you never use to clean granite countertops?

Several common household cleaners seem like obvious choices for a tough countertop surface, but on granite they cause real damage, sometimes irreversible.

Acidic cleaners top the list of what to avoid. Vinegar, lemon juice, and citrus-based sprays are particularly destructive. They don't stain the stone, but they etch it, eating into the surface finish and leaving dull, cloudy patches that are easily mistaken for stains. If you'd like to understand exactly why this chemical reaction is so damaging and why it's not reversible with cleaning, why vinegar permanently damages natural stone covers the mechanism in full detail. The key point: even a splash of lemon juice left on the surface for a few minutes is enough to alter the finish.

Bleach is another product that should never touch granite. It can damage the sealer and work into the stone's surface over time, breaking down its resistance to future staining rather than solving the problem at hand.

Abrasive powders and scrubbing pads create microscopic scratches that compromise the sealed surface. This includes cornstarch, which some homeowners try as a grease absorber. Despite being a powder, it's abrasive enough to scratch granite and isn't worth the risk.

Ammonia-based cleaners, including many glass and multi-surface sprays, degrade the sealant that keeps granite protected. The same applies to harsh multi-purpose cleaners marketed for "tough messes." Most of them were formulated for tile, laminate, or coated surfaces, not porous stone.

The practical rule: if a cleaner is acidic, abrasive, or chemically aggressive, skip it entirely. Warm water and a small amount of mild dish soap handle everyday cleaning without touching the sealer.

Harmful cleaners vs. damage type on granite
SubstanceDamage CausedAffects Seal or Stone?
Vinegar / lemon juiceEtching, dull spotsBoth
BleachSurface degradationBoth
Acidic cleanersEats into stone surfaceBoth
CornstarchScratches surfaceStone only
Topical (cheap) sealersWears off in weeks, leaves surface unprotectedSeal only

What's the best way to seal granite and prevent stains?

Sealing is what keeps granite resistant to stains rather than merely stain-resistant by nature. The stone's pores are microscopic but real, and without a sealer filling them, liquids, especially oils and acidic juices, can work their way in before you have a chance to wipe them up.

The sealer you choose matters more than most people realize. Topical sealers are cheap for a reason: they sit on the surface and wear off within weeks, leaving the stone unprotected. What you want is a penetrating impregnating sealer, labeled either "fluoropolymer" or "silicone-based impregnating sealer." These bond inside the pores rather than coating the surface, and a quality application lasts one to five years depending on how heavily the counter is used.

Not every granite needs sealing on the same schedule. Dense, dark granites, Absolute Black and Black Galaxy are two common examples, may never need it at all. Light, porous granites like Bianco Romano or Colonial Cream need resealing every six to twelve months. If you are unsure how your stone is performing, run a water-drop test: pour a small amount of water on the surface and wait. If the stone darkens within five minutes, it needs sealing now. If thirty minutes pass with no darkening, you have time.

One mistake that causes real, irreversible damage: using vinegar or lemon juice to test absorbency. Acids etch the surface finish permanently and weaken the stone's resistance to future staining. Use only water for the test. If staining has already occurred on a sealed surface, or if the stain source is unknown and has sat for more than a day or two, stop the DIY attempts and call a professional. At that point, household poultices are unlikely to achieve full removal, and aggressive scrubbing will only damage the seal further.

Frequently asked questions

What is the difference between a stain and an etch on granite?
A stain is darker than the surrounding stone and occurs when a substance absorbs into the pores of the granite. An etch is a lighter dull spot caused by a surface-level chemical reaction, usually from acids like vinegar or lemon juice. They look different and require different fixes, so identifying which one you have matters before you start cleaning.
Can I use vinegar or bleach to clean a granite stain?
No. Vinegar, lemon juice, and bleach can all damage granite: acids cause etching and bleach can harm the sealant and the stone surface itself. Stick to mild, pH-neutral cleaners or the poultice methods recommended for your specific stain type.
How do I remove an oil or grease stain from a granite countertop?
Mix baking soda and water into a thick paste, apply it over the stain, cover it with plastic wrap, and tape down the edges. Leave the poultice in place for 24 hours before removing it. A gentle liquid household cleaner with a soft cloth can also work on lighter oil-based stains.
How often does granite actually need to be resealed?
Most granite countertops need resealing once every one to five years, depending on usage and the type of granite. Light-colored, more porous granites like Kashmir White may need sealing every six to twelve months, while very dense dark granites like Absolute Black may never need sealing at all.

When should you call a professional for granite stain removal?

Most granite stains respond to a poultice and patience. Some do not. Oil stains that have had weeks or months to penetrate, rust stains from metal canisters left on unsealed stone, and dye stains from colored liquids absorbed deeply into porous light granites like Kashmir White or Colonial Cream can all resist even repeated home treatments. At that point, full removal is not always possible, and partial lightening is the realistic ceiling for DIY effort.

Professional stone restorers carry heavy-duty poultice compounds, wet grinding equipment, and honing tools that simply are not available at a hardware store. For deep oil or rust staining, they can apply industrial-strength poultices that draw out pigment over several days under controlled conditions. For surface damage that has been mistaken for a stain, such as repeated acid etching that has roughened the finish, they can re-hone and re-polish the surface to restore its original sheen. That work goes beyond cleaning and into restoration.

Call a professional when a stain has not responded to two full poultice cycles, when the source of the discoloration is unknown, or when the affected area covers a large section of the counter. After treatment, a professional can also assess whether the stone needs resealing to prevent recurrence. The cost of one restoration visit is almost always less than replacing a slab.

How this article was made

Researched with AI assistance and reviewed under our editorial standards. Grounded in 8 cited sources.

Sources (8)