Our older dog threw up on the rug, and after trying to spot treat it we decided to take it into Persian Rug Services.
This wasn't our first experience (they had cleaned a wool/silk area rug that we had bought used), but they went beyond our expectations and washed the rug twice to get the stain out, and didn't charge extra.
Next time we will just take the rug in right away rather than try ourselves.
PS - Mo is super friendly, and clearly knows his rugs!
PPS - we took ours in because we are close enough to their Finch Avenue operation, but they do have drop off locations around the GTA.