Typically, a well-maintained roof can last 20-30 years. Still, its lifespan varies based on material, weather conditions like we have in St. Louis, and overall maintenance. For example, asphalt shingles last about 20 years, while metal roofs can last 50 years or more. A regular inspection ensures longevity.