Fresh fish is a commodity that everybody enjoys. Well, almost everybody. It is a valuable resource with a short shelf life. So with this in mind, how do you tell if a fish has gone bad?    

There are a few tell-tale signs that the meat on a fish is no longer safe to eat.  First, if it has gone bad it will give off a pungent, unpleasant odor.  It will smell really fishy, and not in a good way.  Second, it will look slimy, like a film has begun to grow over it. 

What Does Bad Fish Look Like?

If a fish has started to spoil, the meat will get a slippery, slimy film on it and it will look milky.  A fresh filet is shiny.  It looks as if it just came out of the water. 

If you are buying a whole fish – or, “in the round” – look at its eyes and scales.  The fish was not properly taken care of if the eyes are milky and some of its scales are missing.  Milky eyes are a clear indication that the fish sat on deck too long. There is a chance that it is no longer safe to eat. 

How Long Is Fish Safe To Eat?

Unfortunately, raw fish spoils quickly. It is only good for approximately 36 hours after purchase.  A general rule of thumb is to toss it if not used within a day or two of purchase.  This is great to know if you like to purchase your seafood directly from local seafood markets, like I do.

Alternatively, if you prefer to purchase from the grocery store make sure to check the sell-by date.  Fish will start to go bad within two days after the sell-by date on the packaging. 

Cooked fish is safe in the fridge for five to seven days past the sell-by date. After that, it will no longer be safe to eat.  

Frozen fish, whether cooked or raw, can last six to nine months after the sell-by date.  Smoked salmon is the exception, which is only good for three to six months.    

What Happens If I Eat Bad Fish?

The long and the short of it is if you eat bad fish, you’re going to get sick. There are two types of food poisoning associated with bad fish.

The first is ciguatera poisoning.  The fish itself carries this type of poison. The symptoms of ciguatera poisoning are abdominal cramps, diarrhea, nausea, and vomiting.  It can progress into headaches, muscle aches, and itchy or tingly skin.  Early signs include numbness around the mouth, a metallic taste, or a feeling of loose teeth.

The second is scombroid poisoning.  This is caused by fish that have not been properly taken care of or refrigerated.  Symptoms of scombroid poisoning happen quickly, typically within 20 to 30 minutes after consuming the contaminated fish.  You can expect to experience flushing of the face, nausea, vomiting, hives and abdominal pain. The symptoms often mimic an allergic reaction.  

Final Thoughts

Fresh fish always tastes best but they have a very short shelf life.  The best ways to tell if it has gone bad is by using your senses of sight and smell.  Fish that is more than a couple of days old should be tossed. If it has become slimy and has a pervasive smell, it is probably no longer safe to eat.

Latest posts by Danielle Hampton (see all)