Probably not the best person to ask as I am not usually a beach holiday /resort type person, usually just do it as a few days add on to a city break. Also I was thinking of places like Greek islands, Sardinia, Sicily, Corsica, Menorca etc rather than places in Spain when I was referring to more impressive destinations for a holiday by the sea in Europe...but if you want to stick to Spain the nicest beaches (I think) are in the north - Galicia especially and also Asturias, but then the weather is much less reliable up there and the sea is not as warm!
I didn't have time to make it to Cadiz, which I regret as have heard it's well worth a visit, but have also heard the beaches get very crowded in summer as people escape the heat in Seville and head to the coast...maybe Sanlúcar de Barrameda, which is nearby as well? Sitges near Barcelona perhaps? (Although I imagine that also gets very busy in summer being so easy to get to from Barcelona). Or Vilanova i la Geltrú nearby for somewhere quieter?
Flying to Malaga works well, that's what I did - then did a sort of semi circle - Malaga > Seville > Cordoba > Granada > Ronda > Nerja > Malaga for flight home. There are more direct flights to Seville now (new routes) though from Edinburgh so I would fly straight to Seville next time I think.
Keep in mind, 2 nights somewhere only gives you one full day - perhaps enough for Ronda but you might want to consider one more night in Seville, to give you 2 full days? Would avoid Seville in July/August though - too hot!