Pergola Kits for Outdoor Living

High-Quality Products. Rave Reviews. Free Shipping to Lower 48.

Our Pergola Kits Come in 90+ Designs & Sizes

Welcome to PergolaDepot.com, The number one supplier of high-quality pergola kits and patio cover kits on the market. We guarantee that we’ll have the pergola kits you’ve been looking for. We’ve been providing family homes and facilities with beautiful and functional wood pergola kits since 2008. 

Create the perfect backyard patio of your dreams with one of our most popular and one-of-a-kind cedar pergola kits. Here at Pergola Depot, we take great pride in creating superior and elegant pergola kits for sale that’ll last a lifetime. As a result, we’ve been featured on Military Makeover, Lifetime, and the American Forces Network channels.

Big-Kahuna-Pergola-Kit

The Big Kahuna Pergola Kit

  • Our best-selling pergola with a classic design
  • Built for maximum sun coverage
  • Engineered for extreme weather
  • Base price range: $4,010-$11,980 for standard sizes.

featured-pergola-sombrero

The Sombrero Pergola Kit

  • Big Kahuna design with half the rafters and top slats
  • Built for medium sun coverage
  • Engineered for extreme weather
  • Base price range: $3,210-$9,570 for standard sizes.

featured-pergola-fedora1

The Fedora Pergola Kit

  • Open design like a gazebo for light sun coverage
  • Taller, un-notched roofing system
  • Engineered for extreme weather
  • Base price range: $2,820-$8,420 for standard sizes.

featured-pergola-brim

The Brim Pergola Kit

  • Wooden trellis kit design
  • Perfect as a patio or walkway border
  • Ideal for hanging plants or lighting
  • Base price range: $1,951-$3,312 for standard sizes

pergola-depot-visor-product

The Visor Pergola Kit

  • Wall, garage door, or eyebrow pergola kit
  • Multiple uses and easy to install
  • Provides shade above a window or door
  • Base price range: $1,900-$4,011 for standard sizes

BK-Solar-Ready-Pergola-2

Big Kahuna Solar Pergola Kit

  • Big Kahuna design configured to accommodate solar panels
  • Base price range: $4,410-$13,170 for standard sizes

Explore Our Pergola Kits Gallery

Featured below is a collection of some of our most beautiful and unique wood pergola kits for sale. Whether you’re looking for an attached patio pergola kit that provides shade right as you walk out the door or free-standing wood pergola kits perfect for the backyard barbeque space. Our pergola kits for sale are available in many different wood varieties, shapes, styles, sizes, and colors to cater to our customers’ needs.

Free Shipping!


All pergola kits we sell ship free to most locations in the contiguous US! Hard to reach destinations or locations that require a ferry to deliver will incur surcharges. We build each kit to order and ship from our shop in Melbourne, Florida. Delivery times vary depending on your location.

Customize It


Each one of our pergola kits are customizable. You can choose your options such as size, wood type, end cut shape, post lengths, and whether it will be attached to your house or freestanding.

Do It Yourself


We’ve taken all the guesswork out of the building process. If you’re handy with common hand tools, you can DIY and save thousands compared to a custom pergola built on site!

Easy-to-Assemble


Notched, quality wood, high density of rafters and tops slats increases stability of our pergolas and their ability to withstand strong winds and weather. Our pergola kits come pre-cut, pre-drilled, with detailed instructions.

Large Selection


Over 90 standard pergola kit sizes to choose from in freestanding or attached, and custom sizes available. Also offering popular sizes of planter box kits for flowers, vegetables, or firewood.

Affordable Pergolas


We maintain a small, skilled crew that pays attention to detail and works efficiently to keep overhead low so we can continue to keep our pergola kits affordable.

Pergola Depot is an award-winning outdoor pergola company with hundreds of happy customers.

Add Value To Your Home With Our Patio Pergola Kits

If you’re looking to increase the value of your property, investing in a wood pergola kit will surely add market value to your home. Across the nation, there’s been a record amount of people spending their time living outdoors. So there hasn’t been a better time to purchase a patio cover kit for your home. We’ve spoken to many house buying industry experts. As a whole, there is an agreement that homeowners who invest in patio pergola kits see an increase in property valuation. Our ballpark estimate is a 50% — 80% ROI for a complete backyard remodel.

