I have a website that is in two languages, English and Dutch.
The URL structure is the following; domain is like mydomain.nl and and English page has URL mydomain.nl/en/pagename
and Dutch has mydomain.nl/nl/pagename
.
If main URL is visited without any language subdirectory appended, based on accept language header user is redirected to the "closest" match. In the menu a user can always switch the language of the current page.
In the Dutch Google, my site ranks relatively low (second page), I think because the search result in the Dutch Google seems to display the English result. That is, it has the English description and when viewed in cache, it indeed is the English homepage. This is unexpected, because a Dutch version is available and I would like the Dutch site/description being listed in the Dutch Google, and the English result for all other languages.
I use alternate language tags like this on the English version:
<link rel="alternate" hreflang="nl" href="http://www.mydomain.nl/nl/page" />
And on the Dutch version the opposite:
<link rel="alternate" hreflang="en" href="http://www.mydomain.nl/en/page" />
I also use this HTML tag <html lang="nl">
on the Dutch page and <html lang="en">
on the English page.
I'm not sure what else I can do to solve this problem. Any help is greatly appreciated.