A roofer's hourly rate will vary depending on their experience, the scope of the job, materials, and location. The average rate for a roofer is $32 per hour. A roofer with more than 20 years of experience will charge between $35-70 per hour.