How to Tell If Your Fish Is Sick

You walk past the tank and stop. Something's off. Maybe a fish isn't moving right, or there's something on its fins you can't quite identify, or it's behaving oddly in a way that doesn't fit any category you know.

Every aquarist has been here. That gap between noticing the first signs your fish is sick and knowing what to do about it.

The good news: most of the time, the answer becomes clear once you know what to look for. Below, I walk through visible signs, behavioral changes, and systemic indicators — then the troubleshooting logic that moves you from noticing a fish looks off to figuring out what to actually do about it.

Visible Signs of Fish Illness

Visible signs are often the first thing you notice, but they're not always the most important. A spot or a torn fin might be the end of a story that started days ago with water quality. That said, what you see matters. Here's what different patterns actually mean.

White spots, speckling, and metallic dusting

White spots that look like grains of salt scattered across the body and fins, uniform, raised, about 1 mm across — that's ich. The spots are countable. Before the spots appear, you'll usually see increased mucus, lethargy, and the fish stops eating.

Ich spreads fast once you see it, and it kills if untreated. Here's the thing though: ich almost always follows a stress event. A temperature swing, transport, a new aggressive fish — something compromised the immune system first.

Velvet looks different. It's a fine dusting, often gold or rust-colored, visible under angled light. Not distinct spots. It attaches to gills early, so rapid breathing often appears before you see obvious skin signs. Velvet kills faster than ich — fish can deteriorate in 24 to 48 hours if it's the marine variety.

If you see metallic dusting and the fish is breathing hard, treat that immediately. Don't wait for diagnostic confirmation.

One more thing: breeding tubercles are small white bumps on the gill plates and pectoral fins of cyprinids and goldfish. They look like ich but aren't. They're symmetrical, don't spread, and the fish is otherwise healthy. No treatment needed.

Fuzzy patches and cotton-like growth

This is usually fungus, and it's almost always secondary. Fungus doesn't attack healthy fish. It colonizes damaged skin, tissue that's already been compromised by a parasite, a wound from aggression, or toxin exposure.

Treat the fungal infection, yes, but the real question is: what damaged the skin first? If you don't answer that, the fungus comes back.

Torn, frayed, and discolored fins

Fin rot is bacterial and usually driven by poor water quality. The edges fray. The tissue might turn white, red, or black. If left alone, it advances from the fins to the body.

Mild fin rot often resolves with a 50% water change and stable parameters. Severe cases, where tissue is actively breaking down instead of just fraying, need antibacterial treatment. The timeline matters: if fin loss stops after you improve water quality, the immune system is handling it. If tissue keeps breaking down despite stable water, you need medication.

Ulcers and open sores

Red sores or any open wound on the body means bacterial infection. It might be columnaris, sometimes called mouth fungus though it's actually bacteria, which shows as grey or white patches around the mouth. It might be a general ulcer. Either way, the fish needs antibacterial treatment and perfect water quality.

Lymphocystis is different. It looks like cauliflower sprouts on the fins, bumpy and irregular. It's viral, usually self-limiting, and most fish recover without treatment if water quality stays stable. Ugly, but not an emergency.

Pinecone scales and abdominal swelling

This is dropsy, and it indicates kidney failure or systemic organ collapse. The scales stand up from the body like they're being pushed from inside. The belly bulges.

I'll be direct: dropsy has poor odds. Even with perfect treatment, survival sits around 10 to 20% once scales are fully raised. Euthanasia might be the humane choice. If you catch it very early, when the fish is eating and scales are just starting to lift, an antibiotic in quarantine plus aquarium salt might help. But be realistic about the outcome.

Color changes

Darkening happens when fish are exposed to ammonia or when they're stressed. Fading or paling typically follows transport, social stress, or chronic nitrate exposure.

Red streaks in the fins or body are different. That's septicemia — a bacterial infection in the bloodstream. Treat it as an emergency and use antibiotics.

Unusual posture and curved spine

A curved spine can mean several things: vitamin deficiency, especially C; mycobacteriosis, which is fish TB and zoonotic so wear gloves; or genetic deformity. If the spine is curved and you also see wasting and skin lesions, suspect mycobacteriosis.

Behavioral Changes Worth Watching

Behavior often tells you more than visual signs alone. What a fish is doing, where it's positioned, whether it's eating, how it responds to tankmates — those details narrow things down fast.

Four vignettes showing fish flashing, gasping at surface, lying motionless, and hiding — common behavioral illness signsRubbing and scratching

A fish rubbing its body against rocks or decor is signaling irritation. Before you assume parasites, test your water. Ammonia irritates gills. Nitrite does. pH instability does. Chlorine from tap water not treated with dechlorinator does.

