but closing old accounts can have a negative effect on your credit score.
indeed...particularly in two ways:
1) reduce the average age of your accounts (older is better). You shouldn't close a card if it's your oldest account on your report--if it's an annual fee card, see if you can switch to a no-fee version.
2) increase the utilization of your availability credit. (lower is better).
If you keep these things in mind, go ahead and cancel.