Troubleshooting

Troubleshooting

Fix DNS, root/www, origin, cache, and crawler visibility issues.

Troubleshooting

Use this page when verification fails, DNS stays pending, crawler output looks thin, or rendered pages are stale.

Read the result first

Most setup issues are one of these:

  • No Prerender Buddy request detected: check DNS, middleware, and the exact hostname.
  • DNS pending: check the CNAME or ALIAS record and remove conflicting records.
  • HTTPS pending: add the TXT validation record using the host format your DNS provider expects.
  • Thin crawler response: compare root vs www, then check whether middleware or managed proxy is active.
  • Render timeout: check whether the origin URL is public, fast enough, and not behind login.

Verify says no Prerender Buddy request detected

This means the crawler request reached the website, but it did not pass through Prerender Buddy.

Most likely causes:

  • DNS still points to the original host.
  • You protected www.example.com but tested example.com.
  • You protected example.com but tested www.example.com.
  • Developer integration was added inside browser-only React code.
  • Middleware or worker changes were not deployed.
  • The API key was not added as a server-side secret.

Fix in this order:

  1. Open the site in Prerender Buddy.
  2. Confirm the exact hostname, including root vs www.
  3. Test that exact hostname only.
  4. If using Easy setup, check DNS records.
  5. If using Normal or Advanced setup, confirm the middleware is deployed.
  6. Confirm PRERENDER_BUDDY_API_KEY exists as a server-side secret.
  7. Run Verify Installation again.

DNS status is pending

DNS can stay pending when the public hostname does not point to Prerender Buddy yet.

For a www hostname, check:

Example
1www.example.com CNAME customers.prerenderbuddy.com

Common issues:

  • The record was added at the wrong DNS provider.
  • The record name is wrong.
  • A previous A record or CNAME still conflicts.
  • The root domain was added as a normal CNAME on a provider that does not support it.
  • DNS propagation has not finished.

Fix in this order:

  1. Find the active DNS provider for the domain.
  2. Remove conflicting records for the same hostname.
  3. Add the exact record from Prerender Buddy.
  4. Wait a few minutes.
  5. Click Refresh status.

HTTPS status is pending

HTTPS can stay pending when certificate validation records are missing or not visible yet.

Common issues:

  • TXT validation record is missing.
  • TXT record was added with the wrong name.
  • TXT record was added in a different DNS zone.
  • The DNS provider appended the root domain twice.
  • DNS propagation has not completed.

Fix in this order:

  1. Copy the TXT record from Prerender Buddy.
  2. Add it at the same DNS provider as the CNAME.
  3. If the DNS provider auto-appends the root domain, use the short host name. For www.example.com, enter _acme-challenge.www, not _acme-challenge.www.example.com.
  4. If the DNS provider expects full names, enter the full host shown in Prerender Buddy.
  5. Remove old or duplicate TXT values for the same validation.
  6. Wait 5-15 minutes for DNS propagation.
  7. Refresh status.

Wrong auto-appended example:

Example
1_acme-challenge.www.example.com.example.com

Root works but www does not

Root and www are separate hostnames.

Example
1example.com
2www.example.com

If one version works and the other does not, choose one canonical version.

Recommended:

Request flow
1example.com -> redirect to https://www.example.com
2www.example.com -> Prerender Buddy

Then test both versions in the visibility checker. The root version should redirect. The www version should show Prerender Buddy headers or render logs.

If the root domain must also be protected directly, your DNS provider needs ALIAS, ANAME, or CNAME flattening support.

www works but the root domain bypasses Prerender Buddy

This is a common no-code setup issue.

Example:

Request flow
1www.example.com -> Prerender Buddy, working
2example.com -> original host, thin app shell

Symptoms:

  • Googlebot gets rendered HTML on www.example.com.
  • Googlebot gets the original JavaScript shell on example.com.
  • The root response has original host headers such as Lovable, Netlify, Vercel, or Cloudflare.
  • The root response does not include x-prerender-cache.

Fix:

  1. Keep www.example.com pointed at Prerender Buddy.
  2. Redirect example.com to https://www.example.com.
  3. Make sure the redirect preserves the path.
  4. Submit the www sitemap in Google Search Console.
  5. Re-test the same article or page on both hostnames.

Good redirect:

