I volunteer in a blood bank, where now and then I do get a drop
of blood on my pants. Everyone there uses Basic H, or peroxide.
Wet it throughly with a high absorbent towel or paper towel under
it, and gently pat/scrub at it. This always takes off almost all.
Sometimes I notice at home something I hadn't noticed before,
so put it to soak in COLD water. Never hot.
A touch of meat tenderizer in the water might help.