I've noticed the pattern: when multiple fish are flashing in a mature tank, the first thing I check is ammonia and nitrite, not the fish. 80% of the time, it's water quality. Once parameters are clean, parasites become the main suspect.

Gasping at the surface

A fish at the surface gasping is in distress. The usual suspects are ammonia toxicity, which burns gills; nitrite poisoning, which converts hemoglobin so the fish suffocates internally; or low dissolved oxygen.

Here's the distinction: if the fish improves when you add an airstone, you probably need more oxygen or you're overdue for a water change. If it doesn't improve despite aeration, suspect nitrite. Nitrite poisoning doesn't respond to more oxygen because the problem is internal.

Fish exposed to even brief ammonia spikes often seek the surface and don't recover immediately even after water quality corrects. The gills heal slower than you'd expect.

Abnormal swimming

Spinning in circles, listing to one side, swimming upside down — these suggest swim bladder dysfunction, neurological damage from advanced ammonia exposure, or systemic illness.

A sick fish not moving, sitting motionless on the bottom, is worse. By the time a fish stops swimming entirely, it's exhausted its compensatory capacity. The problem is advanced.

Hiding and isolating

A fish that hides is stressed. Stress can come from aggression, an aggressive tankmate, environmental discomfort, or early disease. Pay attention to whether it's one fish or the whole group. All of them suggests the tank environment is the issue. One fish suggests that fish is sick, subordinate, or incompatible with its tankmates.

Sudden lethargy

A fish suddenly inactive is worth investigating today. The causes range from water quality problems to internal parasites to bacterial infection. Check water parameters first. If those are stable, observe the fish for what else is happening.

Systemic Indicators: Appetite, Breathing, and Movement

These are harder to pin to a specific cause, but they matter. They usually mean the problem has been building for a while.

Loss of appetite

A fish that stops eating needs investigation. Causes range widely: water quality stress, ammonia exposure, internal parasites, bacterial infection, even simple acclimation shock after transport.

Pay attention to the pattern. A stressed fish might skip 1 to 2 meals and resume eating once conditions stabilize. A diseased fish shows progressive decline. It's that trajectory over days that matters.

Spitting out food is different. That usually means the fish has mouth or gill irritation that makes swallowing painful, or internal parasites affecting the digestive tract. Either way, feeding has become uncomfortable.

Rapid gill movement

Labored breathing deserves respect. Respiratory compromise kills quickly. When you see rapid gill movement paired with clamped fins, the fish is stressed or sick, possibly both. That combination carries higher urgency than either alone.

First Step: Check Your Water

Before you reach for medication, test your water. I say this because it's true: roughly 80 to 90% of what looks like disease in home aquariums is actually environmental stress or the secondary infections that follow it.

Test ammonia, nitrite, nitrate, pH, and temperature. Here's what out-of-range looks like in fish behavior.

Ammonia

Safe: 0 ppm, with free ammonia below 0.02 ppm. Ammonia poisoning symptoms appear at any detectable level: red or purple gills, a heavy slime coat, gasping, erratic swimming. Large fish are typically affected before small fish. Red streaks on the body indicate ammonia damage to blood vessels.

The pH-ammonia interaction matters. Total Ammonia Nitrogen on your test kit includes both NH4+ (relatively harmless) and NH3 (toxic). The proportion of toxic NH3 jumps roughly 10 times for every 1.0 rise in pH. A test reading that's safe at pH 6.5 can be lethal at pH 8.0 without the number changing.

Never raise pH during an ammonia event. You can harm the fish severely in minutes.

Nitrite

Safe: 0 ppm. Any detectable level is a problem. Nitrite converts hemoglobin to methemoglobin, which can't carry oxygen. The fish suffocates internally. Gill color shifts from pink to tan or brown. Gasping at the surface doesn't help because the problem isn't oxygen availability, it's the fish's inability to use the oxygen present.

One practical detail: chloride ions from aquarium salt compete with nitrite at the gills. A ratio of 6:1 chloride to nitrite provides basic protection; 10:1 is safer. In practice, that's 1 teaspoon non-iodized salt per 10 liters, about 1 tablespoon per 5 gallons.

Nitrate

Safe: below 40 ppm for most systems. Above that, chronic exposure suppresses immune function. You won't see acute symptoms — the tank looks fine — but the fish's resistance drops. What you actually see is recurring ich, fin rot, or infections that resist treatment and come back after it's supposedly cleared.

If fish keep getting sick despite zero ammonia and zero nitrite, test nitrate before you medicate again. I've seen hobbyists chase phantom parasites for weeks when high nitrate was silently breaking down immune defenses the whole time.

pH

