Some websites send the browser an almost empty page and use JavaScript to fill in the content afterwards. This is called client-side rendering. The title of the page, its canonical link and its content may all be added by that script.
Google can run JavaScript, but it does so in a separate step after it first fetches the page. This guide shows you how to compare the raw HTML (what the server sends) with the rendered HTML (what exists once scripts have run), and how to see in Search Console what Google received.
