Gutter Cleaning St. Louis

Gutters clogged with debris and gunk can’t be ignored. It’s important to keep gutters clean to avoid the basement flooding and moisture damage that often results from clogged, overflowing gutters.

The Importance of Clean Gutters

Keeping your gutters clean and clear is hard, dirty and dangerous work. If your gutters haven’t been cleaned for a while, there’s most likely quite a variety of junk and gunk has accumulated. This build-up of debris prevents your gutters from doing their job. If you are tired of dealing with clogged gutters and are looking for a hassle-free solution, you’ve come to the right place. Bone Dry Roofing St. Louis specializes in gutter cleaning and installation of gutter protection, including quality, custom gutter guard solutions for every home. Although it’s necessary to keep your gutters clean, it’s equally important to be aware of the following hazards when cleaning gutters.

What’s in my gutters?

Depending on your home’s surroundings & features, any of the following items might be present in unprotected gutters:

  • Leaves
  • Twigs
  • Seeds & sprouts
  • Mold on rotted organic materials
  • Grit from roof shingles
  • Shingle fragments
  • Single or flashing nails
  • Masonry fragments from chimneys
  • Rodent & bird nests
  • Dead animals

Gutter cleaning hazards:

  • Falling off a ladder can lead to serious injury
  • Possible contact with mold and bacteria that can cause infections and other health problems.
  • Dented and scraped gutters resulting from contact with tools or ladders.
  • Exterior siding, garden furniture, and landscaping that is stained or damaged by falling gutter gunk.

When a gutter clogs, bad things happen.

Heavy rain can cause clogged gutters to quickly fill with water and overflow, dumping water next to your foundation and possibly leading to a flooded basement or crawl space.

Eliminate the task of cleaning gutters for good.

If your gutters aren’t protected from filling with debris, the task of cleaning gutters never ends. However, there is an alternative. You can replace your old gutters with our quality gutter guard system, proven to protect your gutters for life. Protection over the top of your gutters eliminates the time and hassle of cleaning your gutters yourself or the cost of having to pay someone to do it for you.

Learn more
(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