Why Is My Fish Not Eating? Causes and What to Try First
A fish that won't eat is usually stressed, in a tank that is too cold, or in water with ammonia or nitrite in it. Test the water and check the temperature first, then look at new-fish stress, the type of food, bullying and signs of illness. A healthy adult fish can skip a meal or two without harm, but a fish that refuses food for more than a few days, or shows other symptoms, needs action.
A fish that won’t eat is usually reacting to its surroundings, not just being fussy. The most common causes are stress from a move, water that is too cold, ammonia or nitrite in the tank, or a food the fish doesn’t recognize. Test the water and check the temperature first. Those two checks find the problem more often than anything else, and they take about five minutes.
What to do first: a checklist
Work through these in order before you change the food or reach for medicine.
- Look at the fish. Is it swimming normally, or clamped, hiding, breathing fast, bloated, thin or covered in spots? Extra symptoms mean it is more than a fussy eater.
- Test ammonia and nitrite. Use a liquid test kit. Both should read 0 ppm. Anything above that suppresses appetite and harms the fish. See our ammonia guide for what to do with a reading.
- Check the temperature with a thermometer. Don’t trust the heater dial. Compare the reading with the range for your species in our tank temperature guide.
- Count the days. When did the fish last eat, and what changed around then: new fish, a water change, new decor, a new food, medicine?
- Do a water change if the tests are off. Replace 25 to 50% of the water with dechlorinated water at about the same temperature. The University of Florida extension notes this removes ammonia when the new water is ammonia-free.
- Remove old food. Take out anything left uneaten so it doesn’t foul the water.
- Offer a small amount of food once. Wait a few minutes, then siphon out what is left. Repeat the next day.
If the water and temperature are fine and the fish looks healthy, a day or two without food is no emergency.
Why a fish stops eating
A new fish is stressed
Moving fish from a shop tank to a bag to your tank is stressful. Many fish hide and ignore food for the first day or two, and shy species can take longer. Slow acclimation, dim lighting and a calm room all help. Our acclimation guide covers the routine.
Merck’s veterinary manual notes that fish are especially prone to parasitic and bacterial infections in the first 30 days after arrival. A new fish that stays off food for more than a few days, or shows spots, torn fins or heavy breathing, should be treated as possibly sick.
Ammonia, nitrite or other water problems
Poor water is one of the leading reasons fish go off their food. The University of Florida extension says tissue damage can begin once un-ionized ammonia passes 0.05 mg/L and that nitrite is toxic at levels as low as 0.10 mg/L. It also advises testing straight away when behavior changes, and reduced feeding is one of the changes it names.
A new tank that isn’t cycled yet is the classic case. So is an older tank where the filter was cleaned in tap water or hasn’t been maintained. Our water parameters guide lists the targets. Fix the water, feed lightly, and appetite usually returns within a day or two.
The temperature is wrong
Fish are cold-blooded, so water temperature sets their metabolism. A tank that is too cold slows digestion and appetite. Water that is too hot makes fish breathe fast and can put them off food as well. A stuck heater, a cool room in winter or a heater that is too small can all cause this.
Correct it gradually, a couple of degrees over several hours, not all at once.
The food is wrong
Fish have preferences, and some are strict. The vet article we read notes that herbivores often ignore meaty or live food and carnivores ignore vegetable matter and algae wafers. Size matters too: a pellet that is too big for a small mouth will be ignored or spat out.
- Match the food to the species: sinking pellets for bottom feeders, small flakes or micro pellets for tiny fish, meaty foods for carnivores.
- Some fish only take food in the water column and ignore anything that lands on the substrate, and the reverse.
- Old, stale food loses its smell and taste. Replace flakes and pellets after a few months.
- A fish that has only had one food may refuse a new one at first. Mix a little new food with the old and be patient.
Overfeeding and normal fasting
Fish that are fed too much stop being hungry. Extra food also rots, adds ammonia and fouls the water, which then suppresses appetite further. Constipation from overfeeding is another common reason a fish seems to lose interest.
If your fish has been getting plenty and then ignores a meal, it may simply be full. Feed less, not more. Many keepers fast adult fish for a day a week on purpose.
Bullying and competition
A shy or smaller fish may be pushed away from food by faster tank-mates. The vet article lists overcrowding and bullying at feeding time as a cause. Watch a feeding session. If one fish never reaches the food, spread the food around the tank, feed in two spots at once, or use sinking food so slower fish get a turn. Add hiding places and break up lines of sight with plants. If bullying continues, you may need to separate the fish.
Illness
When appetite loss comes with other signs, think illness. Common causes include:
- Internal parasites. Look for a thin or sunken belly despite a normal-looking diet, stringy or pale feces and weight loss.
- Bloat or constipation. A swollen belly, sometimes with raised scales or a fish that sits low.
- Swim bladder problems. The fish struggles to stay level, floats or sinks. See our swim bladder guide.
- Gill or bacterial infections. Fast breathing, red or pale gills, excess slime.
- Fin rot and external parasites. Ragged fins, white spots or patches.
Fix the water first, because many of these start with poor conditions. For anything that doesn’t clear quickly, move the fish to a hospital tank (see below) and talk to an aquatic vet. Don’t add several medicines at once. Use any treatment exactly as the product label says, and don’t dose prescription drugs yourself.
Breeding, age and other natural causes
Some fish eat less when spawning or guarding eggs. Males of many cichlids and some other species stop eating while they defend a nest or hold eggs in the mouth. Appetite normally returns when the breeding is over. Older fish also slow down and eat less, and a fish nearing the end of its life may simply lose interest over weeks. If the fish looks otherwise fine, you will usually see the pattern: breeding behavior, a display of color, or chasing around a chosen spot.
Betta-specific pickiness
Betta fish are carnivores and are famously fussy about food. Several things commonly put them off:
- Cold water. Aquarium Co-Op says bettas prefer about 80 °F (27 °C), that typical room temperatures of 67 to 69 °F (19 to 21 °C) are too cold without a heater, and that a betta without a heater becomes lethargic. Seriously Fish gives the species range as 72 to 86 °F (22 to 30 °C).
- Food they don’t recognize. Seriously Fish says captive bettas usually accept dried food once they learn it is food, and that small frozen or freeze-dried foods such as bloodworm or brine shrimp help condition. If your betta ignores pellets, try a small bite of a meaty food.
- Too much food. Seriously Fish warns that bettas are particularly prone to obesity, and Aquarium Co-Op recommends feeding once a day, as much as the fish can eat in about a minute, and watching for a swollen belly.
- Dirty water. A small tank with infrequent changes builds up ammonia fast.
Fix the temperature first. A heated, filtered, clean tank solves most betta appetite problems.
How long can a fish go without eating?
A healthy adult fish can safely skip a few meals. The University of Florida extension says stopping or reducing feed for 1 to 3 days typically has no negative effect on fish, with fry as the exception. Beyond that, how long a fish copes depends on the species, its size and body condition, and its health.
Be more cautious with:
- fry and juvenile fish, which need frequent small meals
- thin fish, or fish that were underfed before they stopped eating
- sick, stressed or recently shipped fish
- small species with fast metabolisms
As a rule, if a fish hasn’t eaten for 2 to 3 days and you can’t find a cause, or it is showing other symptoms, start working through the checklist and the quarantine steps below. Don’t count on it surviving for a week or more.
When to quarantine and when to call an aquatic vet
Move the fish to a hospital or quarantine tank if:
- it is being bullied or kept from food
- it shows signs of illness that could spread, such as spots, ragged fins or fast breathing
- it needs treatment that you don’t want in the main tank
The vet article we read advises moving an ill fish to a quarantine tank first and then consulting a veterinarian. Merck describes hospital tanks of 10 or 20 gallons (38 or 76 L) with simple foam filters and aeration. Our quarantine tank guide shows how to set one up.
Call an aquatic vet if:
- the fish has refused food for more than 2 to 3 days and the water and temperature are right
- it is losing weight, has a swollen or sunken belly, or abnormal feces
- it has sores, raised scales, pale gills or labored breathing
- several fish are off their food at once and the water tests are clean
- the fish is getting worse despite your changes
If several fish are in trouble or dying, work through the fish dying checklist in the related guides below.
Getting appetite back
- Keep the tank clean and the temperature steady.
- Offer a small portion of a different, appropriately sized food.
- Soak dry food briefly in tank water so it sinks and softens.
- Feed at the same time each day, in a quiet room with steady lighting.
- Leave the fish alone between meals so it can settle.
Check your stocking too. An overcrowded tank means more waste and more competition, and our compatibility checker can show whether your fish suit each other.
Frequently asked questions
Why is my fish not eating but still swimming normally?
A fish that swims and looks normal usually just needs time, or a food it recognizes. Common reasons are a new tank, a recent change, overfeeding earlier in the day or a food it doesn't like. Test the water, check the temperature and try a different food in a small amount.
Why is my new fish not eating?
New fish are often too stressed to eat for the first day or two, and some take several days to settle. Keep the lights dim, keep the tank quiet and offer small amounts of a food the shop was using. If it still won't eat after about three days, or it looks sick, test the water and consider quarantine.
How long can a fish go without eating?
University of Florida extension staff say stopping feed for 1 to 3 days normally has no negative effect on fish, except fry. Many healthy adults cope with longer, but sick, thin or young fish do not. If a fish refuses food for more than 2 to 3 days and has other symptoms, act rather than wait.
Should I keep putting food in if my fish isn't eating?
Offer a small amount once, wait a few minutes and remove what is left. Uneaten food rots and raises ammonia, which can make the problem worse. Try again the next day rather than leaving food in the tank.
Why is my betta not eating?
The most common reason is a tank that is too cold, since bettas become sluggish in cool water. Others are an unfamiliar food, constipation from overfeeding and poor water. Check the temperature and water first, then try a different betta-sized food.