However, with single-page applications like those based on Scrivito, there is only one HTML file that can be requested. Its <body> usually consists of nothing more than a <script> element that contains or fetches the JavaScript code to run, meaning that all pages are put into existence on the client side, dynamically as the visitor navigates the site. No server URLs, no visible HTML markup.
Browsers are perfectly equipped for handling this, but some of today’s search engine crawlers still aren’t, causing the dynamically created pages of SPAs to not be indexed. Meanwhile, Google’s crawlers have JavaScript activated to render the pages, index them, and recognize and respect SEO signals in the DOM.
You could also have your SPA prerendered for crawlers, meaning that the JavaScript code that renders a page is executed on the server side to deliver HTML markup to them. If you are hosting your SPA on Netlify, activating prerendering is a matter of just a single click. For Scrivito websites, this option is turned on automatically.