In the mid-to-early stages of learning a language (you may already be past this point though) I've found Clozemaster to be one of the single most effective ways to learn vocabulary. Clozemaster has English courses in a staggering variety of languages, so unless your native language is something extremely esoteric, you'll probably find a course in it, but some are more polished than others. If you are lucky enough to speak a language where there is an English course in that language (it only has a few) you could also look at Lingvist, which is a more refined, slick tool that is more-or-less the same idea; it is paid-only whereas Clozemaster has both free and paid versions.
I would not, however, rely solely on any online tools as your sole learning method.
Once you've gotten to where you are good enough to learn by immersion, immersion is often a more efficient and also better way to learn.
Watch and listen to media in English, and read material in English. Reading can often be one of the most effective ways to learn vocabulary more deeply, especially if you're at the point where you already know how a wide range of words are pronounced and you simply haven't mastered their connotation and usage deeply enough to feel comfortable using them in your own speech or writing.
I also find it helpful to occasionally fixate on a particular word. When you hear or read a word that you kind-of know, but aren't super comfortable with, look it up in a dictionary. Look at multiple different contexts in which it is used. Try to get a grasp of its connotation. Sometimes google image search is helpful for this purpose, as an image can communicate common mental or cultural associations that may not shine through as easily in a dictionary definition.
Also, don't neglect idioms and phrase-level usage. English is packed with idioms and some of them are unintuitive. Again, exposure is key. Once you've heard or read a phrase or expression enough, and you have a sense not only of what it means, but what contexts in which it is used, it'll become more natural to use it.
I also would encourage you to try to interact with native English speakers as much as you can. I'm not sure what your native language is, and you may not be able to find "language partners" readily, but it seems based on the writing in your question that your English is probably already good enough to just dive in and interact with native English speakers online. Try to get both audio and text-based interaction!
You will also find it easier to learn if you focus on your interests, both hobbies and professional or educational interests. This can be a good way to keep motivation up. Over time, you will broaden your vocabulary!