You should replace your roof every 20 to 30 years. However, your roof type plays a big role in how often you should replace it: Asphalt shingles last 12–20 years Cedar shingles last about 30 years  Metal roofs last 40–70 years Slate roofs can last 75 to 200 years