The safe pH depends on your species, but stability matters more than the specific number. Rapid pH swings cause immediate distress: flashing, excess mucus, gasping. A water change with mismatched pH is a common culprit.

Temperature

Temperature shock, a change larger than 2 to 3 degrees F, causes lethargy, gasping, and immune suppression. It's usually a water-change accident: incoming water too cold to match the tank.

Dissolved oxygen

Below 5 mg/L, large fish show stress before small fish. Surface gasping, crowding near the filter or airstone.

Stress vs. Disease: How to Tell the Difference

The two overlap. Stress often becomes the gateway to disease. But distinguishing between them changes how you respond.

How stress and disease are related

A fish stressed by transport or poor water quality releases cortisol. That suppresses immunity. Pathogens that were present in the tank all along, parasites in low numbers or bacteria living on damaged surfaces, now have the opening they need. Secondary infection appears. What started as stress becomes visible disease.

Diagram showing how aquarium stressors trigger cortisol release, suppress immunity, and allow secondary diseaseThis is why correcting stress IS treatment. Better oxygenation, stable temperature, reduced aggression, and improved water quality support the fish while you refine the diagnosis.

Signs of stress in aquarium fish

  1. Follows a known event: water change, transport, new aggressive tankmate, temperature swing, filter cleaning, power outage
  2. Behavior changes first, clamped fins, hiding, color change, without specific visible lesions
  3. Multiple fish affected simultaneously, which suggests environmental cause
  4. Improves within hours to 1 to 2 days once conditions stabilize
  5. Fish looks physically clean: no spots, no ulcers, no excess mucus, fins intact

Disease indicators

  1. Specific visible lesions: spots, ulcers, cotton growth, raised scales, progressive fin loss
  2. May appear without obvious trigger
  3. Often starts with one or a few fish, then spreads
  4. Worsens despite stable water and removed stressors
  5. Feeding behavior shows progressive decline, not just temporary skipping

Timeline as a diagnostic tool

Sudden onset across all fish after a clear event like a power outage, water change, or heater failure almost always points to environmental cause. Slow progression in one fish suggests individual disease or chronic stress from bullying. New fish getting sick within days of introduction could be acclimation shock, a latent infection from the source tank, or parameter incompatibility. Recurring disease after treatment signals that the underlying stressor, water quality or aggression or overcrowding, hasn't been corrected.

When to Quarantine

Quarantine isolates a sick fish so it doesn't spread contagion and so it can receive undivided attention. But quarantine itself is stressful, and moving a very weak fish can tip it into decline.

When quarantine is necessary

  1. Visible contagious lesions: white spots, velvet dusting, fungal patches, open ulcers
  2. One fish declining while others appear healthy, which prevents spread and protects the sick fish from bullying
  3. New fish arriving, minimum 4 weeks observation, 6 weeks is ideal

When quarantine may not be necessary

  1. Environmental issue confirmed by water test — correct the parameter, not the fish
  2. Many fish showing identical symptoms — whole-tank treatment is needed; quarantining every fish defeats the purpose
  3. Mechanical injury from aggression — remove the aggressor instead

Basic quarantine tank setup

Bare-bottom is standard. No substrate lets you see feces and removes medication absorption. 5 to 20 gallons is enough. Use an air-driven sponge filter — gentle flow, won't injure a weakened fish, won't trap medication, and you can remove it before dosing so the meds don't kill your bacteria.

Labeled illustration of a basic bare-bottom quarantine aquarium with sponge filter, heater, and hiding placeAdd a heater matched to the species' needs, a hiding spot like PVC pipe or ceramic cave, and a lid because stressed fish jump. Dim lighting or darkness reduces stress and helps if the medication is light-sensitive.

The best approach: run a spare sponge filter in your display tank continuously. When disease appears, move the cycled sponge to the hospital tank. Instant biological filtration, zero ammonia accumulation, no additional cycling waiting period.

If you don't have a pre-seeded sponge, use ammonia detoxifiers like Seachem Prime at the detoxification rate, test every 12 hours, and dose daily 25 to 30% water changes with fresh medication to compensate for dilution.

When to Treat vs. When to Watch

This decision removes more aquarium fish than disease does. Medication stresses fish further. It can reduce oxygen, crash biofiltration, stain silicone, or harm plants and invertebrates. Treating without diagnosis wastes time and the fish's depleted resilience.

The case for observation

A fish eating, swimming, and showing only minor symptoms often deserves a 48 to 72 hour observation window in stable, optimized conditions. This reliably distinguishes stress, which improves without medication, from disease, which persists or worsens.

Signs that need immediate treatment

  1. Rapidly spreading lesions worsening day to day
  2. Visible parasites in large numbers
  3. Severe respiratory distress
  4. Progressive fin or tissue loss
  5. Mass mortality across multiple fish
  6. Velvet suspected — gold dust and rapid breathing
  7. Red streaks in fins or body — septicemia

