I speak good English. (ok)
I speak English well. (Correct)
I speak English good. (Incorrect) I speak well English. (Incorrect)
“I speak good English” and “I speak English well” are both correct sentences but have a slightly different meaning. To speak good English would be more common to describe a non-native English speaker who has the ability to express themselves in English. To speak English well has more of the meaning of speaking with eloquence.
In this context, good is an adjective, and well is an adverb. This means that good describes the noun(English) and well modifies the verb(to speak). Most people generally mean the same thing that the person has good communication skills but maybe the emphasis is different whether they use good or well.
To speak English well could also suggest that the delivery of the language is above average. Think about someone who speaks English well and you think about somebody like Barack Obama who is a great orator.
To speak good English is often implied that the person is a non-native English speaker but doesn’t make a lot of mistakes.
“She speaks good English, and she invites you up into her room” Bob Dylan
Other ways to express this:
You speak excellent English.
Your English is very good.
You are quite good at English.
Do you speak English or in English?
Can you speak English?
Can speak in English, please?
Speak in English and Speak English are both correct but are used in different contexts.
Can you speak English? means having the ability to speak in English in general.
Can you speak in English? Means that you are speaking in a different language and the person wants you to change language.
We use in+English to show what language we are currently speaking. Generally, this situation only occurs with polyglots.
Another example would be if everyone is speaking Spanish and someone suggests “Let’s speak in English” (“as opposed to in Spanish” is implied)