Why every page on your site can look the same to a crawler
Published · Last updated
As of October 2026, many app builders send one shared HTML file for every address on your site. A crawler that skips JavaScript then receives the same page, and sometimes the same canonical link pointing at your home page, no matter which page it asked for.
What is happening
A single-page app loads one shell and uses JavaScript to swap in the content for each address. The title, description and canonical link in that shell are often set the same way, after the script runs. A crawler that does not run the script reads the shell as it was sent.
Why it matters
If every page tells a crawler that its canonical address is your home page, search engines can treat your other pages as copies of the home page. The pages you wrote may never get a place of their own in the index, and AI assistants have nothing specific to cite.
See it yourself
Open two different pages on your site and choose View Source on each, not Inspect. Compare the title, the canonical link and the main text. If they match, a crawler sees the same page twice.
Platforms differ
Some platforms render each page on the server. Some serve pre-rendered copies only to certain bots. Some do neither. You cannot tell which one you have from how the site looks in your browser.
What this does not tell you
Which of your pages are affected, which crawlers get which version, and how to fix it on your platform without breaking the app.