best anti-fog solution i have found is kids shampoo (johnsons)...rinse with this before each swim and always been clear, tried the expensive spray types and found them not that reliable.
Carbon ones preferably.
New goggles are always worth it!
But if you insist on swimming then maybe you could try making your face cooler (dunking) before putting goggles on and cooling the goggles (dunking) before spitting - also try not to eat any chocolate before spitting as that makes the goggles look a bit unsavoury (yes i unfortunately did once)
After rinsing dont touch the inside with your grubby mitts!
A few drops of aqua sphere anti fog solution, (£3 from my running shop) leave for 30 seconds.
2km in 12oC open water and not a trace of fog.
I swear by it.