Articles on this site contain affiliate links, meaning we may be compensated if you purchase a product or service after clicking them. Read our full disclosure policy here.
From the wildlife-filled savannah of Kruger National Park to Durban’s beaches and Cape Town’s towering Table Mountain, South Africa has a seemingly endless list of attractions for visitors.
It’s a big country, though, and while Wi-fi is readily available in the cities, it’s not always free or particularly fast. Fortunately, staying connected with a local SIM card is easy and inexpensive, and data speeds can be surprisingly quick.
Here’s what you need to know.
There are four physical cell providers in South Africa, plus a small number of companies that resell service on those networks. Vodacom and MTN have the best coverage, especially outside the cities, with Cell C and Telkom trailing behind.
LTE data is available with all providers if your phone supports the right frequencies.
I decided to pick up a Vodacom SIM, since the company boasted of having the fastest network in the country. My traveling companion bought one from MTN for comparison.
Both MTN and Vodacom have kiosks in some or all of South Africa’s international airports, and Vodacom makes life particularly easy for overseas visitors with its B4IGO service.
This lets you buy the SIM and call/text/data package ahead of time, pay via Paypal or international credit card, and pick it up on arrival. Note, though, that you’ll pay quite a lot more for the convenience.
For cheaper rates, buy your SIM at any of the other official stores — you’ll find several in the major cities. I bought my Vodacom SIM in Cape Town’s central business district, while my companion bought her MTN version at the sprawling Gateway mall just outside Durban.
In neither case did the staff seem particularly excited about their jobs, but it only took a few minutes to buy and activate the SIM and package. You’ll need your passport, and potentially proof of where you’re staying in the form of a booking confirmation. I wasn’t asked for it, but my companion was.
Note that many of the places displaying MTN or Vodacom logos don’t sell SIMs, or can’t register them to you. You’ll have no problem topping up there, but for the initial purchase, look for official stores and certain supermarkets.
As long as you don’t buy at the airport, staying connected is inexpensive in South Africa. I paid all of one rand (~7c) for the SIM, and 149 ZAR (~$11) for 1GB of data, valid for a month. I added an extra 20 ZAR for calls and texts, and was good to go.
With MTN, my companion paid 3.50 ZAR for the SIM, and 260 ZAR (~$20) for 2GB of data, plus a bonus 1GB, valid for a month.
If you’re a heavy data user, the data bonuses make MTN a cheaper option than Vodacom. For light to moderate use, there’s little difference.
MTN is the only South African provider that roams in Swaziland. Your existing data, call and text packages don’t work there, however, and you’ll pay a relatively expensive 1 rand per megabyte for data.
You’ll see MTN and Vodacom logos in pretty much every convenience store window, plus supermarkets, gas stations and elsewhere.
Reload vouchers come in a range of different values — just pick and mix to make up the amount you need.
Coverage and Data Speeds
Coverage was generally good with both Vodacom and MTN, even halfway up Table Mountain and other out-of-the-way locations.
I did notice a few occasions, though, when my phone reported full signal, but web pages would time out or take forever to load. Waiting a couple of minutes, or walking further down the street, always fixed the problem.
With both providers, 3G speeds were towards the high end of the range, as shown below. LTE speeds with Vodacom hovered around 30Mbps.
Roaming with MTN in Swaziland was as simple as adding extra credit (it can be done in both South Africa and Swaziland), then activating data roaming after arriving in the country. Coverage was good, both in Mbabane and Manzini, and in the countryside and national parks.
Check out our guides to buying SIM cards in many other countries here.