Perustin SPA-sivun Angularin kautta ja saavutin Server Side Render -vaikutuksen Rendertronin kautta. Facebook-virheenkorjaustyökalussa sain dynaamisesti luodut metatietoni, mutta Google Console -haun esikatselu oli tyhjä

Ymmärrän, että Googlebot voi tehdä DOM: n dynaamisesti itse, mutta miksi se on aina tyhjä? onko HTML-tiedostoni rakenteessa jotain vikaa?

Facebookin virheenkorjaustyökalu

Google Search Console

Tämän numeron kautta löysin tavan ratkaista se

Näyttää siltä, ​​että angular.io ei ehkä enää indeksoi

Googlebot voi indeksoida kulmaisen ilman palvelinpuolen hahmonnustapaa.

Kuinka virheenkorjaus

lisää seuraava koodi omaan index.htmlja avaa sitten Google Search Console indeksoida sitä.

voit virheenkorjata virheilmoituksella, jonka käyttäjäagentti on GoogleBot

https://developers.google.com/search/docs/guides/debug-rendering

window.addEventListener('error', function(e) { var errorText = [ // key point of debug 'UserAgent: ' + navigator.userAgent , e.message, 'URL: ' + e.filename, 'Line: ' + e.lineno + ', Column: ' + e.colno, 'Stack: ' + (e.error && e.error.stack || '(no stack trace)') ].join('\n'); // Example: log errors as visual output into the host page. // Note: you probably don’t want to show such errors to users, or // have the errors get indexed by Googlebot; however, it may // be a useful feature while actively debugging the page. var DOM_ID = 'rendering-debug-pre'; if (!document.getElementById(DOM_ID)) { var log = document.createElement('pre'); log.id = DOM_ID; log.style.whiteSpace = 'pre-wrap'; log.textContent = errorText; if (!document.body) document.body = document.createElement('body'); document.body.insertBefore(log, document.body.firstChild); } else { document.getElementById(DOM_ID).textContent += '\n\n' + errorText; } // Example: log the error to remote service. // Note: you can log errors to a remote service, to understand // and monitor the types of errors encountered by regular users, // Googlebot, and other crawlers. var client = new XMLHttpRequest(); client.open('POST', 'https://example.com/logError'); client.setRequestHeader('Content-Type', 'text/plain;charset=UTF-8'); client.send(errorText); }); 

Mahdolliset syyt

1. Käyttämätön polyfill

@MrCroft

kommentoi seuraava rivi alla /** IE9, IE10 and IE11 requires all of the following polyfills. **/:


2. Päivitä uusimpaan Angular-versioon

se helpottaa mahdollisten ongelmien tunnistamista

https://github.com/angular/angular/issues/21272#issuecomment-370153525

työskennellyt sinulle: Charles Robertson | Haluatko yhteyttä?