Reasons why cats eat cat litter:
1. The scent of cat litter is very attractive to cats. Some cat litter is made into scented granules, especially milk-scented ones, which are very attractive to cats. They may mistake it for food and eat it.
2. The cat is hungry. When a cat hasn't eaten for a long time, it will search for food everywhere. In a state of extreme hunger, it will eat cat litter.
3. Kittens are curious. Newborn kittens are full of curiosity about everything, especially unfamiliar cat litter, and they will want to taste it to see if it is edible. 
4. Malnutrition in cats. Eating cat litter is also a manifestation of pica, which indicates that the cat is lacking a certain nutrient and is trying to obtain that nutrient by eating cat litter.
5. The cat is sick. When a cat is anemic or has kidney disease, it will also frequently eat cat litter. This usually requires scientific diagnosis.
6. Anemia. In cases where cats eat soil (mainly clay/bentonite), anemia, iron deficiency, and hypokalemia are the most commonly observed symptoms.
7. Boredom. If the cat's litter is made of bentonite fine sand, the cat likes to roll and play in the litter box, and occasionally ingesting it may just be a "new experience".