Websites to calculate the optimal Bitcoin transaction fees are e.g.:
https://Estimatefee.com "is a simple website that calculates the cost (in satoshis and USD) for a bitcoin transaction based on how much of hurry you are to move your coins from A to B."
https://Bitcoinfees.info "displays slow/medium/fast fees in USD with no muss and no fuss."
I've tried Earn.com and the ones you mentioned before, and I found all of them to be overestimating fees. I suggest this one, it's far more accurate:
https://coinb.in/#fees