Is a Custom Sized Pergola Kit Right for Your Backyard?

Wondering if your backyard suits a Standard or Custom Pergola kit?

We offer 90 standard sizes in 5 different styles as well as custom sizes for any outdoor space. Your desired shade coverage and patio measurements will help you determine what’s best for your outdoor oasis.

Want to explore custom sizes? Submit the form below and receive a custom quote!

Easy to Install

Kits arrive at your location pre-cut, pre-drilled, and ready to install with easy step-by-step instructions.

High-Quality

Made with the finest #1 Grade Pressure Treated Pine or Western Red Rough Sawn Tight Knot Cedar with stainless steel hardware.

Competitively Priced

Our pergola kits are reasonably priced, with no expense to detail spared.

World-Class Customer Service

Our team is always happy to help — by phone, email, or chat!

Free Shipping

Shipping is free to most locations in the lower 48 states.

Trusted and Credible

Our pergolas have been featured on the DIY Network, HGTV, and more!

Request a Complimentary Custom Wood Pergola Quote


Did You Know?

Our standard size pergola kits come in multiple styles and over 90 sizes in freestanding or attached. Standard sizes range from 8x8 up to 20x20.

What Happens After I Place a Custom Pergola Kit Request?


  1. You’ll receive an email confirming that we’ve received your request.
  2. We’ll review your request and contact you if we have questions.
  3. Once measurements are confirmed, we’ll create a pergola sketch and pricing for your custom size pergola.
  4. You’ll receive an email containing your custom quote within 1-4 business days after confirming measurements (timeframe depends on the complexity of your request).
[gravityform id=33 ajax="true" title="false"]
<div class='gf_browser_chrome 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='/shop/custom-pergola-kits-2/?gclid=Cj0KCQiAqbyNBhC2ARIsALDwAsDGLfJiSxKO5r63M3SDrBWXCLonZBGq2AOBtTEPAn7XZw4-KmpO_KQaAnpZEALw_wcB#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 a special <span>discount code</span> that's valid through December 15 only!</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 our holiday <span>discount</span> that's valid through December 15?</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>20% off discount code that's good through December 15</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! Don't forget our Holiday Sale - now through December 15 save 20% off pergola kits with code: HOLIDAYSALE</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='Continue Shopping' 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> <p style="display: none !important;"><label>&#916;<textarea name="ak_hp_textarea" cols="45" rows="8" maxlength="100"></textarea></label><input type="hidden" id="ak_js" name="ak_js" value="94"/><script>document.getElementById( "ak_js" ).setAttribute( "value", ( new Date() ).getTime() );</script></p></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>