Bathroom floor tiles are generally ceramic, which should be laid on a flat, firm surface. Cement board is the preferred underlayment for ceramic floors, but you can lay them directly over wood floors if your situation requires it, with a little extra preparation. It's important to resecure the flooring to stop any movement in the wood, and to fill any gaps or holes that might cause uneven pressure under the tiles.
Pull the toilet. Turn off the water line behind the toilet. Disconnect the water line with a wrench. Remove the two floor bolts, and lift the toilet up and out.
Find and secure any loose areas of the floor, walking over the floor testing for movement and using your screwgun to sink wood screws at any areas that move.
Pour liquid floor leveller into all gaps, holes and spaces on the floor, letting it spread out and level itself. Let the level set for 24 hours.
Divide the floor into four sections by snapping two intersecting chalk lines perpendicular to each other.
Spread thin set mortar onto the centre of the floor, over the intersection, covering a few square feet. Press the first tiles into place at the intersection, bordered by the lines. Set spacers between them.
Spread more mortar and lay more tiles, building out from the middle toward the edges of the floor. Put spacers between all of them. Cover the whole floor. Cut the tiles around the toilet drain and at the edges of the floor, as needed, on a tile cutter, setting them with the cut sides facing the wall.
Let the tiles set for 24 hours. Pull out the spacers.
Spread grout over the floor with a rubber grout float, pressing it into the spaces between the tiles. Use a damp sponge to wipe up the residual grout. Let it set for a day before reinstalling the toilet.