
TL;DR
- Most granite stains lift with a poultice: baking soda and water for oil, hydrogen peroxide and flour for wine, coffee, and other organic marks.
- Spread it thick, cover with plastic wrap, and wait 24 to 48 hours.
- Skip acids and bleach.
- They etch the polish and strip sealer.
- Re-seal after any deep cleaning.
- Sealed granite shrugs off most spills.
- Unsealed stone gives you seconds, not hours.
Why does granite stain in the first place?
Granite is a natural stone built from crystals of quartz, feldspar, and mica locked tightly together. Tight, but not sealed shut. The stone still has microscopic pores, and liquid under pressure or given time will creep into them. Oil, wine, coffee, and rust each behave differently once they get inside, which is why no single product cleans everything.
The Natural Stone Institute puts granite's water absorption at well under 0.4 percent by weight for most commercial slabs, tested by the ASTM C97 method [1][5]. That is low. It still leaves room for a stain if a spill sits long enough. Dark granites hide stains better than light ones, but they soak up liquid just the same.
Sealer is your main defense. A good impregnating sealer fills the pores with a siloxane or fluorocarbon resin that repels water and oil at the molecular level [10]. It does not make granite stain-proof. It buys time to wipe a spill before it sinks in. Most residential granite wants re-sealing every one to three years depending on use and how porous the slab started out [1].
Figure out the stain type before you touch it. The chemistry of removal changes with every kind, and the wrong method can lock a stain in for good or dull the polished surface.
How do you identify what type of stain you have?
Before you mix anything, name the stain. The Natural Stone Institute sorts granite stains into five categories, and each one wants a different treatment [1]. Get the category right and the fix is easy. Get it wrong and you can set the mark permanently.
| Stain type | Common sources | Color clue | Treatment agent |
|---|---|---|---|
| Oil-based | Cooking oil, grease, cosmetics, lotion | Dark, spreading blotch | Baking soda + water or acetone |
| Organic | Coffee, tea, wine, fruit, leaves | Pinkish-brown or tan | Hydrogen peroxide (12%) + flour |
| Rust | Metal cans, water with iron content | Orange or reddish-brown | Commercial rust remover for stone |
| Hard water / mineral | Tap water, calcium deposits | White hazy film | Superfine steel wool (0000 grade) or stone-safe descaler |
| Biological | Mold, mildew, algae | Black or green spots | Bleach solution (diluted) only on polished granite, rinse fast |
Oil stains darken the stone and feel slightly greasy. Organic stains leave a pinkish or tan shadow. Rust is always orange-red and is the hardest of the group because iron oxide bonds with the stone's minerals. Hard-water deposits look like a foggy ring and sit on top, not inside. Biological growth turns up near sinks and on outdoor granite.
Not sure? Put a drop of water on the mark. If it beads, the sealer is intact and the stain is probably shallow. If it soaks in fast, the sealer is gone and you may be dealing with something that has penetrated the stone.
What supplies do you need before you start?
Keep the list short. Most stains do not need a cabinet full of specialty products.
For oil stains: baking soda and water, or acetone (plain nail polish remover with no added oils or dyes works). For organic stains: 12 percent hydrogen peroxide and unbleached flour. For rust: a commercial rust remover rated safe for natural stone, meaning oxalic acid or sodium hydrosulfite formulas, never hydrochloric acid. For hard water: 0000-grade steel wool or a pH-neutral stone descaler. For daily cleaning: a few drops of pH-neutral dish soap (plain Dawn or a stone-specific cleaner) and warm water.
Avoid these entirely: white vinegar, lemon juice, anything with citric acid, bleach on unsealed or etched stone, abrasive scrubbing pads, and generic bathroom cleaners that tend to be strongly alkaline or acidic. The University of Florida IFAS Extension warns that acidic cleaners with a pH below 7 can etch calcium-bearing minerals in granite and permanently dull the polish [2].
You also want plastic wrap to tent the poultice, painter's tape to hold the edges, and a wooden or plastic scraper to lift the dried paste. Keep a stone-safe sealer on hand for when you finish. You will need it.
How do you remove oil stains from granite countertops?
Oil stains are the most common complaint and the most forgiving if you catch them within a day or two. A fresh oil mark usually clears in one poultice. Wait a week and you may run three or four cycles.
Step 1: Wipe up any standing oil with a clean cloth. Do not spread it.
Step 2: Mix baking soda with just enough water to make a thick paste, about the consistency of peanut butter. Some fabricators reach for acetone on deep oil stains because it is a stronger solvent. If you use acetone, work in a ventilated space and keep it away from any flame. The Consumer Product Safety Commission flags acetone as highly flammable and calls for good ventilation during use [8].
Step 3: Spread the paste over the stain at least a quarter inch thick. The poultice pulls oil out of the pores as it dries, so you need enough material to create that drawing action.
Step 4: Cover the poultice with plastic wrap and tape down the edges. This slows the drying so the paste draws the stain up instead of crusting over the top.
Step 5: Leave it 24 hours minimum. Older or deeper stains want 48 hours or a second round.
Step 6: Peel the wrap, let the poultice dry all the way, then scrape it off gently with a plastic scraper. Wipe with a damp cloth and dry.
Step 7: Check your work. Lighter but still visible? Repeat. Most fresh oil stains clear in one or two applications.
When the stain is gone, seal that spot. Cleaning reopens the pores, and open pores stain fast.
How do you remove organic stains (coffee, wine, tea, food) from granite?
Organic stains come out with oxidation. Hydrogen peroxide breaks down the organic molecules that carry the color, and it works reliably on coffee, tea, wine, and fruit if you treat them within a day or two.
Step 1: Blot the spill immediately. Do not rub. Rubbing drives it deeper.
Step 2: For a surface mark, wipe with a cloth dampened in 12 percent hydrogen peroxide. Drugstore peroxide is usually 3 percent; beauty supply stores carry 12 percent, which works faster. Test a hidden spot first on dark granite because peroxide can lighten some stones.
Step 3: If the stain has soaked in, mix flour with enough 12 percent hydrogen peroxide to make a thick paste. Apply, cover with plastic wrap, tape it down, wait 24 to 48 hours.
Step 4: Remove and check. Organic stains often fade a lot on the first try. Repeat if you need to.
Red wine is the one homeowners panic about. It carries both pigments and tannins, so it looks scary, but it is still organic and lifts with the peroxide method if you treat it within a day or two. Leave it a week or more and the pigments bond harder with the stone minerals. At that point you may only reduce the stain rather than erase it.
How do you remove rust stains from granite?
Rust is the hardest stain to pull out of granite. Iron oxide bonds chemically with the silicate minerals in the stone, so plain solvents do nothing. You need a chelating agent to break that bond. The American Chemical Society describes oxalic acid as a chelating agent that binds iron and lifts it out of a surface, which is exactly what a stone-safe rust remover does [9].
Do not grab a generic rust remover. Products with hydrochloric acid etch granite and cause permanent damage. Use a remover labeled safe for natural stone, built on oxalic acid or sodium hydrosulfite at low concentration. For heavy rust, the Natural Stone Institute recommends having a professional evaluate the damage before any DIY attempt [1].
For light rust, mix a poultice from a stone-safe rust remover and a neutral powder (flour, talc, or diatomite). Spread it thick, cover, wait 24 hours. Rinse hard, because leftover rust remover keeps reacting with the stone.
Severe rust usually takes several rounds and may never fully clear. If rust keeps coming back from iron-rich well water, the countertop is not the problem. The water is. A water softener or iron filter fixes the source.
Rust under caulk or around fasteners usually comes from the metal itself. Pull and replace the hardware first, then treat the stone. Do it in that order or the stain returns.
How do you remove hard-water stains and mineral deposits from granite?
Hard-water stains are not real stains. The calcium and magnesium deposits sit on the surface instead of soaking into the stone, showing up as a hazy white ring around a sink or faucet. That changes the fix.
The obvious move is vinegar or a citrus spray, since both dissolve calcium fast. Do not do it. Vinegar runs a pH around 2.4 to 3.4, acidic enough to etch the polished finish on granite [2]. One use probably will not wreck the counter. Repeated use will, and the dullness it leaves cannot be cleaned off. It has to be re-polished by a stone pro.
Instead, use 0000-grade (four-aught) steel wool with a little water. Rub in a gentle circular motion. That grade is fine enough to lift mineral deposits without scratching a polished granite surface. Test a hidden spot first.
For thicker buildup, apply a pH-neutral stone-specific descaler made to dissolve calcium without attacking the finish. Follow the label dwell time, usually five to ten minutes, and rinse well.
The real fix is a habit. Dry the sink area after use. A small squeegee by the sink beats any product on the shelf.
How do you remove mold or mildew from granite?
Mold and mildew show up near the sink, behind the faucet, or on outdoor kitchen surfaces. The growth colonizes the pores of unsealed or degraded stone, which is why sealing matters as much as scrubbing.
For surface mold, mix 1 part bleach to 4 parts water, apply with a soft cloth, work fast, and rinse hard. The EPA's mold guidance notes that diluted bleach kills surface mold on hard surfaces [4]. The Natural Stone Institute warns against leaving bleach on granite for long stretches, because it degrades sealer and, at high concentration, can discolor some mineral veins [1].
For mold that has gone into the stone, the poultice method with diluted bleach and a neutral powder works the same as it does for other stains. Cover 24 hours, rinse well.
After treating, check the grout and caulk around the sink. Mold there is a separate problem from mold in the stone, and it needs new caulk. Leave the moldy caulk and the mold comes right back no matter how clean the granite gets.
Seal the area when you finish. Open pores are an invitation to the next colony.
What should you never put on granite countertops?
A few products cause damage no amount of cleaning fixes. Learn these and you avoid most permanent mistakes.
Vinegar, lemon juice, and any cleaner below about pH 6 will etch the calcium-bearing feldspars in most granites and dull the polish. The damage is physical, not chemical, and it takes professional re-polishing to correct. The University of Florida IFAS Extension names acidic cleaners as a source of irreversible granite damage [2].
Abrasive scrubbing pads leave fine scratches that pile up and haze the surface. Use soft cloths or non-scratch sponges only.
Multi-surface sprays like Windex (alkaline, plus surfactants that strip sealer) and ammonia products wear out impregnating sealer faster than normal use. Not an instant disaster, but regular spraying cuts your re-sealing interval roughly in half.
Concentrated bleach left to sit strips sealer and can bleach dark mineral inclusions. Dilute it and rinse quick.
Oil-based soaps, overused, leave residue in the pores that attracts more oil staining. A few drops of pH-neutral dish soap in a bucket of water is fine. Soaking the counter with an oil soap is not.
Not sure a product is safe? The Marble and Granite Association and the Natural Stone Institute both keep guidance on safe cleaning agents [6][1].
How do you seal granite after cleaning to prevent future stains?
Sealing after a deep clean is the step most homeowners skip. It is also the one that saves the stone. Cleaning strips oil and residue out of the pores, which leaves that patch cleaner and more open than the surrounding stone, and open pores stain faster than anything.
Apply a penetrating impregnating sealer made for granite within a day of finishing the stain removal.
The process is simple. Pour a small amount of sealer on the stone, spread it with a clean cloth, let it sit the label dwell time (usually 5 to 15 minutes), then buff off the excess before it hazes. Most residential granite drinks the sealer well, and a standard kitchen counter takes about 20 minutes. Skip the second coat unless the stone soaks up the first one instantly and still fails the water test.
Test it. Pour a tablespoon of water on the surface and watch. Beads for 10 minutes or more, the sealer is working. Absorbs within a couple minutes, the stone needs sealing [1]. North Carolina State University Extension gives the same water-drop test as the standard check for whether stone countertops need resealing [7].
How often you re-seal depends on porosity and traffic. Light granites and many Brazilian stones run more porous and may need it yearly. Dense, dark granites from South Africa or India can go three to five years. The water test tells you more than any calendar.
For the full picture on granite care and long-term durability, the granite countertops guide covers material choice and maintenance together. Comparing stone types for a future project? The how to clean quartzite countertops and how to clean soapstone countertops guides walk the same methods for those surfaces.
When should you call a professional stone restorer instead of doing it yourself?
DIY handles most stains. A few situations genuinely need a pro, and knowing which is which saves you money and saves the stone.
Stain older than a month, multiple poultices failed, and it covers a large area? A stone restorer has chemistry and tools you cannot buy at retail. They apply stronger poultices under controlled conditions and use diamond polishing pads to bring the surface back afterward.
Dull over a large area, actually etched or scratched rather than stained? Cleaning does nothing for that. A pro can wet-grind and re-polish the stone to factory condition. Figure roughly $8 to $15 per square foot depending on location and the extent of damage, based on general pricing reported by stone restoration companies. Regional variation is large, so treat that as a starting range, not a quote.
Cracking or spalling around a stain? Stop cleaning. That can mean a cleaning agent already reacted with the stone, or a hidden crack is wicking liquid deeper into the slab. Have a professional assess the structure before you make it worse.
Buying new countertops or budgeting a kitchen project? SlabWise has an instant quote tool that gives a real price range by material and edge profile before you ever call a fabricator, which helps you plan around any restoration cost.
How do you maintain granite countertops to avoid stains in the first place?
Maintenance is mostly habit, barely any product. Get the habits right and you rarely reach for a poultice at all.
Wipe spills as they happen. Oil and wine need minutes, not hours, to stain unsealed granite. A red wine spill left overnight on stone with worn sealer almost guarantees a mark that takes several treatments to clear.
Use trivets under cooking oil bottles and acidic condiment jars. Vinegar-based dressings and citrus juice are the two most common causes of etching that homeowners then mistake for staining.
Dry the area around the sink and faucet at the end of each day. Hard-water staining is almost entirely preventable with a 30-second wipe.
Clean daily with warm water and a few drops of pH-neutral dish soap. Rinse so no soap sits in the pores. Dry with a clean cloth so you leave no standing water.
Re-seal on the water-bead test, not an arbitrary annual calendar. Dense granites hold sealer for years. High-traffic zones near the stove may want it yearly.
Looking at other natural surfaces with different demands? How to clean stone countertops is a broader reference covering marble, travertine, and slate alongside granite. For surfaces where stain behavior runs almost the opposite of stone, laminate countertops and Corian countertops are worth a look.
Frequently asked questions
How do you clean stains from granite countertops without damaging the surface?
Use a poultice matched to the stain type: baking soda paste for oil, hydrogen peroxide mixed with flour for organic stains like coffee or wine. Apply thick, cover with plastic wrap, leave 24 to 48 hours, then scrape off and rinse. Avoid vinegar, lemon juice, or any acidic cleaner, which etch the polished surface permanently. Always reseal the treated area after cleaning.
Can you use vinegar to clean granite countertops?
No. Vinegar has a pH around 2.4 to 3.4, acidic enough to etch the feldspars in granite and permanently dull the polished finish. The damage looks like a hazy spot that does not wipe off. Removing it requires professional re-polishing. Use pH-neutral soap and water for daily cleaning, and stone-specific products for anything tougher.
What removes oil stains from granite countertops?
A poultice of baking soda and water at a thick paste consistency pulls oil out of granite pores as it dries. Apply at least a quarter inch thick, cover with plastic wrap for 24 to 48 hours, then scrape off. Acetone works for stubborn old oil stains but needs ventilation and no open flame. Repeat two or three times if the stain is deep or old.
How do you get wine or coffee stains off granite?
Mix 12 percent hydrogen peroxide with unbleached flour into a thick paste and apply it as a poultice. Cover with plastic wrap for 24 to 48 hours. Hydrogen peroxide oxidizes the organic pigments in wine, coffee, and tea. Three percent peroxide (drugstore grade) works but more slowly. Test on a hidden spot first with dark granite because peroxide can slightly lighten some stones.
How do you remove rust stains from granite?
Use a poultice made with a natural-stone-safe rust remover (look for oxalic acid or sodium hydrosulfite formulas, never hydrochloric acid). Apply thick, cover for 24 hours, rinse thoroughly. Heavy rust may take several applications and may not fully disappear. If rust returns, the likely source is iron-rich water or corroding metal hardware near the stain.
How do you remove hard-water stains from granite without using vinegar?
Rub the deposit gently with 0000-grade (four-aught) steel wool and a little water. That grade is fine enough to remove mineral buildup without scratching a polished granite surface. For thicker deposits, use a pH-neutral stone-specific descaler and follow the product's dwell time. Dry the sink area daily to keep deposits from forming in the first place.
Does hydrogen peroxide damage granite countertops?
At 12 percent concentration, hydrogen peroxide is generally safe for most granite and is widely recommended by stone industry groups for organic stain removal. At very high concentrations it can bleach certain colored mineral inclusions. Test on a hidden area first, especially with dark or multi-colored granite. Rinse completely after use and reseal the stone.
How do you know if your granite needs to be resealed?
Pour a tablespoon of water on the surface and watch for ten minutes. If the water beads and stays on top, the sealer is working. If it absorbs and darkens the stone within two to three minutes, the sealer is depleted and the stone needs resealing. Do this test quarterly in high-use areas and annually everywhere else.
Can you use baking soda on granite countertops?
Yes, as a poultice paste mixed with water for oil stains. Baking soda is mildly alkaline (pH around 8.3), which is safe for granite. Avoid using dry baking soda as an abrasive scrub because the grit can leave micro-scratches on the polished surface over time. Mixed with water to a smooth paste and applied gently, it is one of the safest stain-drawing agents available.
How do you remove a stain that has been on granite for a long time?
Old stains need more time and more cycles. Apply the correct poultice for the stain type, leave it 48 hours rather than 24, and repeat three or four times before deciding it will not lift. Some stains in place for months only reduce rather than clear. If repeated poulticing fails, a stone restorer with stronger chemistry and polishing equipment is the next step.
Is sealed granite truly stain-proof?
No. Impregnating sealers fill the pores with a water- and oil-repellent resin that buys time, not immunity. A sealed surface gives you minutes to hours to wipe up a spill before it penetrates. Unsealed or degraded sealer gives you seconds. No sealer on the market makes granite completely impervious, and acidic liquids can still etch the surface finish even through a good sealer.
What is the best everyday cleaner for granite countertops?
Warm water with two to three drops of pH-neutral dish soap, applied with a soft cloth, is the best daily cleaner for granite. Rinse well and dry the surface. Avoid multi-surface sprays, ammonia-based glass cleaners, and harsh antibacterial products; they strip sealer over time. Stone-specific spray cleaners are a fine option if you want something more convenient than soap and water.
How much does professional granite stain removal cost?
Professional stone restoration for staining or surface damage typically runs $8 to $15 per square foot for polishing and stain treatment, based on general pricing reported by stone restoration companies. Regional labor costs and the extent of damage shift that range considerably. A single deep-stain treatment without polishing may cost less. Get at least two quotes from stone-specific restoration companies rather than general cleaning services.
Can mold grow on granite countertops, and how do you get rid of it?
Yes, mold can colonize the pores of unsealed or degraded granite, most often near sinks and faucets. A solution of one part bleach to four parts water, applied briefly with a soft cloth and rinsed thoroughly, kills surface mold. For deeper penetration, make a poultice with diluted bleach and a neutral powder. Always inspect and replace moldy caulk around the sink, then reseal the granite after treatment.
Sources
- Natural Stone Institute, Care and Cleaning for Natural Stone Surfaces: Granite porosity, sealer frequency recommendations, stain type classification, and guidance on rust stain professional evaluation
- University of Florida IFAS Extension, Selecting and Caring for Natural Stone Countertops: Acidic cleaners with pH below 7 can etch calcium-bearing minerals in granite and permanently dull the polish
- U.S. Geological Survey, Granite: A Natural Building Stone: Granite mineral composition including quartz, feldspar, and mica and its crystalline structure
- EPA, A Brief Guide to Mold, Moisture and Your Home: Diluted bleach solution effectiveness for killing surface mold on non-porous and porous materials
- ASTM International, ASTM C97 Standard Test Methods for Absorption and Bulk Specific Gravity of Dimension Stone: Standard method for measuring water absorption rate of dimension stone including granite
- Marble and Granite Association of America: Guidance on safe cleaning agents and products for natural stone surfaces
- North Carolina State University Extension, Kitchen Countertop Selection: Maintenance and sealing recommendations for natural stone countertops in residential kitchens
- U.S. Consumer Product Safety Commission, Chemical Safety Guidance: Ventilation and safety handling requirements for acetone-based household products
- American Chemical Society, Oxalic Acid as a Chelating Agent for Iron Removal: Oxalic acid and related compounds function as chelating agents that break iron oxide bonds in stain removal applications
- Building Stone Magazine, Natural Stone Institute, Sealer Performance Standards: Impregnating sealers use siloxane or fluorocarbon resin to repel water and oil in stone pores
Last updated 2026-07-09