Handling leftovers safely is always an interesting challenge, and it's especially the case with highly perishable foods like fish. You'll need to cook or freeze it right away, and then after it's cooked, you'll only be able to use it for a few days.
How Long Will Cooked Fish Stay Fresh?
As a rule, you can store cooked fish for about three or four days in the refrigerator. That's just a guideline, though. It's assuming that your refrigerator keeps a steady, food safe temperature of 40 degrees Fahrenheit or below, ideally somewhere around 36 F to 38 F, which is low enough to discourage bacterial growth.
Another source of unpleasant flavors is oxidation. Oxygen in the air reacts with the proteins, fats and flavor molecules in the fish, and over time it'll cause nasty-tasting compounds to form. Fats are especially prone to this, so fattier fish, such as herring, salmon and mackerel, might get funky more quickly than lean fish such as cod or haddock.
A Couple of Special Cases
That guideline of three to four days applies to fresh or previously frozen fish that's simply cooked. Often, though, fish is cured before cooking, or as part of the cooking process, which means it's been salted and possibly smoked. Salt helps protect the fish from bacterial growth, and smoking helps prevent oxidation, so cured fish products can last much longer in your fridge than cooked fresh fish. Smoked salmon, for example, is generally good for up to a week in the refrigerator.
If you like to nibble light meals in the summertime, when it's too hot to enjoy cooking, you might also want to look into a Spanish tradition called escabeche. In the days before refrigeration, it's how devout diners in that country dealt with the requirement to avoid meats during religious fasts.
To make escabeche, you combine oil, wine, vinegar and spices to make an acidic marinade. Next you choose your fish and brown it in a skillet, then add the marinade and let them simmer for a few minutes. Pull the skillet from the burner and let the fish portions cool in the marinade, then refrigerate it for up to a week. The acidity of the vinegar keeps bacterial growth at bay, and the flavors of the spices will continue to mellow and deepen during that time. Serve the escabeche chilled or at room temperature, as an appetizer or as part of a larger cold plate.
Storing Cooked Fish in the Freezer
If you've cooked up more fish than you care to eat in the span of a few days, your best option for long-term storage is your freezer. Instead of three or four days, this keeps the fish fresh and usable for three or four months. Your fish must be packaged as airtight as you can get it, in freezer bags with the excess air squeezed out, or in containers with plastic wrap pressed right to the surface of the food.
Food stays food safe indefinitely in the freezer, so the few months' limit is mostly about flavor. Here, again, oxygen will cause the taste of the fish to deteriorate until it reaches a point where you'd have to be pretty desperate to actually eat it. If you own a vacuum sealer, which extracts almost all of the air from a package, it's the best way to prepare your fish for the freezer. Vacuum-sealed portions might last twice as long, or perhaps even more, before it develops "off" flavors.
Fish Handling and Storage Tips
Your fish will always be best, and safest, if it's handled properly from start to finish. Begin by buying the freshest fish you can, and keeping it cold until you get it home to the fridge. It's good for a day or two in the fridge uncooked but the sooner you cook it the better, especially if it was already at or near its sell-by date. Uncooked fish should be kept at the very bottom of the fridge, where it can't drip on any ready-to-eat foods, or kept in a drip-proof container.
Once your fish is cooked, refrigerating it quickly is the most important thing you can do to extend its usable life. It absolutely has to go into the fridge within two hours, and ideally as soon as it's cooled enough to handle and package. It'll cool faster if you divide it into small portions for packaging, and if it's really hot you can leave the lids off for the first hour to let that heat escape. Don't stack the hot containers of fish, or they'll keep each other warm. Instead, spread them around the fridge to speed cooling.