Good is an adjective. We use good when we want to give more information about a noun.
”My dog Sam is very good. He’s a good dog.”
”She didn’t speak very good English. Her English isn’t very good.”
Well is usually used as an adverb. We use well when we want to give more information about a verb.
”He usually behaves very well.”
”She didn’t speak English very well.”