Skip to main content

Your stress-free moving checklist

Tips, tricks, hacks, and professional resources for a smooth move



Damaged items. Furniture that won’t fit. Hidden fees. When it comes to moving to a new home, everyone has experienced (or heard) the horror stories. 

Packing up your life and transporting it to a new location can be stressful—even scary—especially if you’re new to the moving process. But it doesn’t have to be a disaster. 

The best way to ensure things go smoothly and avoid getting overwhelmed is to make a plan and be prepared. This checklist will help guide you before the move, on moving day, and when you arrive at your new home.

Before your move
On moving day
Say hello to your new home


Before your move

With a target moving date in mind, the first step toward a stress-free move is to make a plan based on your specific situation. 

  • Are you moving to a new neighborhood in the same city—or across the country
  • Do you need to declutter your current home before moving? 
  • Do you prefer to DIY, or would you rather hire professional movers to do everything, from packing to unloading? 
  • Will you drive or ship your vehicle? 

Answering these questions will help you create a moving checklist that gives you plenty of time to prepare, and not get caught off guard by last-minute issues.

Watch ‘5 moving tips and tricks (secrets from the pros)’:

Prevent moving hassles with these 5 tips and tricks from Vojin Popovic, CEO of Piece of Cake Moving, NYC.

Choose the right mover

From DIY to full-service, here are your options for the best move.

  • Do (mostly) everything yourself. Rent a moving truck to save money on moving expenses—or, if you’re moving long distance, get a one-way truck to drop off in your new city. Check out cost of moving truck rentals
  • DIY the packing and driving. You can hire labor-only movers to load and unload the moving truck for you.
  • Rent a mobile storage unit. If you’re in transition between homes, or have too much stuff for the new space, you can rent a mobile storage unit (a pod) until you’re settled—or indefinitely. You’ll load the container; the storage company will take it to their remote facility until you’re ready for your belongings. 

Avoid hidden fees-before agreeing to a price, always ask, ‘Is there anything extra?’

Grant Fowler, King Moving Company

Pro tip: Get quotes from highly rated movers, and make sure the cost is all-inclusive—some companies add unexpected fees. Before agreeing to a price, always ask, “Is there anything extra?” suggests Grant Fowler, operations coordinator at King Moving Company in Plano, Texas.

For help hiring your ideal moving company, read the 19 essential questions to ask movers—your “script” for a trouble-free delivery. 

Get help from a pro: 
Find a local moving company near you.
Find a long-distance moving company. 

Assess moving insurance needs

Most full-service moving companies insure your belongings during the move, but may not provide enough coverage. If items are lost or damaged, basic insurance might only pay you 60 cents per pound, notes Chad Olsen, founder and president of Camelback Moving in Phoenix, Arizona.

Before the move, check your moving company’s policy to see how much coverage it offers. If it doesn’t cover the cost of repair or replacement (or if you’re DIYing your move), consider purchasing third-party moving insurance. 

Pro tip: Before movers arrive on site, make a list of your belongings and take photos to document their condition.

Lighten your load

The more stuff you move, the more you’ll pay. Moving out of your old home is the perfect time to get rid of some stuff. Donate, toss, or sell at a garage sale or on Craigslist, Facebook Marketplace, or other third-party apps. 

You may want to hire a mattress removal or junk removal service to pick up bulky items you’re not taking with you. Or rent a dumpster to do it yourself. 

Pro tip: Sometimes replacing items is more cost-effective than moving them.

Get help from a pro: 
Find a junk removal service near you.
Find a dumpster rental company near you.

Consider storage

For items that don’t fit in your new home, there’s always storage. Photo: Metro Self Storage Chicago

Still have too much stuff? There’s a storage solution for every need. For storing speciality items, like a car, boat, RV, wine collection, antiques, or other fragile items, read the cost of climate-controlled units.

Pro tip: Measure your existing furniture and new home before moving, to avoid “misfits” upon arrival.

Get help from a pro:
Find a storage facility near you.
Hire a home organizer.

Update your address

Before you move, inform relevant parties of your change of address and effective start date. That includes family members, friends, the post office, utility companies, phone/internet service providers, banks and credit card companies, insurance companies, the motor vehicles department (to update your driver’s license), medical providers, the Internal Revenue Service, and other organizations, memberships, or subscriptions that may need your new address.

