Sweat stains are one of the main causes why a white shirt can look yellow. It's because of the substances present in our sweat once it mixes to our shirts. Another probability is because of other stains that can't be removed or were not properly removed from the clothing.