← Blog • March 20, 2026

How to Tell If Food Has Gone Bad: Signs for Every Food

The smell test doesn't always work. Some of the most dangerous food bacteria — Salmonella, E. coli, Listeria — produce no odor at all. Here's a complete guide to the real signs.

⚠️ Critical: When in doubt, throw it out. The cost of a doctor visit — or worse — is vastly higher than the cost of the food. Signs of spoilage are a signal to discard, not a challenge to negotiate with.


🍗 Chicken (raw and cooked)

  • Smell: Fresh chicken has almost no smell. Any sour, ammonia-like, or "off" odor means discard.
  • Texture: Raw chicken should feel moist but not slimy or tacky. If it feels sticky after rinsing — discard. Slimy cooked chicken: discard.
  • Color: Raw chicken ranges from white to pink to yellow-tinged. A gray or greenish color means it's bad.
  • Date check: Even if it looks and smells fine, raw chicken more than 2 days old should be cooked or frozen. Cooked chicken over 4 days: discard.

🥛 Milk

  • Smell: The clearest indicator. Sour milk has an unmistakable smell — sharp and acidic. A small sniff test is reliable here.
  • Texture: Good milk is uniform liquid. Lumps or curdling means it's spoiled. (Don't confuse this with cream naturally separating in non-homogenized milk.)
  • Color: Fresh milk is white or slightly off-white. Yellowing indicates spoilage.

🧀 Cheese

  • Hard cheese (cheddar, parmesan): Surface mold is not a death sentence. Cut at least 1 inch around and below the mold — the rest is fine. This only works for firm, low-moisture cheeses.
  • Soft cheese (brie, ricotta, cottage cheese): Any mold = discard the whole thing. Mold spreads invisibly through soft, high-moisture products.
  • Smell: Cheese should smell like cheese, not like ammonia or nail polish remover.

🥚 Eggs

  • The float test: Fill a bowl with cold water and submerge the egg. Sinks flat = fresh. Stands upright = use it soon. Floats = discard. This works because eggs develop an air pocket as they age.
  • After cracking: A fresh yolk is firm and rounded. A flat, spreading yolk means the egg is old. A pink, iridescent, or greenish egg white means it's contaminated — discard immediately.
  • Smell: A sulfur smell (like rotten eggs) from a raw egg means it's gone bad — obvious but worth stating.

🍞 Bread

  • Mold: Any visible mold means discard the entire loaf — not just the slice. Bread mold (usually green or blue-gray) spreads through the loaf via spores long before you can see it.
  • Stale ≠ bad: Hard, dry bread is stale, not spoiled. Toast it. Make breadcrumbs. It's perfectly safe to eat.

🍎 Fruits and Vegetables

  • Small bruises or soft spots: Usually fine to cut around and eat. The bruised part is oxidized but not dangerous.
  • Visible mold on strawberries, grapes, or berries: The entire container is compromised. Mold spores spread through the container before you can see them.
  • Slimy salad greens: These are colonized by bacteria. Discard. Even one slimy leaf contaminates the rest.
  • Unusual smell: Fresh produce should smell neutral or pleasant. Fermented, sour, or rotten odors mean discard.

The Hardest Truth: You Can't Always Tell

Salmonella, Campylobacter, E. coli O157:H7, and Listeria all grow on food without producing any detectable smell, color change, or textural difference. This is why food storage time limits exist — they're not about what you can see, they're about microbial load.

The sensory check (smell, look, texture) is useful for detecting obvious spoilage. But it's not a substitute for knowing when food was stored. A chicken breast that smells fine on Day 5 is still past the safe limit.

Not sure how long something should last? Look it up: Search DoesItLast.com for exact FDA/USDA storage times.

💡 Prevention over detection: The best sign a food is safe is knowing exactly when you stored it. Use My Kitchen to log your food — then the app tells you when it's getting close to its limit, before you even have to guess. Open My Kitchen →

Know before you guess — look up any food

Search DoesItLast →