Empty or partially rendered pages
If you find that Prerender returns empty or partially rendered pages here are a few things to check first.
Prerender fails to detect the ready-ness of the page
Prerender contains advanced logic to detect if the page has finished rendering or not, but there are some web pages that use some custom loading flows or constant polling that may trick Prerender's logic thus it fails to make a decision on the ready-ness of the page.
If that happens, Prerender may grab the page content too early and return a partially rendered (or even empty) page to crawlers.
If you think your site falls into this category, there is a way to help Prerender do a better job. When Prerender starts to render a page it checks if the page JS context has the boolean variable
window.prerenderReady set to
false (not undefined, but false, it's important). If this variable is present, Prerender will wait for this value to turn
true before it grabs the rendered content.
To implement prerenderReady properly, you should add
<script> window.prerenderReady = false; </script>
as high to your
head section as possible, preferable right after the
<head> tag. Then make sure you only set this variable
true when your page is finished rendering and it's safe for Prerender to grab the content. This is possibly in an async call that runs very late on your page. Prerender will then wait a small amount of time to make sure all the calls are finished and then save your page.
Page rendering times out
Prerender has a 20 seconds default render timeout. If your page fails to load and/or finish rendering in this time, it's very likely that Prerender will grab and cache a partially rendered page. To identify such issues you should look at your Prerender crawl and recache stats and review the Response Time column of your pages.
We made it relatively easy for you to point out problems by highlighting them in red:
Any URLs with a response time very close to or over 20 seconds is a potential timeout and should be checked. Unfortunately we can't help much with these. Better caching or involving a CDN may help, but as many pages we see as many solutions there are to this problem.
There is an error on the page
We observed many times that a site loaded by a desktop browser works just fine, but when Prerender tries to fetch it, it just fails with some weird JS error. Prerender fetches your site with a customised headless Chrome from various locations and various IP addresses. This can lead to some errors that are not easy to find.
There are some CDNs that block requests from non standard user agents (see Prerender user agents here). Many sites load JS bundles from CDNs to speed up site loading, but we have seen cases where those CDNs simply blocked Prerender to access that site, so although the site works perfectly for end users, Prerender still fails to render it.
Missing browser capabilities
There were cases where a site used WebGL or other special capabilities to render the page. Please note that Prerender browsers run in headless mode and with no GPUs attached, so these special capabilities may not be available.
Prerender data centres all all around the globe. If your site is geo-blocked from some regions (e.g. only available from the US), it can also lead to render issues. If you reach out to us at firstname.lastname@example.org and explain the situation, we can set up your account to force Prerender to request your pages from a specific location.
Currently only Global or US-only settings are available, but we'll implement EU-only soon too.