Why does my shampoo have an expiration date?

This morning while showering I noticed that my bottle of shampoo had an expiration date. I never really considered shampoo to be something ‘perishable’, whats the deal here?

The detergents in shampoo, typically sodium lauryl sulfate and sodium laureth sulfate, should be good for ages. If the expiration date has any real purpose beyond getting you to buy more shampoo, I suspect that it’s determined by the rate at which added oils or perfumes go rancid.

I would guess that shampoos can separate as they age. They have emulsifiers in them because they have some immiscible ingredients. The hypothesis above with the perfume also seems likely - perfumes are volatile, of course, and I’d imagine they evaporate eventually.