Sooner or later every dog owner finds out that dogs like smelly things. Even the most well-behaved pooch will joyfully roll in the remains of a long-dead rabbit, rotten garbage or a fresh warm cow pat. There are several theories of why they do this.
Mask Own Scent
The most popular theory is that dogs roll in nasty stinky things to camouflage their own scent, making it easier to sneak up on prey animals. This is a wolf instinct that has carried through many generations to your pets, even though they have never had to hunt for their own food. A potential meal would not expect to be attacked by something that smelled as if it was rotten.
When dogs meet they invariably sniff each other. If your dog is broadcasting his stinky new scent to others, it is his way of letting others know he found something that was really interesting. You might not think it is exciting to know there is a dead animal nearby, but the beagle from next door probably will.
Cover Up Perfume
Sometimes dogs find dead things that smell bad to roll in soon after getting a bath. Dogs have noses that are far more sensitive than yours, and they may find the perfumes in dog shampoos unpleasant, even though you might like it. In this case they are trying to cover up the unnatural scent, and this is a quick and easy way.
There is also a theory that the sticky, rotting remains of a dead animal or fish act as a beauty treatment for your dog. As the creature breaks down, the fat degrades and provides a water resistant coating to your dog's fur if he can spread it through his coat. Whatever the reason, it is clear that what you think is a nice smell probably differs from what your canine companion thinks.