Vacuum the mattress. This helps to keep it clean by the sheer fact that when it does get wet, there is less matter in the dirt to cause it to stain. Try using an upholstery cleaner. Since they are made for surfaces that touch your skin (e.g. your couch), it should work unless you are extremely sensitive to cleaners in general.

Use enzyme cleaners. Enzyme cleaners are effective in breaking down the ‘structure’ of the stains which helps to lessen them.

Spray it with a citrus type cleaner and let it set for about five minutes. Afterward, blot (don’t rub) as much of the cleaner out as you can using a clean, white, absorbent cloth. A mild dish detergent can also be used. Use hydrogen peroxide. Apply to the mattress and blot it while it is bubbling. This may not remove all the stain, but will help to lessen it. Be sure to blot it with a clean, white, dry cloth.
Rinse with cold water (hot cooks the proteins). Rub in meat tenderizer from the pantry which removes the proteins. Rinse and follow up as per rust removal to remove the iron found in the blood.
You can also add in salt to plain water and pour the solution into a spray bottle. This is particularly effective in removing fresh blood stains.