The problem is the following: the SPA has only one index page instructing the browser to load a Javascript bundle that will serve dynamic content (typical Angular application). The content served is different depending on the URL to request it, but to the indexing robot all pages look identical, although what the user sees is very different through the javascript interpretation.

e.g. https://one.linkfacts.link/us/hubert_schumacher/g/FalaciesOfMind/n/PoisoningTheWell would be different from https://one.linkfacts.link/us/hubert_schumacher/g/FalaciesOfMind/n/Overgenerality but look the same to google from a pure HTML perspective.

How can I "force" google to index the different pages by their accessed URL? Would it be enough to put the URL or any other differentiator as a meta tag (e.g. Description) into the header?

Any other solution, one could think of?

  • 2
    Googlebot executes JavaScript that runs when the page loads now. Googlebot no longer relies on just the pure HTML that is served. Other search engine bots for Bing, Baidu, and Yandex are not that smart yet. Commented Dec 2, 2020 at 10:58
  • @StephenOstermiller thanks for the comment, but then I do not understand why the contents are qualified as duplicates. You can follow the 2 links above and will see that the rendered content is different Commented Dec 3, 2020 at 21:10
  • 1
    Have you used Google Search Console's "Inspect URL" live test to see what Googlebot is getting for those pages? Commented Dec 4, 2020 at 10:57

1 Answer 1


Long wait, here are some options:

Best: Render the JSON result server-side in script tags on the initial HTML load. If this is large and slows down users too much, do it only for googlebot's user agent. If need be render the page's url or component parts into a JSON object in that data. This will ensure it is not a duplicate.

Others: Look up the use of "?escaped_fragment=" URLs, or just teach your server to serve static content to the Googlebot user agent.

  • Update: Googlebot executes js these days, so problem solved. Commented May 6, 2023 at 17:43

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.