HOW TO MEASURE A PERGOLA

Big Kahuna Pergola Kit

STEP 1

Choose Pine or Cedar?


Our pergola kits are built using a choice of two classic wood types, Pressure Treated #1 Southern Yellow Pine or Western Red Rough Sawn Tight Knot Cedar. Either one is an excellent choice for a sturdy pergola that will last for many years. Both are highly resistant to decay and can withstand severe elements.

STEP 2

Choose Freestanding or Attached?


Whether you choose freestanding or attached, a pergola creates another space for you to spend time outdoors. Free standing pergolas stand-alone and can be used to create a modern outdoor room in your backyard or garden. Standards sizes typically have 4 posts supporting the roof part of the pergola. Our attached pergola kits attach to a wall and extend out away from a building, giving you more covered space for your outdoor gatherings. All of our attached pergola kits include a 2×8 ledger board. Standard sizes typically have two posts supporting the cover part of the pergola.

Freestanding 17x19 Cedar Freestanding Pergola – Big Kahuna

STEP 3

Choose Post Height


When choosing the pergola post length, consider these questions to help you decide: What is the desired height above the ground? How much space do you want between the bottom of the beam (the low point of the roof structure) and the ground? How will you be installing the posts (buried in a concrete footer, or installed on top of a concrete footer or existing concrete slab)?


Thank you for visiting Pergola Depot! We are your source for affordable, quality, do it yourself pergola kits. Pergola Depot (also known as Average Joe’s Pergola Depot) builds and sells quality, affordable, customizable, DIY pergola kits, serving the United States and Canada since 2008.

Customizable, Easy to Assemble, DIY Pergola Kits

Pergola Depot offers over 90 standard designs and sizes as well as custom pergola kits. We use high grade lumber, stainless steel hardware and back our pergola kits with a one-year limited warranty. Every DIY wood pergola kit comes complete with all pre-cut, pre-drilled lumber that is pre-marked for easy assembly. 

Quality, Affordable Cedar and Wood Pergola Kits

We manufacture the following quality wood pergola kits: attached cedar pergola kits, attached pine pergola kits, freestanding cedar pergola kits, freestanding pine pergola kits, and cedar planter box kits. Our attached pergola kits and freestanding pergola kits are available in our full size pergola styles including The Big KahunaThe Sombrero, and The Fedora.

Each pergola kits’ style provides a different amount of coverage for your outdoor space. The Brim is a trellis kit and can be standalone or paired with a full size pergola kit. The Visor is a wooden awning kit that enhances and provides shade above a window or door opening. Our cedar pergola kits, pine pergola kits, and cedar planter box kits all include step by step instructions to guide you through the assembly process.

The quality of our pergola designs rival composite, vinyl, or aluminum pergola kits, and are offered at a more affordable price point. If you like to keep up with popular landscape trends, today’s modern landscapes featuring a wood pergola with a canopy are gaining in popularity over alternative materials used to build pergolas and other structures like a gazebo or pavilion.

We provide helpful resources to help you make decisions about your wood patio cover, including: Guide to Choosing a PergolaPergola Styles Comparison. View our Pergola Kits and Outdoor Living Blog for ideas on how to layout a unique, modern outdoor space. 

Ordering pergola kits is easy through our website, and live customer service is always an option. Call us at 877-563-0002, send an email, or use our contact form.

What Do Our Customers Say About Our Pergola Kits?


O. Jones20-08-12

Dan Mack2019-07-12

T JS2019-07-08

James Woodard2019-04-03

Michael Dempsey2019-03-20

Jennifer Talbert -Miller2019-02-26


Questions?


Our team is standing by to help answer any questions about your next pergola. We're available to guide you through the process, provide additional information, or create a custom order.

After you choose the location for your pergola, decide if your pergola will be attached or stand-alone. Then decide how much usable space you’d like between the posts (freestanding), or between the wall and posts (attached).

  • Determine desired rafter length (depth)
  • Determine desired beam length (width)
  • Calculate overall tip to tip dimensions. This is the size pergola you’ll choose. Overall tip to tip = Rafter (depth or projection) x Beam (width)
  • Determine post height.