Pro tip: Do this at least a month in advance, so you don’t miss any bills, important notifications, or lapses in service.

Pack properly

Labeling boxes by room makes unpacking easier.

It can take longer than you think to pack up your stuff, so start early. A full-service moving company can pack for you, for an extra charge. For DIY moves, you’ll need to buy packing supplies, including moving boxes, bubble wrap, and packing tape. Watch and avoid these 4 packing mistakes

Here are some tips and tricks from the pros:

  • Label moving boxes on the sides and top. 
  • Designate an “open first” box.
  • Organize boxes by room for easy unpacking.
  • Provide extra cushioning for delicate items.
  • Mix heavy items (books and cookware) with lighter ones (pillows, towels, and linens).
  • Take a photo of the box before closing it up; then number the box and photo.

If you have expensive valuables or fragile items, like antiques, musical instruments, or artwork, consider hiring specialty movers and purchasing additional moving insurance

Pro tip: You can often find moving boxes and bubble wrap for free on local sites.

Get help from a pro:
Find a moving supplies store near you.

Pack a ‘go bag’

Avoid searching through boxes for toiletries, medicines, and comfy clothes your first night with a dedicated essentials bag.

Pack a bag of essentials that you’ll need right away in your new home. These include medications, clothing, toiletries, towels, toilet paper, linens, a pillow, blankets, and a phone charger. It’ll save time searching through boxes after an exhausting move. 

Pro tip: Keep important documents, such as medical records and passports, with you during the moving process, as well as jewelry and other valuables. 

Transport your vehicle

If you’re driving to your new home, plan a route, and make hotel reservations and other travel arrangements in advance. If you’d rather fly, there are options for transporting your car: you can have it shipped, hire a driver, or ask movers to handle it. 

Pro tip: If you’re moving more than 500 miles, it’s often cheaper to ship your car than drive it.

Get help from a pro: 
Find a vehicle shipping service near you.

On moving day

On the big day, be ready before movers arrive, since many charge by the hour (or quarter hour). Have all of your belongings packed; boxes labeled, sealed, and ready to be loaded; and reserve any parking spaces or elevators necessary to load the moving truck. 

Ask your movers to cover floors to avoid damage during loading (you may need to request this in advance). Do a final walk-through to double-check that you’re not leaving anything behind.


If the movers did a good job, the rule of thumb is to tip 15-20%.

Vojin Popovic, Founder anD CEO of Piece of Cake Moving & Storage

What to tip your movers

Before moving day, withdraw cash to tip the movers. If the moving team did a good job, tipping 15–20% of the total cost is customary, says Vojin Popovic, founder and CEO of Piece of Cake Moving & Storage in New York City. Watch tips on tipping movers

Pro tip: If you’re hiring separate local crews to handle loading and unloading your long-distance move, make sure to tip the first crew after loading and the second when they finish unloading.

Cleaning your old place

Consider hiring a move-out cleaning service to deep-clean your home after your belongings have been removed. For renters, this type of professional cleaning service (plus a dedicated carpet cleaner) can ensure that your security deposit is returned after walkthrough. 

If you’ve sold your home, most real estate contracts require you to leave it in a “broom clean” condition for the new owners. That means removing all your belongings, cleaning out the refrigerator, removing trash, and sweeping or vacuuming. 

Get help from a pro: 
Find a move-out cleaning service near you.
Find a carpet cleaning professional near you.

Say hello to your new home

Your move isn’t complete until you unpack and get everything up and running.

Unpack and set up

If you hired full-service movers, they’ll unpack your belongings in addition to unloading them, and reassemble furniture. Consider hiring an expert for TV mounting

Pro tip: Unpack the bed first. That way you can enjoy a good night’s sleep after a long day of moving. 

Lock up

Next, tackle essential security tasks, such as changing existing locks (including the mailbox), installing new smart locks, doorbell cameras, or home security systems. A licensed locksmith or handyperson has the know-how to install these items.  

Whether you’re a renter or new homeowner, the New homeowner checklist is your essential guide for setting up house, including security concerns, childproofing, transferring utilities, and other necessary steps to ensure your new home is safe and functioning properly.

