This answer will only include legal ways to watch the Pokémon anime (that is, no pirated sites). If you want to watch on pirated sites, then a simple Google search will suffice.
The best way to watch the Pokémon anime for free is Pokémon TV. It is provided by The Pokémon Company International and is completely legal; however, it is notorious for not being available in many regions. So a VPN may be required to watch Pokémon there.
First episode of the first season is available here.
Pokémon movies are available here. Thankfully, they are available in most regions unlike the anime episodes.
The next best way is Pokémon Asia ENG's YouTube channel. They provide certain seasons of the Pokémon anime for free. However, some episodes get taken down after some time (probably legal reasons); for example, the Pokémon Journeys Series currently has 66 out of 76 episodes unavailable, which were once available. There's not much to do about it other than wait for them to become available again.
For episodes in other Asian languages, check out their about page.
JustWatch is the best site to figure out which streaming services have provided the Pokémon anime in your region. It includes both free and paid services, although there's no (legal) streaming service which provides all seasons of the Pokémon anime.
Additionaly, this article may also help.
For a list of all Pokémon anime, click here.
Hope this helps!