Hreflang tag and ?change_lang for Google
I have a large site in three languages, in all pages I have Hreflang tags, but google indexes site through language switcher by using links www.site.com/about?change_lang=1&lang=en. This result also shows in Google search and also SEO tools recommend to change those URL redirects to 301 redirects. If I'll set all "?change_lang" parameters to "No-follow" will google index pages through Hreflang tags? Or better set as 301 redirects?
Answer
If the pretty URL for www.site.com/about?change_lang=1&lang=en
is www.site.com/en/about
and you want Google to index the pretty URL, then use 301 redirects.
If Google has chosen to index the ugly URLs instead of the pretty ones, it means you have a duplicate content issue (same content on 2 URLs -- 1 pretty and 1 ugly). It also suggests that maybe you are using ugly URLs for internal linking. Where else would Google find these URLs if not by crawling?
If you want Google to only use pretty URLs, do the following:
- Redirect ugly URLs to pretty URLs.
- Use only pretty URLs for all internal links.
- Use only pretty URLs for canonical tags and hreflang tags.
Related Questions
- → How do I call the value from another backed page form and use it on a component in OctoberCms
- → Inline JS callback syntax Vs Internal JS callback syntax
- → Prevent form action from being followed by robots
- → How to remove parameters from the root URL if it does I18n
- → SEO Canonical URL in Greek characters
- → Htaccess negation
- → Wrapping anchor elements with text
- → Adding schema.org to site
- → dynamic php title depends on page id and using of "if (isset"
- → Building sitemap for 2 wordpress install under 1 domain
- → Bigcommerce Repeating url
- → 301 Redirection from no-www to www in wordpress
- → Wrapper inside or outside HTML5 semantics main, which is best practice?