Lavender seems to work really well. I buy lavender oil and put in spray bottle and lightly spray their beds about once a month.
I only buy doggie shampoo w/lavender in it.
I also spray around my front yard because neighbors dogs like my huge lawn
and they have lots of fleas.
I've never had a flea problem (knock on wood) and none of my 5 yorkies are on any type of treatments. I take them to parks and beach but always bathe them right when I get home.
Another thing I do daily is burn lavender oil inside my home and in my backyard. It's relaxing and fleas hate the smell
Hope this helps - Good Luck!!!