My app serves local content from separate subdomains. eg: fr.example.com serves content for french users, www.example.com for global etc. The content on the page is javascript rendered. if I check pages in "fetch as google", I get to see the correct javascript rendered version in "This is how Googlebot saw the page:" section. The pages from different subdomain are set with separate canonicals, and hreflangs. this is how hreflangs are defined

<link rel="alternate" href="https://www.example.com/about" hreflang="en" />
<link rel="alternate" href="https://fr.example.com/about" hreflang="fr" />

Hreflangs are also defined in sitemap.xml

The problem is google indexes only the en version. Checking in the search console I see this "Duplicate, Google chose different canonical than user". How do we get google to consider these as 2 separate pages?

1 Answer 1


You just need to wait a couple months. Google will render your pages and find their full content eventually. However it takes Googlebot weeks to render pages after it crawls them. In the meantime, it renders the text only version. When your content is JavaScript rendered, the HTML source code that Googlebot initially sees is very simple and duplicate.

Because of this, I would not recommending using JavaScript frameworks such as React and Angular to build a website that requires SEO. Loading all the content via AJAX can make good websites that are usable, but there are significant problems getting them indexed in search engines.

  • Thanks Stephen, your link answered a question of why Google displays old content in the SERPs even though I know it has crawled more recent content.
    – Trebor
    Commented Mar 9, 2019 at 0:35
  • Thanks, this could be the reason because I have tried all the other suggestions mentioned in other articles, discussions etc. Although I cannot be 100% sure (because it will take some weeks for the second pass), I am marking this as the answer, because this is a new information for me, which I never considered in such cases.
    – maX
    Commented Mar 10, 2019 at 11:11

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.