The physical treatment first approach

Before medication:

  1. Stop feeding — reduces waste load, improves water stability
  2. Test ammonia, nitrite, nitrate, pH
  3. Perform 50% water change with temperature-matched, dechlorinated water
  4. Add aquarium salt at 1 teaspoon per gallon for support
  5. Raise temperature 2 to 4 degrees F if the species tolerates it — boosts immune response
  6. Observe for 3 to 4 days
  7. If no improvement and diagnosis is reasonably clear, escalate to targeted medication

Why "medicate without diagnosing" fails

Random medication stacking obscures the clinical picture, creates additional stress, and makes diagnosis harder. Some drugs reduce oxygen, crash biofiltration, or stain silicone. If the actual problem is water quality, medication only makes the tank less stable at the worst moment.

Recurring disease after antibiotic treatment is the signature sign that environmental stress hasn't been corrected. The antibiotic temporarily reduces pathogen load, but when treatment stops, the same immune depression allows recolonization.

Troubleshooting Logic: Questions to Ask Yourself

Here's a structured approach when you can't immediately name what's wrong.

Decision-tree flowchart for diagnosing sick fish: test water, correct parameters, isolate, visualize, treat

Start with parameters

Test ammonia, nitrite, nitrate, pH, temperature. If any parameter is abnormal, correct it first. If symptoms resolve within 24 hours, the cause was environmental. No medication needed.

If parameters are normal

Ask: What changed recently? New fish? Water change? Filter cleaning? Temperature swing? Power outage? New decor? Recent medication? Feeding change?

Ask: How many fish are affected? All equals environmental stress or toxin. One or a few suggests individual disease, bullying, or incompatibility. One species but not others suggests species-specific stress or disease.

Ask: When did symptoms appear relative to changes? Immediate response suggests stress or shock. Delayed 2 to 5 days suggests latent infection. 1 to 3 weeks into a new tank suggests ammonia or nitrite cycle.

Observe 48 to 72 hours in clean, stable conditions

Are symptoms improving? Likely stress. Continue observation and targeted environmental improvement.

Are symptoms unchanged or worsening? Likely pathogenic. Proceed to visual diagnosis.

Visual diagnosis: pattern matching

  1. Uniform white spots about 1 mm: Ich. Treat: temperature 28 to 30 degrees C, salt, ich medication. Continue treatment 7 to 14 days past the last spot disappearing.
  2. Fine gold or rust dusting and rapid breathing: Velvet. Treat immediately: Oodinium medication, darkness.
  3. Progressive fin deterioration: Bacterial fin rot. Mild cases improve with water quality. Severe cases need antibacterial medication.
  4. White cotton patches on damaged tissue: Secondary fungal infection. Treat the fungus and address the primary cause like parasite damage, injury, or poor water quality.
  5. Red streaks, ulcers, hemorrhaging: Bacterial septicemia. Antibiotic treatment required.
  6. Pinecone scales and bloating: Dropsy. Poor prognosis; may warrant euthanasia if advanced.
  7. Sunken belly, white stringy feces: Internal parasites. Treat with metronidazole for protozoa, praziquantel for flukes/worms, or levamisole/fenbendazole for roundworms depending on suspected parasite.

When to seek outside help

Reach out to an experienced local fish store with demonstrated diagnostic capability, a fish veterinarian (fishvets.org has a locator), or a trusted aquarium community when:

  1. You've tested water and ruled out ammonia/nitrite/pH issues but the fish is still declining
  2. You've tried targeted medication correctly and the fish continues to worsen
  3. You have a valuable or large specimen where professional diagnostics like skin scrape, gill biopsy, or microscopy could change the treatment plan

Conclusion

The methodical approach, observe, test water, diagnose before acting, prevents more problems than it creates. Rushing to medication without understanding the problem often makes things worse.

Detecting problems early is the single thing that changes outcomes most. A fish caught at stress, before secondary infection takes hold, almost always responds to environmental improvement. A fish caught mid-disease outbreak often recovers with prompt treatment. A fish caught only after it's sitting motionless on the bottom faces poor odds no matter what you do.

Beyond that, documentation helps. I've kept notes on fish illness patterns for years, and the data is worth the time. Which stressors tend to precede disease in your tank? Which parameters shift first? Which fish are resilient and which are fragile? That observation becomes your fastest diagnostic tool.

I've lost fish I should have caught earlier, and I've saved fish that looked half-dead because something felt off and I tested the water in time. Most problems are solvable, not all of them, not always, but most when you start paying attention soon enough.