The stains which usually appear on your roof, especially if it is made of asphalt shingles, are actually the result of algae. These algae commonly appear in climates which have warm and humid summers.
In case your shingles are really worn out, you could replace them with dark new shingles, in order to somehow disguise the staining. Or you could replace them with shingles which are treated with copper granules that can be lethal to algae. But in case your shingles are not that damaged, you could consider spray washing the roof with a mixture of bleach and water, to remove the algae, and rinse it afterwards. It is best to avoid using a pressure washer, because it can affect the state of your shingles.
But of course, you want to make sure that the algae do not come back and stain your roof again. In order to prevent this from happening, you could insert some strips of zinc or copper in the area which is closest to the peak of the roof. This can also work in the case of roofs which are affected by the accumulation of moss. To verify how this works, you can check other roofs in your neighborhood, and notice that the chimneys with copper flashing have zero algae stains. A quality roofing company at https://www.roofonemichigan.com/ can help with the repair process.