I have two dogs running around, wrecking havoc in my house and people are often surprised that my rugs stay in place. I actually have a secret hidden under my rugs. I know everyone is aware of the no skid rug pads but if you have an active household (or even a Roomba) a rug pad by itself won't usually cut it.
For my house I have some, standard pile scatter rugs and a large flat weave rug that centers the living space. For both types I use the Command Picture Hanging Strips
Following the instructions I use rubbing alcohol to wipe the spot on the floor where I want the strip to go, and then snap two of them together and place on the rug and on the floor where I want them. I generally use one strip per corner. For my rugs with a sturdy hard backing I can just attach the strips directly to the bottom of the rug and am done.
For my soft woven flat rug, it doesn't have much structure so I do use a rug pad under it to provide stability in the middle of the rug but I still use the Command strips in the corners. Since my dog loves to careen through the house like Mad Max I had added additional command strips to the corners to help keep them in place as well as using a curved upholstery needle to roughly stitch the strips onto the back of the rug. Since our flat weave rug dose not have a hard backing the command glue doesn't form a very long term bond.
This is a great solution for us because it's easy to un-velcro and move the rug for mopping etc but I know it won't damage my wood floors!
I love beautifying my home, including renovations, projects, and handy tips to make life a little easier