All needlework gets soiled while you stitch on it. The fabric picks up some soiling during the manufacturing process. It gets a little dirty just sitting in the store, even if carefully handled. Then you add the worst part - YOU TOUCH IT WHEN YOU STITCH! The oils from your hands transfer to the threads you use and the fabric, causing light soiling. You can avoid this by washing your hands before stitching and not allowing food anywhere near your project, but it will still get dirty. If you're working on materials that can't be washed, then you must be extra vigilant. However, I try to chose materials that can be washed. So, how do you wash needlework?
Wash it with a nice horse shampoo!
Yup, you read it right. Here's my gallon jug of Orvus. This is a pure quality soap. It's used for washing delicate items (which evidently includes horses). You can buy it as a fabric wash or quilt wash in a smaller container, but if you buy it at the feed store in a big jug like this, it's a lot cheaper. I use a dishpan that is only for needlework, since I know what other people can do with my stuff and I don't want my stitching contaminated.
I put about 1 teaspoon of Orvus in the pan and fill with cool water, then put in the needlework and let it soak for a few days. Yes, that is indeed d-a-y-s.