I use this meta tags to make google crawler know that I have two languages for my site, as suggested here support.google.
<link rel="alternate" hreflang="x-default" href="http://www.example.com" />
<link rel="alternate" hreflang="de" href="http://www.example.com/de" />
<link rel="alternate" hreflang="en" href="http://www.example.com/en" />
So sometimes the content of example.com
would be the same as example.com/de
and sometimes example.com
would be the same as example.com/en
.
I use the following code to detect language
const lang = (
getLangFromUrl(req.url) ||
getLangFromCookies(req.cookies) ||
getLangFromHeader(req.headers) ||
'de'
);
and google detects example.com
and example.com/de
as duplicated pages.
Can you please tell me how should it be correctly done?
2
Answers
Handling duplicate pages with multilingual/multi-regional sites
If you provide similar or duplicate content on different URLs in the same language as part of a multi-regional site (for instance, if both
example.de/
andexample.com/de/
show similar German language content), you should pick a preferred version and use the rel=canonical element and hreflang tags to make sure that the correct language or regional URL is served to searchers.You can find here the Google guide to Consolidate duplicate URLs: https://support.google.com/webmasters/answer/139066?hl=en
Google has mentioned this issue in this link: support.google.com
If you prefer to dynamically change content or reroute the user based on language settings, be aware that Google might not find and crawl all your variations. This is because the Googlebot crawler usually originates from the USA. In addition, the crawler sends HTTP requests without setting Accept-Language in the request header.
I hope this will help you