Use ser to describe permanent qualities, identity and characteristics. Use estar to describe temporary states, location and conditions. This is the core rule, and it solves most of the confusion beginners face.
When you say "Maradona es el mejor jugador de futbol" (Maradona is the best football player), you are using ser because being the best is a quality, a defining characteristic. If you said "Maradona está el mejor jugador de futbol," a Spanish speaker would feel something is wrong, even if they understand you. The meaning shifts when you choose the wrong verb.
Ser for identity and permanent traits
Use ser when you are talking about who someone is or what defines them. "Yo soy ingeniero" (I am an engineer). "Ella es mexicana" (She is Mexican). "Es mi hermana" (She is my sister). These are facts about identity. They are not going to change tomorrow. Ser anchors you to something fixed.
Ser also works for characteristics that feel unchanging: "El cielo es azul" (The sky is blue). "Este café es amargo" (This coffee is bitter). "Mi profesor es inteligente" (My teacher is intelligent). You are describing what something is, at its core.
Estar for temporary states and location
Use estar when the situation is temporary, changeable or tied to a moment. "Estoy cansado" (I am tired). Tomorrow you might not be tired. "Estamos en Madrid" (We are in Madrid). You might leave. "El café está caliente" (The coffee is hot). It will cool down.
Estár is also your verb for describing how you feel right now, where you are right now, or what condition something is in right now. "¿Dónde estás?" (Where are you?). "Estoy muy contento" (I am very happy, right now). "La puerta está abierta" (The door is open, currently).
The tricky middle ground
Some adjectives work with both verbs, but the meaning changes. "Juan es delgado" means Juan is naturally thin, it is his body type. "Juan está delgado" means Juan looks thin right now, maybe he lost weight. The grammar tells Spanish speakers whether this is permanent or temporary.
"La sopa es fría" means the soup is a cold soup, like gazpacho. "La sopa está fría" means the soup is cold right now, perhaps it has cooled down. The verb tells the story.
The best way to feel this difference in your bones is to speak with native speakers regularly. When you are in a conversation, your ear picks up which verb sounds natural, and you start using it without thinking. Reading or studying charts helps, but speaking is what makes it stick.
How to practice with real speakers
PBC Languages runs live classes in small groups, with a maximum of four students, so you actually get speaking time. You cannot hide in a class that small. A teacher who is a native speaker will hear you use estar when you should use ser, correct you gently, and you move forward. That happens in real conversation, not in an app.
You can also find a language exchange partner through PBC Languages, free and always free. A native Spanish speaker who wants to learn your language trades speaking time with you. You speak Spanish for half the time, your language for the other half. When you use ser or estar wrong, they hear it and naturally show you the right way. No payment, no pressure, just two people helping each other.
The ser vs estar distinction is not something you finish learning and forget about. You keep noticing it every time you speak. Consistency matters more than cramming. If you show up to speak Spanish once a week with a real person, your instinct for this difference will sharpen over months, not years.
Try a free class at pbclanguages.com and speak with a teacher about your confusions. Or find a free language exchange partner and practice this with someone who speaks Spanish every day. The verb you choose becomes natural once you use it in real conversation.