Google Search Console shows that my website have been ranking position 18 for keyword "seo".
When I test that myself I can't find it in any result. How would I explain this?
If you look at the number of impressions you will probably see that the number is low or very low. A keyword like "seo" should get you at least a few thousand impressions even if you are on page 2. If you see anything under that, what is happening is that Google Search Console is reporting on your (or your colleagues', family's, friends') personalized results. Your own site is bumped up on your search results as Google thinks/understands you often visit it (so you must find it useful or like it). Run the same query in Incognito/Private mode and you should not see yourself anywhere close to position 18.
At least this is happening to us. Google Search Console says we are ranking in position 9 for a keyword with a volume of 135K searches per month. We have 14 impressions and 0 clicks... just can't be. We run a search and we can see ourselves. Ran the same query in Incognito and we are nowhere to be found.
The only way we have found to avoid this is to not use Google to search for our own stuff and use Incognito when we want to check rankings.