The answer to 'when to replace roof' is that a roof should typically be replaced every 20-25 years, depending on the roofing material and climate. Asphalt shingle roofs generally last 15-20 years, while metal, tile, and slate roofs can last 40-100 years with proper maintenance. Signs that a roof needs replacement include missing or damaged shingles, leaks, and sagging.
It's important to have a professional roofing contractor inspect your roof regularly, especially after major weather events, to assess its condition and determine if replacement is necessary. Replacing a roof is a significant investment, but it's crucial for protecting your home and preventing costly water damage.