Aquariums at Home may earn an affiliate commission when you buy through links on this site. See footer.

Why Do Aquarium Fish Eat Rocks?

As an aquarium hobbyist, you know that substrate is necessary, not just for live plants to grow but for increasing beneficial bacteria in the tank as well. As most substrate is made from crushed rock or gravel, you may have noticed your fish nibbling at it from time to time and wondered why? Well, I have the answer for you below:

Usually when aquarium fish eat rocks it’s by accident. As they sift through the substrate looking for leftover food that’s settled at the bottom, they may sometime ingest a pebble or two along the way. In most cases, they’ll spit out the rock. If not, then the rock will pass through their digestive system and later be excreted as waste.

Now that you know fish will sometimes ingest rocks along with food, let’s take a closer look at this topic in more detail. I’ll explain why this behavior is common for certain species like goldfish or betta fish, for example, and whether (or not) it’s dangerous. I’ll also explain what to do should your fish swallow a rock and what types of rocks are safe for aquariums?

So, if you’re ready to learn all you need to know about fish and their usual rock-eating behavior, then let’s get right to it?

If you’re looking for some quality aquarium gravel, check these ones out over on Amazon.

Why Does My Fish Keeping Eating Stones?

Aquarium fish eating stones is not that uncommon. As they forage along the substrate looking for remnants of uneaten food, they may swallow a rock as well. Or, if they’re nibbling at the algae that’s collected along the gravel, they may inadvertently pick-up a pebble or two while grazing.

Watching goldfish especially, I wonder if sometimes they don’t vacuum up a bunch of aquarium rocks on purpose just to clean them off before spitting them back out. We’ll talk more about goldfish below, but I just wanted to note this behavior as I don’t think these fish are as dumb as some hobbyists believe them to be. I prefer to think of them as carefree go-getters!

In most cases however, when fish pick up rocks, they will discard them shortly after. Should it get accidentally ingested, it’ll then naturally pass through the digestive tract and be excreted along with other waste material. This usually isn’t dangerous for fish, provided the rocks are being passed and not lodged in their stomachs.

I haven’t experienced this yet (and hope I never do), but it is possible for a fish the size of a betta to choke on aquarium gravel so if your fish has a tendency to do this, you might consider switching out the substrate as soon as possible for something smaller and finer like sand.


What Aquarium Fish Eat Rocks?

There are a few types of aquarium fish that are known for occasionally eating rocks. Most are either herbivores or omnivores and include the following:

Betta Fish

Betta fish like to rest on gravel at the bottom of an aquarium. While resting, they may nibble on leftover food that’s laying along the substrate. On occasion, a pebble or two may be eaten along with the food since they have sharp teeth that can easily break down rock. Provided it doesn’t happen too often and you notice the stones are being excreted, there’s likely little cause for concern.


Catfish in an aquarium may eat rocks on occasion, though it’s usually by mistake. In their haste to eat, they may pick-up a pebble or two along with the algae, which is a typical food source for certain catfish species like otocinclus, for example. Ingesting too many rocks is often dangerous for catfish and usually results in a trip to the aquatic veterinarian’s office to have them surgically removed.


Some cichlids like the geophagus fish, for example, will intentionally take-in a mouthful of gravel along with their food! In turn, they’ll swallow the edible bits before spitting out the stones or simply letting the pebbles fall through their gill slits. This behavior is not only natural but necessary for certain cichlid species to properly digest food.


Goldfish are opportunist eaters – meaning they’ll eat whatever they find, whenever they find it! As natural foragers, they spend their day grazing on algae that grows near rocks and along substrate. Since their fins aren’t designed to pick-up tiny morsels of food, they’ll often grab the rock on which it’s found, eat the edible portion, and then spit out the stone.


Parrotfish are herbivores and like to feed on algae growing along rocks or substrate in an aquarium. While grazing on greenery, they may ingest a few pebbles as well. This isn’t problematic since they have special plates in their throats (known as the pharyngeal) capable of grinding up rock matter. They’ll even poop out sand as a result – up to 840 pounds per fish per year, in fact!

What to do if Your Fish Swallows a Rock?

If your fish swallows a rock and it gets lodged in its throat, you must remove the stone immediately otherwise, your fish could die of starvation.

Begin by catching the fish in a net and bringing it up to the top of the tank. Once near the surface, the fish will naturally open its mouth at which point, you must gently and carefully take out the rock using your fingernails or a tweezer.

If the stone is stuck, don’t force it out! This could potentially harm your fish. Place it in a bag of tank water and take it to an aquatic veterinarian who will be able to remove the embedded rock safely and effectively.

Over the next few days, keep an eye on your fish and watch for any potential problems. If it’s refusing food or seems to have difficulty eating, take it back to the vet as soon as possible.

Do Fish Need Rocks in Their Tank?

Rocks or gravel in an aquarium are essential to the growth of beneficial bacteria which not only break down fish waste and decaying plant material, but also help prevent the accumulation of ammonia and nitrite in the water.

While beneficial bacteria can be found in aquariums without stony substrate, it may not flourish in sufficient amounts to keep the tank safe for fish. let me explain.

By adding hundreds of little rocks to the tank, you’re providing a lot more surface area for bacteria to grow than you might even realize. The only other places for bacteria to grow safely are in a filter on the sponge or bio beads or on plants and decorations.

The surface areas on these areas just don’t provide enough space like a bed of gravel will. Yes, a filter can be over-sized with a very large sponge, but most people don’t purchase over-sized filters.

The only time I’d ever consider not having a substrate is if you only have a few fish in the tank. For example, if you have a 30-gallon tank and 4 or 5 guppies, then the filter alone should be able to house enough beneficial bacteria to keep the water healthy.

If you have a 30-gallon tank, on the other hand, and it’s fully stocked, then you need more surface area for beneficial bacteria to grow.

What Rocks are Safe for Aquarium Fish?

There are many types of rock that are considered safe for aquarium fish. These include granite, quartz, lava rock, slate and sandstone. While granite won’t affect the water parameters, it can be quite heavy on the glass in your aquarium. Quartz is especially good as it’s inert (won’t alter the pH level) and adds great visual interest to any tank.

Use caution with lava rock, however, since it often has sharp edges which can harm fish with sensitive barbels like cories, for example. Slate is good, provided it’s ‘real’ and doesn’t have a lot of minerals in it. Regarding sandstone, be sure to test it for any traces of limestone before adding it to your tank as limestone is known for elevating pH levels.

If you aren’t purchasing commercially made aquarium gravel, then it’s recommended that you disinfect rocks or gravel beforehand by boiling them in a pot with tap water for 10 to 20 minutes. This helps kill any pathogens that could be dangerous for fish.

Be careful, however, as rocks can stay hot for a long period of time! Therefore, you must make sure they’ve cooled down completely before handling them or placing them in your aquarium.


To conclude, many times when aquarium fish eat rocks it’s not intentional. As they sift through the substrate looking for remnants of food, they may sometime ingest a pebble or two while foraging. In most cases, they’ll spit out the rock. If not, then the rock will likely pass safely through their digestive tract and get expelled as waste.

Hopefully, this article has answered all your questions related to fish and why they eat rocks. Thanks for reading and good luck with your aquarium hobbyist endeavors!

Related Posts

Can Aquarium Fish See in the Dark to Eat?

Freshwater Fish that Eat and Uproot Plants