Credit scores are used to evaluate the likelihood that you will pay an account as per the agreement. The best way to improve your credit score is to continue paying all of your accounts as per the agreement for a very long time. This means making on time payments, never late, of at least the minimum payment (and preferably more than this) on every account. Canceling an account, even one with a few late payments or other derogatory events, does not do you any immediate good because the credit history continues to be counted for many years even on canceled accounts.
Credit scoring algorithms usually involve conditional probabilities. For example, to calculate the probability of a delinquency, one would divide the number of delinquencies in a given timeframe (say, 7 years) by the total number of events (payment, delinquent payment, nonpayment) in that timeframe. If you were delinquent 30 times in the 7 years on two accounts that were open for the full 7 years, that would yield a probability of 30 / (2 x 7 x 12) = 30 / 168 = 17.9%. Canceling a good card will eventually cause the denominator to decrease, which then causes the probability of a delinquency to increase. This is a simplistic example, as credit scores involve combinations of many conditional probabilities both for the individual account history and marketplace baseline statistics (usually as a weighting factor). But the takeaway is that it is very easy to get a bad credit score, but a long slow process to build a good credit score.
The bottom line advice is (1) don't constantly chase better credit card deals, (2) stick with a few credit cards, (3) pay off the balance in full at the end of the month, (4) keep your other cards open, but cut them up so you'll resist the urge to spend more than your means and (5) make sure you pay at least the minimum payment on every card on time.
3 years is a pretty thin credit history. Most of my cards have credit histories of 10-20 years, never late with a payment. (Actually, I was a few days late on a payment 5 years ago, when I was hospitalized for more than a week for cancer treatment. The credit card issuer considered this extenuating circumstances and did not report the late payment. It helped that I had never been late in a decade with that credit card.) I always pay off my balance in full at the end of the month (never spending more than I can afford to repay in full each month). Since I don't carry a balance, interest rates don't matter to me. Instead, I focus on cards that do not involve an annual fee, and usually also ones that provide a rebate of some kind.
If you carry a balance, you'll prefer cards with lower interest rates. But then don't carry too many cards, as the annual fees can add up. Also, if you carry a balance, you need to work on reducing that balance. This means cutting up the cards to stop spending money on new purchases until you can pay off your old purchases.