Just to offer another opinion, as is my wont to do. It may not be bad to cancel those cards. A lot depends on your overall length of credit history. If you have a decent overall length of credti history (e.g., 7+ years), then dropping the blood sucking yearly fee cards that have very short history will be money in your pocket, with minimal effect on your length of history. In fact, if they are just closed, and not deleted, they will still count in your history, without the yearly fee.
If they are also sub-prime cards, they may unimpress lendors looking at your full CR.