We do not offer installation services, but we do have a directory with companies listed that offer pergola installation services. These companies are not endorsed by us in any way, but are companies who chose to list themselves on our website to offer installation services. You will also receive a complete set of installation instructions with your pergola kit.

If one of our standard sizes doesn’t fit your requirements, you can request a custom pergola quote with dimensions unique to your backyard. Once you take your measurements, you can submit a request using our custom quote form, and we will send you a quote free of charge within 24-48 hours.

[gravityform id=33 ajax="true" title="false"]
<div class='gf_browser_unknown gform_wrapper gravity-theme' id='gform_wrapper_33' style='display:none'><div id='gf_33' class='gform_anchor' tabindex='-1'></div> <div class='gform_heading'> <span class='gform_description'></span> <p class='gform_required_legend'>&quot;<span class="gfield_required gfield_required_asterisk">*</span>&quot; indicates required fields</p> </div><form method='post' enctype='multipart/form-data' target='gform_ajax_frame_33' id='gform_33' action='/#gf_33' novalidate> <div id='gf_progressbar_wrapper_33' class='gf_progressbar_wrapper'> <p class="gf_progressbar_title">Step <span class='gf_step_current_page'>1</span> of <span class='gf_step_page_count'>5</span> </p> <div class='gf_progressbar gf_progressbar_blue' aria-hidden='true'> <div class='gf_progressbar_percentage percentbar_blue percentbar_20' style='width:20%;'><span>20%</span></div> </div></div> <div class='gform_body gform-body'><div id='gform_page_33_1' class='gform_page' > <div class='gform_page_fields'><div id='gform_fields_33' class='gform_fields top_label form_sublabel_below description_below'><div id="field_33_18" class="gfield gfield_html gfield_html_formatted gfield_no_follows_desc field_sublabel_below field_description_below gfield_visibility_visible" ><h2 class="ca-form-title">Welcome To Pergola Depot!</h2> <p class="ca-form-p">Is there something we can help you with today?</p></div><fieldset id="field_33_1" class="gfield gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible" ><legend class='gfield_label screen-reader-text' ><span class="gfield_required"><span class="gfield_required gfield_required_asterisk">*</span></span></legend><div class='ginput_container ginput_container_radio'><div class='gfield_radio' id='input_33_1'> <div class='gchoice gchoice_33_1_0'> <input class='gfield-choice-input' name='input_1' type='radio' value='I&#039;d like to download a pergola buyer’s guide.' id='choice_33_1_0' onchange='gformToggleRadioOther( this )' /> <label for='choice_33_1_0' id='label_33_1_0'>I'd like to download a pergola buyer’s guide.</label> </div> <div class='gchoice gchoice_33_1_1'> <input class='gfield-choice-input' name='input_1' type='radio' value='I&#039;d like to schedule a call with a pergola specialist.' id='choice_33_1_1' onchange='gformToggleRadioOther( this )' /> <label for='choice_33_1_1' id='label_33_1_1'>I'd like to schedule a call with a pergola specialist.</label> </div> <div class='gchoice gchoice_33_1_2'> <input class='gfield-choice-input' name='input_1' type='radio' value='I&#039;d like to browse pergolas on my own.' id='choice_33_1_2' onchange='gformToggleRadioOther( this )' /> <label for='choice_33_1_2' id='label_33_1_2'>I'd like to browse pergolas on my own.</label> </div> <div class='gchoice gchoice_33_1_3'> <input class='gfield-choice-input' name='input_1' type='radio' value='I know what I&#039;m looking for and I&#039;m ready to buy!' id='choice_33_1_3' onchange='gformToggleRadioOther( this )' /> <label for='choice_33_1_3' id='label_33_1_3'>I know what I'm looking for and I'm ready to buy!</label> </div></div></div></fieldset></div> </div> <div class='gform_page_footer top_label'> <input type='button' id='gform_next_button_33_2' class='gform_next_button button' value='Next' onclick='jQuery("#gform_target_page_number_33").val("2"); jQuery("#gform_33").trigger("submit",[true]); ' onkeypress='if( event.keyCode == 13 ){ jQuery("#gform_target_page_number_33").val("2"); jQuery("#gform_33").trigger("submit",[true]); } ' /> </div> </div> <div id='gform_page_33_2' class='gform_page' style='display:none;'> <div class='gform_page_fields'> <div id='gform_fields_33_2' class='gform_fields top_label form_sublabel_below description_below'><div id="field_33_5" class="gfield gfield_html gfield_html_formatted gfield_no_follows_desc field_sublabel_below field_description_below gfield_visibility_visible" ><h2 class="ca-form-title">Great!</h2> <p class="ca-form-p">Please enter your name and email and we'll send you a buyer's guide with more information about our pergolas.</p> <p class="ca-form-p">P.S. You'll also get an exclusive <span>15% off discount code</span> for when you're ready to buy!</p></div><div id="field_33_3" class="gfield gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible" ><label class='gfield_label screen-reader-text' for='input_33_3' >First Name *<span class="gfield_required"><span class="gfield_required gfield_required_asterisk">*</span></span></label><div class='ginput_container ginput_container_text'><input name='input_3' id='input_33_3' type='text' value='' class='large' placeholder='First Name *' aria-required="true" aria-invalid="false" /> </div></div><div id="field_33_4" class="gfield gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible" ><label class='gfield_label screen-reader-text' for='input_33_4' >Email *<span class="gfield_required"><span class="gfield_required gfield_required_asterisk">*</span></span></label><div class='ginput_container ginput_container_email'> <input name='input_4' id='input_33_4' type='email' value='' class='large' placeholder='Email *' aria-required="true" aria-invalid="false" /> </div></div></div> </div> <div class='gform_page_footer top_label'> <input type='button' id='gform_previous_button_33_10' class='gform_previous_button button' value='Previous' onclick='jQuery("#gform_target_page_number_33").val("1"); jQuery("#gform_33").trigger("submit",[true]); ' onkeypress='if( event.keyCode == 13 ){ jQuery("#gform_target_page_number_33").val("1"); jQuery("#gform_33").trigger("submit",[true]); } ' /> <input type='button' id='gform_next_button_33_10' class='gform_next_button button' value='Next' onclick='jQuery("#gform_target_page_number_33").val("3"); jQuery("#gform_33").trigger("submit",[true]); ' onkeypress='if( event.keyCode == 13 ){ jQuery("#gform_target_page_number_33").val("3"); jQuery("#gform_33").trigger("submit",[true]); } ' /> </div> </div> <div id='gform_page_33_3' class='gform_page' style='display:none;'> <div class='gform_page_fields'> <div id='gform_fields_33_3' class='gform_fields top_label form_sublabel_below description_below'><div id="field_33_11" class="gfield gfield_html gfield_html_formatted gfield_no_follows_desc field_sublabel_below field_description_below gfield_visibility_visible" ><h2 class="ca-form-title">No problem!</h2> <p class="ca-form-p">If you need any assistance while browsing our pergolas, <br>head down to the left corner to <span>chat with us</span>. <p class="ca-form-p">We're here to answer your questions!</p> <p class="ca-form-p"><i>Before you leave, would you like to take advantage of an exclusive <span>15% off discount</span> for when you're ready to buy?</i></p></div><fieldset id="field_33_13" class="gfield field_sublabel_below field_description_below gfield_visibility_visible" ><legend class='gfield_label screen-reader-text' ></legend><div class='ginput_container ginput_container_radio'><div class='gfield_radio' id='input_33_13'> <div class='gchoice gchoice_33_13_0'> <input class='gfield-choice-input' name='input_13' type='radio' value='Yes, please!' id='choice_33_13_0' onchange='gformToggleRadioOther( this )' /> <label for='choice_33_13_0' id='label_33_13_0'>Yes, please!</label> </div> <div class='gchoice gchoice_33_13_1'> <input class='gfield-choice-input' name='input_13' type='radio' value='No, thank you!' id='choice_33_13_1' onchange='gformToggleRadioOther( this )' /> <label for='choice_33_13_1' id='label_33_13_1'>No, thank you!</label> </div></div></div></fieldset></div> </div> <div class='gform_page_footer top_label'> <input type='button' id='gform_previous_button_33_19' class='gform_previous_button button' value='Previous' onclick='jQuery("#gform_target_page_number_33").val("2"); jQuery("#gform_33").trigger("submit",[true]); ' onkeypress='if( event.keyCode == 13 ){ jQuery("#gform_target_page_number_33").val("2"); jQuery("#gform_33").trigger("submit",[true]); } ' /> <input type='button' id='gform_next_button_33_19' class='gform_next_button button' value='Next' onclick='jQuery("#gform_target_page_number_33").val("4"); jQuery("#gform_33").trigger("submit",[true]); ' onkeypress='if( event.keyCode == 13 ){ jQuery("#gform_target_page_number_33").val("4"); jQuery("#gform_33").trigger("submit",[true]); } ' /> </div> </div> <div id='gform_page_33_4' class='gform_page' style='display:none;'> <div class='gform_page_fields'> <div id='gform_fields_33_4' class='gform_fields top_label form_sublabel_below description_below'><div id="field_33_20" class="gfield gfield_html gfield_html_formatted gfield_no_follows_desc field_sublabel_below field_description_below gfield_visibility_visible" ><h2 class="ca-form-title">Happy Shopping!</h2> <p class="ca-form-p">Please share your name and email below to receive your <span>15% off discount code</span>. </p> <p class="ca-form-p">We hope you enjoy shopping with us!</p></div><div id="field_33_21" class="gfield gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible" ><label class='gfield_label screen-reader-text' for='input_33_21' >First Name *<span class="gfield_required"><span class="gfield_required gfield_required_asterisk">*</span></span></label><div class='ginput_container ginput_container_text'><input name='input_21' id='input_33_21' type='text' value='' class='large' placeholder='First Name *' aria-required="true" aria-invalid="false" /> </div></div><div id="field_33_22" class="gfield gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible" ><label class='gfield_label screen-reader-text' for='input_33_22' >Email *<span class="gfield_required"><span class="gfield_required gfield_required_asterisk">*</span></span></label><div class='ginput_container ginput_container_email'> <input name='input_22' id='input_33_22' type='email' value='' class='large' placeholder='Email *' aria-required="true" aria-invalid="false" /> </div></div></div> </div> <div class='gform_page_footer top_label'> <input type='button' id='gform_previous_button_33_14' class='gform_previous_button button' value='Previous' onclick='jQuery("#gform_target_page_number_33").val("3"); jQuery("#gform_33").trigger("submit",[true]); ' onkeypress='if( event.keyCode == 13 ){ jQuery("#gform_target_page_number_33").val("3"); jQuery("#gform_33").trigger("submit",[true]); } ' /> <input type='button' id='gform_next_button_33_14' class='gform_next_button button' value='Next' onclick='jQuery("#gform_target_page_number_33").val("5"); jQuery("#gform_33").trigger("submit",[true]); ' onkeypress='if( event.keyCode == 13 ){ jQuery("#gform_target_page_number_33").val("5"); jQuery("#gform_33").trigger("submit",[true]); } ' /> </div> </div> <div id='gform_page_33_5' class='gform_page' style='display:none;'> <div class='gform_page_fields'> <div id='gform_fields_33_5' class='gform_fields top_label form_sublabel_below description_below'><div id="field_33_15" class="gfield gfield_html gfield_html_formatted gfield_no_follows_desc field_sublabel_below field_description_below gfield_visibility_visible" ><h2 class="ca-form-title">No problem!</h2> <p class="ca-form-p">If you need any assistance while browsing our pergolas, <br>head down to the left corner to <span>chat with us</span> or call as at <a href="tel:8775630002"><span>(877) 563-0002</span></a>. <p class="ca-form-p">We're here to answer your questions!</p> </div></div></div> <div class='gform_page_footer top_label'><input type='submit' id='gform_previous_button_33' class='gform_previous_button button' value='Previous' onclick='if(window["gf_submitting_33"]){return false;} if( !jQuery("#gform_33")[0].checkValidity || jQuery("#gform_33")[0].checkValidity()){window["gf_submitting_33"]=true;} ' onkeypress='if( event.keyCode == 13 ){ if(window["gf_submitting_33"]){return false;} if( !jQuery("#gform_33")[0].checkValidity || jQuery("#gform_33")[0].checkValidity()){window["gf_submitting_33"]=true;} jQuery("#gform_33").trigger("submit",[true]); }' /> <input type='submit' id='gform_submit_button_33' class='gform_button button' value='Send My Discount Code!' onclick='if(window["gf_submitting_33"]){return false;} if( !jQuery("#gform_33")[0].checkValidity || jQuery("#gform_33")[0].checkValidity()){window["gf_submitting_33"]=true;} ' onkeypress='if( event.keyCode == 13 ){ if(window["gf_submitting_33"]){return false;} if( !jQuery("#gform_33")[0].checkValidity || jQuery("#gform_33")[0].checkValidity()){window["gf_submitting_33"]=true;} jQuery("#gform_33").trigger("submit",[true]); }' /> <input type='hidden' name='gform_ajax' value='form_id=33&amp;title=&amp;description=1&amp;tabindex=0' /> <input type='hidden' class='gform_hidden' name='is_submit_33' value='1' /> <input type='hidden' class='gform_hidden' name='gform_submit' value='33' /> <input type='hidden' class='gform_hidden' name='gform_unique_id' value='' /> <input type='hidden' class='gform_hidden' name='state_33' value='WyJbXSIsIjhiOTdmMWNhMmJiYTliNjI3NTYwMmJmNTBlZGMxZTllIl0=' /> <input type='hidden' class='gform_hidden' name='gform_target_page_number_33' id='gform_target_page_number_33' value='2' /> <input type='hidden' class='gform_hidden' name='gform_source_page_number_33' id='gform_source_page_number_33' value='1' /> <input type='hidden' name='gform_field_values' value='' /> </div> </div></div> </form> </div> <iframe style='display:none;width:0px;height:0px;' src='about:blank' name='gform_ajax_frame_33' id='gform_ajax_frame_33' title='This iframe contains the logic required to handle Ajax powered Gravity Forms.'></iframe> <script> gform.initializeOnLoaded( function() {gformInitSpinner( 33, 'https://pergoladepot.com/wp-content/plugins/gravityforms/images/spinner.svg' );jQuery('#gform_ajax_frame_33').on('load',function(){var contents = jQuery(this).contents().find('*').html();var is_postback = contents.indexOf('GF_AJAX_POSTBACK') >= 0;if(!is_postback){return;}var form_content = jQuery(this).contents().find('#gform_wrapper_33');var is_confirmation = jQuery(this).contents().find('#gform_confirmation_wrapper_33').length > 0;var is_redirect = contents.indexOf('gformRedirect(){') >= 0;var is_form = form_content.length > 0 && ! is_redirect && ! is_confirmation;var mt = parseInt(jQuery('html').css('margin-top'), 10) + parseInt(jQuery('body').css('margin-top'), 10) + 100;if(is_form){jQuery('#gform_wrapper_33').html(form_content.html());if(form_content.hasClass('gform_validation_error')){jQuery('#gform_wrapper_33').addClass('gform_validation_error');} else {jQuery('#gform_wrapper_33').removeClass('gform_validation_error');}setTimeout( function() { /* delay the scroll by 50 milliseconds to fix a bug in chrome */ jQuery(document).scrollTop(jQuery('#gform_wrapper_33').offset().top - mt); }, 50 );if(window['gformInitDatepicker']) {gformInitDatepicker();}if(window['gformInitPriceFields']) {gformInitPriceFields();}var current_page = jQuery('#gform_source_page_number_33').val();gformInitSpinner( 33, 'https://pergoladepot.com/wp-content/plugins/gravityforms/images/spinner.svg' );jQuery(document).trigger('gform_page_loaded', [33, current_page]);window['gf_submitting_33'] = false;}else if(!is_redirect){var confirmation_content = jQuery(this).contents().find('.GF_AJAX_POSTBACK').html();if(!confirmation_content){confirmation_content = contents;}setTimeout(function(){jQuery('#gform_wrapper_33').replaceWith(confirmation_content);jQuery(document).scrollTop(jQuery('#gf_33').offset().top - mt);jQuery(document).trigger('gform_confirmation_loaded', [33]);window['gf_submitting_33'] = false;wp.a11y.speak(jQuery('#gform_confirmation_message_33').text());}, 50);}else{jQuery('#gform_33').append(contents);if(window['gformRedirect']) {gformRedirect();}}jQuery(document).trigger('gform_post_render', [33, current_page]);} );} ); </script>