Copper Gutters

Improve the look of your home with copper gutters & downspouts

Homeowners who elect to have copper gutters and downspouts installed rarely regret this decision. Even though copper gutters and downspouts are much more expensive than seamless aluminum gutters or galvanized steel gutters, copper has some unique qualities that make it exceptional.

Much like seamless aluminum gutters, copper gutters are designed with a seamless appearance and have soldered joints to help prevent leaks.

At Bone Dry Roofing, our roofers are fully experienced in gutter replacement and seamless copper gutter installation, helping you to upgrade the exterior of your home and protect your roof against damage caused by ice damming and clogged gutters.

Premium product. Copper gutters can be painted or left to develop a blue-green patina. They are often installed on historic houses.


Benefits of copper gutters:

  • No painting, no corrosion. Copper gutters and downspouts won’t ever rust or corrode. Instead, they weather naturally to a tawny brown patina.
  • Soldered joints. With other gutters, joints (at inside & outside corners) are sealed with special sealants that sometimes need to be renewed to prevent leaks. However, the joints in copper gutters are soldered together just like copper plumbing connections so you never need to worry about leaks.
  • Craftsmanship and quality. Copper gutters and downspouts definitely make a statement about craftsmanship and quality. Instead of blending into the roof structure like seamless aluminum gutters, copper gutters stand out, showing off their supports and their lovely patina.

Installing copper gutters and downspouts



1. Brackets. A technician screws gutter brackets to the fascia board, allowing for proper pitch.

2. End caps. After the gutter has been cut to length, end caps are soldered to create a watertight seal.

3. Seams. Long gutter runs are created by soldering separate sections at the seams.

4. Holes. Workers drill a hole in the gutter at each downspout location.

5. Downspouts. Wall brackets secure each downspout to the sidewall.

Take the next step, complete the form below for a free estimate!

(function(cookieName, domain){ var traffic_source_COOKIE_TOKEN_SEPARATOR = ">>"; //separating between concatenated lead source var traffic_source_date_SEPARATOR = "|>"; var NONE = "(website)"; domain = domain || window.location.hostname; function getCookie(cookieName){ var name = cookieName + "="; var cookieArray = document.cookie.split(';'); //break cookie into array for(var i = 0; i < cookieArray.length; i++){ var cookie = cookieArray[i].replace(/^\s+|\s+$/g, ''); //replace all space with '' = delete it if (cookie.indexOf(name)==0){ return cookie.substring(name.length,cookie.length); // } } return null; } function getURLParameter(param){ var pageURL =; //get the query string parameters without the "?" var URLVariables = pageURL.split('&'); //break the parameters and values attached together to an array for (var i = 0; i -1) { if(end === -1) { end = utmzCookie.length; } cookieCampaignName = "utmz:" + utmzCookie.substring((start + UTMSRC.length), end); //get the value of the UTMZ, without the parameter name } } if(cookieCampaignName != "" && isNotNullOrEmpty(urlParamSRC)){ //if there is a campaign name AND there is SRC value traffic_source = urlParamSRC + traffic_source_COOKIE_TOKEN_SEPARATOR + cookieCampaignName; //concateane the SRC with the existing campaign name // traffic_source = urlParamSRC + currTime() + traffic_source_COOKIE_TOKEN_SEPARATOR + cookieCampaignName; // Optional: add the session time } else if(cookieCampaignName != ""){ //if there is campaign name traffic_source = cookieCampaignName; //just use it for the new cookie } else if(urlParamSRC != null) { //if there is not campaign name but we have SRC traffic_source = decodeURI(urlParamSRC); // decode URI of the SRC parameter // traffic_source = decodeURI(urlParamSRC) + currTime(); // Optional: add the session time } else if(document.referrer != ""){ //if there is not campaign, and no src, check if there is a referrer, var referrerHostName = removeProtocol(document.referrer); var GOOGLE = /; var YAHOO = /; var BING = /; if(GOOGLE.test(referrerHostName)){ traffic_source = "Google Search"; //traffic_source = "Google Search" + currTime(); // + Optional: Add the current session time. Choose one of them. } else if(YAHOO.test(referrerHostName)){ traffic_source = "Yahoo Search"; //traffic_source = "Yahoo Search" + currTime(); } else if(BING.test(referrerHostName)){ traffic_source = "Bing Search"; //traffic_source = "Bing Search" + currTime(); } else { traffic_source = referrerHostName; //traffic_source = referrerHostName + currTime(); } } else { traffic_source = NONE; } setCookie(cookieName, traffic_source); //set the cookie } else if(isNotNullOrEmpty(urlParamSRC)){ //if there is a cookie, add the SRC to the cookie, unless the same src already exists as the first token. var firstToken = getFirstTokenFromCookie(getCookie(cookieName)); if(firstToken !== "" && urlParamSRC !== firstToken) { var newTrafficSourceCookie = urlParamSRC + traffic_source_COOKIE_TOKEN_SEPARATOR + getCookie(cookieName); //concetenate new SRC with old cookie values // var newTrafficSourceCookie = urlParamSRC + currTime() + traffic_source_COOKIE_TOKEN_SEPARATOR + getCookie(cookieName); // Optional: add the time of current session setCookie(cookieName, newTrafficSourceCookie); } } })("traffic_source", ""); function getCookie(name) { //Gets the value of traffic_source var value = "; " + document.cookie; var parts = value.split("; " + name + "="); if (parts.length == 2) return parts.pop().split(";").shift(); } function addTrafficSourceToForm(){ //injects the traffic_source value to the form jQuery(".lead_source input").each(function() { this.value = getCookie("traffic_source"); console.log("Executing"); }); } addTrafficSourceToForm() //initates the process