Both can mean 'antiguo', but one is relative in age and the other implies thousands of years.
Adjective. Having existed for a long time. Can range from years to centuries. It is relative.
My grandfather is very old. He is 92.
Mi abuelo es muy viejo. Tiene 92 años.
That is an old building. It was built in 1920.
Ese es un edificio viejo. Fue construido en 1920.
We are old friends. We met as children.
Somos viejos amigos. Nos conocimos de niños.
Adjective. From a very remote past, thousands of years old. Used for civilizations, monuments, and distant historical periods.
The ancient Egyptians built the pyramids.
Los antiguos egipcios construyeron las pirámides.
We visited ancient ruins in Rome.
Visitamos ruinas antiguas en Roma.
This is an ancient tradition dating back thousands of years.
Esta es una tradición antiquísima que data de hace miles de años.
Common mistake
Using "ancient" for people or things that are old but not from antiquity. Wrong: "My ancient grandfather" (unless he is thousands of years old). (correct: My old grandfather.)
Trick to remember it
"Old" = old in a relative sense (your grandfather, a house from 1920, a 10-year-old car). "Ancient" = from civilizations or remote eras (Egypt, Rome, Greece, the Stone Age). Does it belong to a distant historical era and is over a thousand years old? Ancient. Is it just relatively old? Old.
Quick rule
Does it belong to a civilization or historical era from thousands of years ago? Use "ancient". Is it simply old in a relative sense? Use "old".
Did you know?
"Ancient" can also be used colloquially and hyperbolically for things that simply feel very old: "This phone is ancient!" In this informal use it does not literally mean thousands of years old. It just means something feels very outdated or old-fashioned.
Exercise 1 · Pick the right one
The _____ Greeks made enormous contributions to philosophy and science.
Exercise 2 · Pick the right one
My grandfather is _____ but still very active and healthy.
Exercise 3 · Form the word
Does it belong to a civilization or historical era from thousands of years ago? Use "ancient". Is it simply old in a relative sense? Use "old".
Using "ancient" for people or things that are old but not from antiquity. Wrong: "My ancient grandfather" (unless he is thousands of years old). (correct: My old grandfather.)
"Old" = old in a relative sense (your grandfather, a house from 1920, a 10-year-old car). "Ancient" = from civilizations or remote eras (Egypt, Rome, Greece, the Stone Age). Does it belong to a distant historical era and is over a thousand years old? Ancient. Is it just relatively old? Old.
Bryan López
Founder of SpeakUP Academy