Instead of our cruise ship's shore excursions, we booked a 2-day private tour for four people with SPB Tours. It is a licensed tour company and it is outstanding. We had a private driver and tour guide and it was cheaper than if we had booked separate tours through the ship.
Here's a link:
http://www.spb-tours.com/st-petersburg/en/node

I booked with SPB after reading numerous positive reports online.

Karen