The do it yourself resource for homeowners from home improvement professionals.

How to Install Tile on a Bathroom Floor

When it comes to tiling, all you need is the right materials and a little patience and you can have a beautiful back-splash, shower, floor, or any other tiled area. In this how-to, our home improvement experts explain the steps behind tiling a bathroom floor.

What you’ll need know, for how to install tile on a bathroom floor: 

  • Circular Saw
  • Cement Board
  • Drill
  • Screws
  • Ceramic Tiles
  • Tile Spacers
  • Tile Saw
  • Thin-Set Mortar
  • Notched Trowel
  • Grout
  • Damp Sponge

Before you lay your tile floor, you’ll want to make sure you have an underlay. If you don’t already, follow these steps to install one:

  1. Measure your bathroom floor, then use a circular saw to cut your cement board underlay into panels you can easily fit together.
  2. Once the panels are laid across your floor, use a drill to drive screws through the underlay and into your sub-floor (space them about 6 inches apart and make sure they lay flat).

Next, it’s time to lay your tile floor.

  1. If you’re laying any trim along the edges of your floor, do that first before you start on your tile work.
  2. Lay the tiles out on the floor to determine exactly where you want to put them. (Try to lay them so you use as many whole tiles as possible.)
  3. Install your spacers between the tiles to make sure they’re square and evenly spaced.
  4. Once you’ve determined your layout, use your tile saw to cut any tiles that need to be smaller.
  5. After you’ve once again determined your layout, remove your tiles and apply a coating of thin-set mortar to the floor using a notched trowel.
  6. Lay your tiles and spacers down on top of the mortar and let the mortar dry about 24 hours.
  7. Once the mortar is dry, remove the spacers and apply grout to fill in the spaces between the tiles.
  8. After applying all of your grout, use a damp sponge to wipe away any excess. Make sure you thoroughly clean your tiles to avoid grout haze.
  9. Wait at least 24 hours before walking on your new tile bathroom floor.

Need help with this project?

We have trained professionals that can help.

Contact us today. 1-877-246-4354 Get Estimate

P.J. Fitzpatrick, Inc.

21 Industrial Blvd
New Castle, DE 19720


  • NJ Lic. #13VH10727200
  • DE Lic. #2009603070
  • PA Lic. #PA011323
  • MD Lic. #105494

© 2021 P.J. Fitzpatrick, Inc.

Website by the Prager Microsystems, Inc. Digital Marketing Agency

Live Chat With Us
[gravityform id="20" title="false" description="false"]
<div class='gf_browser_unknown gform_wrapper' id='gform_wrapper_20' ><form method='post' enctype='multipart/form-data' id='gform_20' action='/diy/bathtub-installation/install-tile-bathroom-floor/'> <div class='gform_body'><ul id='gform_fields_20' class='gform_fields top_label form_sublabel_below description_below'><li id='field_20_1' class='gfield gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label' for='input_20_1' >Your Name:<span class='gfield_required'>*</span></label><div class='ginput_container ginput_container_text'><input name='input_1' id='input_20_1' type='text' value='' class='medium' aria-required="true" aria-invalid="false" /></div></li><li id='field_20_4' class='gfield gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label' for='input_20_4' >Phone Number:<span class='gfield_required'>*</span></label><div class='ginput_container ginput_container_phone'><input name='input_4' id='input_20_4' type='text' value='' class='medium' aria-required="true" aria-invalid="false" /></div></li> </ul></div> <div class='gform_footer top_label'> <input type='submit' id='gform_submit_button_20' class='gform_button button' value='Submit' onclick='if(window["gf_submitting_20"]){return false;} window["gf_submitting_20"]=true; ' onkeypress='if( event.keyCode == 13 ){ if(window["gf_submitting_20"]){return false;} window["gf_submitting_20"]=true; jQuery("#gform_20").trigger("submit",[true]); }' /> <input type='hidden' class='gform_hidden' name='is_submit_20' value='1' /> <input type='hidden' class='gform_hidden' name='gform_submit' value='20' /> <input type='hidden' class='gform_hidden' name='gform_unique_id' value='' /> <input type='hidden' class='gform_hidden' name='state_20' value='WyJbXSIsIjExY2Q2ODU0YWI0Y2RiZGJiMzBhMmEyNzEwY2IwZDM1Il0=' /> <input type='hidden' class='gform_hidden' name='gform_target_page_number_20' id='gform_target_page_number_20' value='0' /> <input type='hidden' class='gform_hidden' name='gform_source_page_number_20' id='gform_source_page_number_20' value='1' /> <input type='hidden' name='gform_field_values' value='' /> </div> </form> </div><script type='text/javascript'> jQuery(document).bind('gform_post_render', function(event, formId, currentPage){if(formId == 20) {jQuery('#input_20_4').mask('(999) 999-9999').bind('keypress', function(e){if(e.which == 13){jQuery(this).blur();} } );} } );jQuery(document).bind('gform_post_conditional_logic', function(event, formId, fields, isInit){} );</script><script type='text/javascript'> jQuery(document).ready(function(){jQuery(document).trigger('gform_post_render', [20, 1]) } ); </script>