Our kids LOVED Stingray City. We used an independent operator, Aquarius Sea Tours and they were fantastic. They gave us pizza and took pics of us underwater and with the stingrays all at no extra charge.
We chose to go to Red Stripe Beach which was only about a seven minute drive from the port. It was very difficult to find out a lot of info prior to sailing about this beach and we almost didn't go. But I am so glad we did because it was just gorgeous! Turquoise waters, white sand beach...perfect! It wasn't very big but they had bathrooms, changing rooms, food, lifeguards. For the money, you couldn't beat this beach!!! And it was close by which was good because we were traveling with our kids and didn't want the long drive to Ocho Rios or Montego Bay.
We rented a cabana on Nellie's beach and it was just lovely! The cabana was perfect, right on the beach so could see our kids and be nearby. We had a great lunch at the Barefood beach. Our attendant couldn't have been more helpful and caring. And the beach itself was very clean and the water was very clear and the sand was pretty smooth. It was very cool to be able to see our cruise shipped parked out past the beach area.
I personally would recommend the beach cabanas vs. the cabanas over the water because I think the water access was much easier from the beach. Plus they are less expensive.