Get help from a pro: 
Find a licensed locksmith near you.
Find a handyperson near you.

Clean up… again

After the basics are set up, the last thing left is clean up. Regular moving services will take back moving supplies like dollies and blankets. Disposing of boxes, bubble wrap, and other packing materials is up to you. 

Moving can kick up a lot of dust—and track dirt inside—so you consider hiring an experienced cleaning team for move-in cleaning, plus contacting a junk removal and hauling service or renting a dumpster for excess trash and yard debris

[gravityform id="4" title="false" ajax="true"]
<script type="text/javascript">var gform;gform||(document.addEventListener("gform_main_scripts_loaded",function(){gform.scriptsLoaded=!0}),window.addEventListener("DOMContentLoaded",function(){gform.domLoaded=!0}),gform={domLoaded:!1,scriptsLoaded:!1,initializeOnLoaded:function(o){gform.domLoaded&&gform.scriptsLoaded?o():!gform.domLoaded&&gform.scriptsLoaded?window.addEventListener("DOMContentLoaded",o):document.addEventListener("gform_main_scripts_loaded",o)},hooks:{action:{},filter:{}},addAction:function(o,n,r,t){gform.addHook("action",o,n,r,t)},addFilter:function(o,n,r,t){gform.addHook("filter",o,n,r,t)},doAction:function(o){gform.doHook("action",o,arguments)},applyFilters:function(o){return gform.doHook("filter",o,arguments)},removeAction:function(o,n){gform.removeHook("action",o,n)},removeFilter:function(o,n,r){gform.removeHook("filter",o,n,r)},addHook:function(o,n,r,t,i){null==gform.hooks[o][n]&&(gform.hooks[o][n]=[]);var e=gform.hooks[o][n];null==i&&(i=n+"_"+e.length),gform.hooks[o][n].push({tag:i,callable:r,priority:t=null==t?10:t})},doHook:function(n,o,r){var t;if(r=Array.prototype.slice.call(r,1),null!=gform.hooks[n][o]&&((o=gform.hooks[n][o]).sort(function(o,n){return o.priority-n.priority}),o.forEach(function(o){"function"!=typeof(t=o.callable)&&(t=window[t]),"action"==n?t.apply(null,r):r[0]=t.apply(null,r)})),"filter"==n)return r[0]},removeHook:function(o,n,t,i){var r;null!=gform.hooks[o][n]&&(r=(r=gform.hooks[o][n]).filter(function(o,n,r){return!!(null!=i&&i!=o.tag||null!=t&&t!=o.priority)}),gform.hooks[o][n]=r)}});</script> <div class='gf_browser_unknown gform_wrapper gform_legacy_markup_wrapper' id='gform_wrapper_4' ><div id='gf_4' class='gform_anchor' tabindex='-1'></div> <div class='gform_heading'> <span class='gform_description'></span> </div><form data-form-name='Newsletter Signup Popup' method='post' enctype='multipart/form-data' target='gform_ajax_frame_4' id='gform_4' action='/community/your-a-z-moving-checklist/#gf_4' novalidate> <div class='gform_body gform-body'><ul id='gform_fields_4' class='gform_fields top_label form_sublabel_below description_below'><li id="field_4_1" class="gfield field_sublabel_below field_description_below hidden_label gfield_visibility_visible gf-email" data-field-class="gf-email" data-js-reload="field_4_1"><label class='gfield_label screen-reader-text' for='input_4_1' >youremail@address.com</label><div class='ginput_container ginput_container_email'> <input name='input_1' id='input_4_1' type='email' value='' class='large' placeholder='youremail@address.com' aria-invalid="false" /> </div></li><li id="field_4_2" class="gfield gform_validation_container field_sublabel_below field_description_below gfield_visibility_visible" data-js-reload="field_4_2"><label class='gfield_label' for='input_4_2' >Name</label><div class='ginput_container'><input name='input_2' id='input_4_2' type='text' value='' autocomplete='new-password'/></div><div class='gfield_description' id='gfield_description_4_2'>This field is for validation purposes and should be left unchanged.</div></li></ul></div> <div class='gform_footer top_label'> <input type='submit' id='gform_submit_button_4' class='gform_button button' value='Submit' onclick='if(window["gf_submitting_4"]){return false;} if( !jQuery("#gform_4")[0].checkValidity || jQuery("#gform_4")[0].checkValidity()){window["gf_submitting_4"]=true;} ' onkeypress='if( event.keyCode == 13 ){ if(window["gf_submitting_4"]){return false;} if( !jQuery("#gform_4")[0].checkValidity || jQuery("#gform_4")[0].checkValidity()){window["gf_submitting_4"]=true;} jQuery("#gform_4").trigger("submit",[true]); }' /> <input type='hidden' name='gform_ajax' value='form_id=4&amp;title=&amp;description=1&amp;tabindex=0' /> <input type='hidden' class='gform_hidden' name='is_submit_4' value='1' /> <input type='hidden' class='gform_hidden' name='gform_submit' value='4' /> <input type='hidden' class='gform_hidden' name='gform_unique_id' value='' /> <input type='hidden' class='gform_hidden' name='state_4' value='WyJbXSIsImE0YjFiMmUxY2IxMWVhYTljM2FhNzdkODk4NDUzZmY0Il0=' /> <input type='hidden' class='gform_hidden' name='gform_target_page_number_4' id='gform_target_page_number_4' value='0' /> <input type='hidden' class='gform_hidden' name='gform_source_page_number_4' id='gform_source_page_number_4' value='1' /> <input type='hidden' name='gform_field_values' value='' /> </div> </form> </div> <iframe style='display:none;width:0px;height:0px;' src='about:blank' name='gform_ajax_frame_4' id='gform_ajax_frame_4' title='This iframe contains the logic required to handle Ajax powered Gravity Forms.'></iframe> <script> gform.initializeOnLoaded( function() {gformInitSpinner( 4, 'https://blog.yelp.com/wp-content/plugins/gravityforms/images/spinner.svg' );jQuery('#gform_ajax_frame_4').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_4');var is_confirmation = jQuery(this).contents().find('#gform_confirmation_wrapper_4').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_4').html(form_content.html());if(form_content.hasClass('gform_validation_error')){jQuery('#gform_wrapper_4').addClass('gform_validation_error');} else {jQuery('#gform_wrapper_4').removeClass('gform_validation_error');}setTimeout( function() { /* delay the scroll by 50 milliseconds to fix a bug in chrome */ jQuery(document).scrollTop(jQuery('#gform_wrapper_4').offset().top - mt); }, 50 );if(window['gformInitDatepicker']) {gformInitDatepicker();}if(window['gformInitPriceFields']) {gformInitPriceFields();}var current_page = jQuery('#gform_source_page_number_4').val();gformInitSpinner( 4, 'https://blog.yelp.com/wp-content/plugins/gravityforms/images/spinner.svg' );jQuery(document).trigger('gform_page_loaded', [4, current_page]);window['gf_submitting_4'] = 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_4').replaceWith(confirmation_content);jQuery(document).scrollTop(jQuery('#gf_4').offset().top - mt);jQuery(document).trigger('gform_confirmation_loaded', [4]);window['gf_submitting_4'] = false;wp.a11y.speak(jQuery('#gform_confirmation_message_4').text());}, 50);}else{jQuery('#gform_4').append(contents);if(window['gformRedirect']) {gformRedirect();}}jQuery(document).trigger('gform_post_render', [4, current_page]);} );} ); </script>
[gravityform id="4" title="false" ajax="true"]
<div class='gf_browser_unknown gform_wrapper gform_legacy_markup_wrapper' id='gform_wrapper_4' ><div id='gf_4' class='gform_anchor' tabindex='-1'></div> <div class='gform_heading'> <span class='gform_description'></span> </div><form data-form-name='Newsletter Signup Popup' method='post' enctype='multipart/form-data' target='gform_ajax_frame_4' id='gform_4' action='/community/your-a-z-moving-checklist/#gf_4' novalidate> <div class='gform_body gform-body'><ul id='gform_fields_4' class='gform_fields top_label form_sublabel_below description_below'><li id="field_4_1" class="gfield field_sublabel_below field_description_below hidden_label gfield_visibility_visible gf-email" data-field-class="gf-email" data-js-reload="field_4_1"><label class='gfield_label screen-reader-text' for='input_4_1' >youremail@address.com</label><div class='ginput_container ginput_container_email'> <input name='input_1' id='input_4_1' type='email' value='' class='large' placeholder='youremail@address.com' aria-invalid="false" /> </div></li><li id="field_4_2" class="gfield gform_validation_container field_sublabel_below field_description_below gfield_visibility_visible" data-js-reload="field_4_2"><label class='gfield_label' for='input_4_2' >Email</label><div class='ginput_container'><input name='input_2' id='input_4_2' type='text' value='' autocomplete='new-password'/></div><div class='gfield_description' id='gfield_description_4_2'>This field is for validation purposes and should be left unchanged.</div></li></ul></div> <div class='gform_footer top_label'> <input type='submit' id='gform_submit_button_4' class='gform_button button' value='Submit' onclick='if(window["gf_submitting_4"]){return false;} if( !jQuery("#gform_4")[0].checkValidity || jQuery("#gform_4")[0].checkValidity()){window["gf_submitting_4"]=true;} ' onkeypress='if( event.keyCode == 13 ){ if(window["gf_submitting_4"]){return false;} if( !jQuery("#gform_4")[0].checkValidity || jQuery("#gform_4")[0].checkValidity()){window["gf_submitting_4"]=true;} jQuery("#gform_4").trigger("submit",[true]); }' /> <input type='hidden' name='gform_ajax' value='form_id=4&amp;title=&amp;description=1&amp;tabindex=0' /> <input type='hidden' class='gform_hidden' name='is_submit_4' value='1' /> <input type='hidden' class='gform_hidden' name='gform_submit' value='4' /> <input type='hidden' class='gform_hidden' name='gform_unique_id' value='' /> <input type='hidden' class='gform_hidden' name='state_4' value='WyJbXSIsImE0YjFiMmUxY2IxMWVhYTljM2FhNzdkODk4NDUzZmY0Il0=' /> <input type='hidden' class='gform_hidden' name='gform_target_page_number_4' id='gform_target_page_number_4' value='0' /> <input type='hidden' class='gform_hidden' name='gform_source_page_number_4' id='gform_source_page_number_4' value='1' /> <input type='hidden' name='gform_field_values' value='' /> </div> </form> </div> <iframe style='display:none;width:0px;height:0px;' src='about:blank' name='gform_ajax_frame_4' id='gform_ajax_frame_4' title='This iframe contains the logic required to handle Ajax powered Gravity Forms.'></iframe> <script> gform.initializeOnLoaded( function() {gformInitSpinner( 4, 'https://blog.yelp.com/wp-content/plugins/gravityforms/images/spinner.svg' );jQuery('#gform_ajax_frame_4').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_4');var is_confirmation = jQuery(this).contents().find('#gform_confirmation_wrapper_4').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_4').html(form_content.html());if(form_content.hasClass('gform_validation_error')){jQuery('#gform_wrapper_4').addClass('gform_validation_error');} else {jQuery('#gform_wrapper_4').removeClass('gform_validation_error');}setTimeout( function() { /* delay the scroll by 50 milliseconds to fix a bug in chrome */ jQuery(document).scrollTop(jQuery('#gform_wrapper_4').offset().top - mt); }, 50 );if(window['gformInitDatepicker']) {gformInitDatepicker();}if(window['gformInitPriceFields']) {gformInitPriceFields();}var current_page = jQuery('#gform_source_page_number_4').val();gformInitSpinner( 4, 'https://blog.yelp.com/wp-content/plugins/gravityforms/images/spinner.svg' );jQuery(document).trigger('gform_page_loaded', [4, current_page]);window['gf_submitting_4'] = 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_4').replaceWith(confirmation_content);jQuery(document).scrollTop(jQuery('#gf_4').offset().top - mt);jQuery(document).trigger('gform_confirmation_loaded', [4]);window['gf_submitting_4'] = false;wp.a11y.speak(jQuery('#gform_confirmation_message_4').text());}, 50);}else{jQuery('#gform_4').append(contents);if(window['gformRedirect']) {gformRedirect();}}jQuery(document).trigger('gform_post_render', [4, current_page]);} );} ); </script>