Request flow
1https://example.com/blog/post
2  -> https://www.example.com/blog/post

Bad redirect:

Request flow
1https://example.com/blog/post
2  -> https://www.example.com/

If your DNS provider cannot preserve paths, use a Cloudflare Redirect Rule or a small worker/edge redirect.

Origin URL points back to the public domain

This causes a proxy loop.

Wrong:

Example
1Public website address: www.example.com
2Current website location: https://www.example.com

Use the real origin instead:

URL examples
1https://example.netlify.app
2https://example.vercel.app
3https://project-name.lovable.app
4https://example-production.up.railway.app
5https://origin.example.com

The origin must keep loading the normal human website after the public domain is pointed to Prerender Buddy.

Crawler response is thin

Thin means crawlers can access the URL, but they receive too little readable text.

Symptoms:

Example
1Crawler received: 55 chars
2Result: Thin

Common causes:

  • crawler traffic still hits the original SPA
  • only root or only www is protected
  • developer middleware is not running
  • crawler User-Agent is not detected
  • the page requires login
  • the page has very little public content

Fix in this order:

  1. Compare root and www.
  2. Check Verify Installation.
  3. Confirm the Logs tab shows crawler traffic.
  4. Test a public page that does not require login.
  5. Clear cached render for the exact URL.
  6. Run the test again.

Render engine timeout

A timeout means the render engine could not finish loading the page in time.

Common causes:

  • the origin is slow
  • the page keeps network requests open
  • third-party scripts delay page load
  • the page blocks headless browsers
  • the page requires login
  • the origin URL is unavailable from the internet

Fix in this order:

  1. Open the origin URL directly.
  2. Test a simpler public page on the same domain.
  3. Remove login requirements from the page being rendered.
  4. Check whether third-party scripts are blocking load.
  5. Retry after clearing cache.

Cache looks stale

Cache clearing is exact-URL based.

These are different cache entries:

URL examples
1https://www.example.com/page
2https://www.example.com/page/
3https://example.com/page

Fix:

  1. Open the site Test tab.
  2. Enter the exact URL.
  3. Clear cached render.
  4. Run Test again.

The site Settings tab controls the default freshness window. Lower values refresh more often. Higher values make repeat crawler visits faster.

Lovable, Bolt, and static builders

Do not add crawler detection inside the React app.

That runs too late because the crawler has already received the original HTML shell.

Use managed DNS setup instead.

Request flow
1Public domain -> Prerender Buddy
2Normal visitors -> original builder origin
3Crawler visitors -> rendered HTML

Manual debug commands

Normal browser-style request:

Terminal
1curl -L https://www.example.com

Googlebot:

Terminal
1curl -L -A "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" https://www.example.com

GPTBot:

Terminal
1curl -L -A "Mozilla/5.0 (compatible; GPTBot/1.0; +https://openai.com/gptbot)" https://www.example.com

ClaudeBot:

Terminal
1curl -L -A "Mozilla/5.0 (compatible; ClaudeBot/1.0; +https://anthropic.com)" https://www.example.com

Search for a page heading:

Terminal
1curl -L -A "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" https://www.example.com | grep -i "<h1"

Save two responses and compare them:

Terminal
1curl -L https://www.example.com > browser.html
2curl -L -A "Mozilla/5.0 (compatible; GPTBot/1.0; +https://openai.com/gptbot)" https://www.example.com > gptbot.html
3diff browser.html gptbot.html

If the crawler response only contains <div id="root"></div>, the crawler is still seeing the JavaScript shell.

Check whether Prerender Buddy is in the request path:

Terminal
1curl -I -A "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" https://www.example.com/page

Look for headers like:

Example
1x-prerender-cache
2x-prerender-cache-ttl
3x-prerender-time

Compare root and www:

Terminal
1curl -I -A "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" https://example.com/page
2curl -I -A "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" https://www.example.com/page

Still stuck

If setup still fails after checking the exact hostname, DNS provider, HTTPS status, and crawler logs, email support@prerenderbuddy.com.

For billing questions, use billing@prerenderbuddy.com. For security or privacy questions, use security@prerenderbuddy.com.

Still blocked?

Open the site dashboard, refresh setup status, then run Verify Installation on the exact hostname you changed.

Still stuck? Email support@prerenderbuddy.com.

Open dashboard