The distance between Cape Town and Johannesburg on the N1 is 1398 km. If you drive at an average speed of 112 km/h (70 miles/h), your travel time will be 12 hours 28 minutes. So... you will in all likelihood be looking for a stop along the way.
There are toll roads between Johannesburg and Bloemfontein but after that that roads are free, with the sole exception being the 12km Huguenot Tunnel between Worcester and Paarl. Between Bloemfontein and Cape Town you're likely to encounter a considerable number of heavy trucks on weekdays, and they can be a nightmare. (Poor traffic policing means they often tailgate in convoys which are difficult to overtake.) So, travelling on weekends and especially on Sundays promises a much more pleasant trip. And stopping over in Bloemfontein on a Sunday, as we discovered recently, makes the city a delightful place to explore without traffic and bustle. It really does have some exceptional historic buildings.
The halfway point is catered for at Gariep Dam on the Free State side of the Orange River and Colesberg, a surprising and historic little town in the Northern Cape.
We've included three towns which are detours off the N1 but each is a rather special destination which will add value to your trip. Parys on the Vaal River is small town tonic, with some exceptional art and antique shops. It's a 17km detour off the N1 on the R59. (Maybe taking the R721 to Kroonstad will be shorter than the N1 so maybe someone can comment on that as an alternative?)
Prince Albert, just south of Beaufort West and 45km off the N1, is one of the most picturesque towns in SA and the gateway to the Swartberg Pass (a bucket list item). Many people include Sutherland on their bucket list - a pleasant village and the star-gazing capital of South Africa with its big telescopes... and even wine estates! It's also the coldest town in SA. (114km off the N1.)
If you're heading from Johannesburg, an alternative route to Cape Town means turning off at either Colesburg or Beaufort West, and taking Route 62.
Where to stay?