The cheating cabbies have two settings on their meter. One is for normal behaviour, the other setting they use to prove that where ever you go, taxi drivers are not to be trusted. It makes the meter run incredibly fast. So always negotiate a price, even if they have a meter, all be it a plus-minus price. I got 'ff'-ed royally, even though my Russian is okay. Did not know this trick yet though. Beware of cabbies everywhere, but surely here in St. Petersburg. I have better experience with the illegal cabs (the ones you hail down by just standing by the road), here and in Moscow.
I notice most of the posts describe how things were or imagined a number of years ago. The posts that did have some grain of reality are outdated and reflect little on what is true now.
The best and more reliable taxis are now part of the modern companies who have formed in recent years to standardize operations.
They can be identified by having newer cars, mostly of Asian manufacture, with large letters painted on the sides showing the phone number of their dispatcher. Call the dispatcher and describe here you are, when you need to be picked up and where you are going. The dispatcher will tell you the waiting time, usually 5-10 minutes max, the color of the car and the license plate. She will give a firm price so there is no need to negotiate with the driver. The prices are much more reasonable than they were in the past, and are not adjusted by assumed wealth(many Russians spend more on services now than tourists who are know for being rather frugal) or nationality but by zone.
Unfortunately most dispatchers do not speak foreign languages. Call anyway, someone there will likely know how to communicate with you even if they have to pass the phone around. One dispatch office I know has some English speakers is "7-000-000" and another is "6-000-000" but a bit less than the previous dispatch number.
Getting a car from the airport is even easier now, and cheaper, there are taxi kiosks on either side of the exit door of the terminal. The prices are posted dependent on zone. From the airport to city center is around 600-800 Rubles in the Summer. From the city center to the airport it is 500-600.
Parked on the curb in the city center are many older Volga taxis with drivers reading or standing next to their cars, They are the remaining old style independent taxis who are mostly responsible for the tales of high prices. They will usually prefer to wait all night for a sucker than accept a reasonable fee for a fare. These will quote a very high price hoping you do not understand them or hoping you get in and he takes off before a price is negotiated. In that case, he can legally demand any price he wants if not agreed on before. Avoid those taxis. They are fading from use however since the dispatch taxis are newer, cleaner and a lot cheaper, more professional.
The traditional way to get around the city, particularly after midnight when public transportation shuts down it is hail any car passing by. In the past, that meant most cars but now, the economy is such that few people would bother with picking up a stranger for the paid hitch-hiking, unless they just want to chat and practice their English. It is harder now to get a casual taxi than in the past because people do not need the income.
It is still considered a safe way to travel and it is very common for women alone at night, because the part time amateur taxis have a good reputation for safety. Among my female friends, mostly in their 20s and 30s, the report is that about 1/2 the time the ride offer is free but as a male I always have to pay.
Now, the dispatch taxis are also cutting into that market as well by becoming accepted as reliable transportation options. If in a theater or restaurant, call a few minutes before you step outside and have the car waiting for you.
I ordered a taxi from my hotel to the airport. "A blue Volga will be waiting for you at 7:30", said the hotel receptionist. It sure did, with a driver who pretended not to understand even one word of English. When I had inquired at the hotel how much the trip should cost, the answer was 600-700 Rubles. When I asked the driver the same question, the reply was: "No English! Meter!"
The meter reading kept advancing in a frightening speed while we were driving. We were still inside the city when it showed 800 Rubles. I mentioned to the driver that the meter was not right, but his response remained: "No English!".
I then moblized my minimal Russian vocabulary and said very assertively:
"Meter ne Khorosho! [Meter not good!] Stop se-chass! [Stop now!] I take avtobus!"
Sure enough, the driver looked a bit scared, and miraculousy his English came back to him: "OK, don't worry, I take you to Pulkovo airport for 600 Rubles, OK?!"
I didn't say a word, he drove all the way to the airport, and I paid 600 Rubles.
It is very normal for people to flag down drivers on the road to hitch a ride for a small fee. This was completely odd to me but luckily we had met two students from the night before and they showed us around St. Petersburg for 2 days. Instead of taking cabs they would flag down just a regular driving person, negotiate a price- if they were going in the same direction that we were and decide to take a ride. We did it about 3 times. I was scared, for sure, the first time but it's quite common there. Of course, if you don't speak Russian or aren't with some who does, you can't really do it anyway. In my mind, I'd rather pay $15 for a cab instead of $2 and risk my safety. However, looking back it was kind of fun to know we did it the way the locals do.
OK, so I would strongly suggest if you are not accompanied by a Russian, you should hire taxis from the hotel or out in front of the hotels. One of the ways people get around (and make money) is to flag down passing cars, private cars, and negotiate a price with a total stranger to take them where they want to go. We had 2 friends from Moscow with us and did it quite a few times, but it was rather awkward at first - and seemed dangerous, but in the end we were fine. Some taxis are quite expensive and especially if you speak no Russian and are on your own - from what I experienced! Taxis from the hotel cost around 20 bucks depending on where you were going - but there are no meters so negotiate up front!!!
Buckle-up when you get into taxis.
I was in a car-crash with two other Westerners, and the driver, from Azerbaijan, was merrily chatting away to a guy (Spencer) who could speak some Russian.
Driving at 60mph past red-lights at 0100hrs is an invitation to dance with the devil, and sure enough, someone rammed into the side of our taxi.
We were all ok, but the driver had a bloody nose. Slightly pissed, we decided not to wait for the friendly militia to finger us for some green, so we coughed up the fare, and scarpered to the 'Tribune' bar opposite the Bronze Horseman.
Do not use gypsy cabs or accept rides in cabs that already have a rider. In Russia, taxi fees are usually negotiated with the driver ahead of time.
In Russia there is a bit of a racket in taxis. Think twice before getting into a taxi that has more than one person sitting in it. Almost all taxi-related crimes happen after dark and usually with people they pick up on Nevsky or other areas frequented by the well-to-do, like bars. Just exercise caution.
St Petersburg isn't really more dangerous than any other large city. Many people are scared of the Russian mafia, but they are more a threat to companies than to tourists. Having said that, you must be aware of small crime in St Pet and use a lot of common sense. Don't wander off into tacky areas, avoid quiet streets after dark and don't hail cars for taxi rides when you're alone, use official taxi's instead.
Do not think, please, that I want to frighten you, but Saint Petersburg IS a criminal city, like other capitals of the world. Be careful at night, use only municipal taxies, don't ask for a lift in a private car - you never know the driver's intentions. Do not carry much cash at a time.
Unless you are making the trip to or from the airport, a taxi ride in St. Petersburg should not cost you more than $5 (roughly 150 rubles). The metro system is fantastic, so unless you are pressed for time you don't need the taxi services. As with everything in Russia, as soon as they know you aren't Russian, the prices go up. Hold your ground on cab fare prices, you won't offend anyone. Hailing a cab is similar to any other European country. Stand on the curb or step off slightly and extend your arm out and slightly downward. Don't be surprised if a regular citizen stops to see where you are going - it's a way for them to make some extra money.