Skip to content

Testing Your Integration

After setting up any SeoRend integration, use these steps to verify everything works correctly.

The fastest way to verify is to simulate a bot request using curl with a bot User-Agent:

Terminal window
curl -s -I -A "Googlebot/2.1 (+http://www.google.com/bot.html)" https://example.com/

A successful integration returns these headers:

HTTP/2 200
content-type: text/html; charset=utf-8
x-seorend-cache: MISS ← first request (not yet cached)
x-seorend-render-time: 1823 ← render time in milliseconds

On subsequent requests to the same URL:

x-seorend-cache: HIT ← served from cache
x-seorend-render-time: 0

Test That Regular Users Are NOT Prerendered

Section titled “Test That Regular Users Are NOT Prerendered”
Terminal window
curl -s -I -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36" https://example.com/

The response should not contain any X-Seorend-* headers — regular users receive your app directly.

Verify that different bot types are all correctly detected:

Terminal window
# Google Search Bot
curl -s -I -A "Googlebot/2.1" https://example.com/
# Bing Bot
curl -s -I -A "Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)" https://example.com/
# GPT/OpenAI Bot
curl -s -I -A "GPTBot/1.0 (+https://openai.com/gptbot)" https://example.com/
# Claude Bot
curl -s -I -A "ClaudeBot/1.0; +claudebot@anthropic.com" https://example.com/
# Social sharing (Facebook)
curl -s -I -A "facebookexternalhit/1.1" https://example.com/
# LinkedIn
curl -s -I -A "LinkedInBot/1.0 (compatible; Mozilla/5.0)" https://example.com/

All of these should return X-Seorend-Cache: MISS or HIT.

Terminal window
# Test an inner page
curl -s -I -A "Googlebot/2.1" https://example.com/products/widget-pro
# Test with a query string
curl -s -I -A "Googlebot/2.1" "https://example.com/search?q=something"

To see the actual HTML returned to the bot:

Terminal window
curl -s -A "Googlebot/2.1" https://example.com/ | head -50

You should see a fully rendered HTML page — not just <div id="root"></div> — with all your content filled in.

Static assets should never go through SeoRend:

Terminal window
# These should return your file directly, no X-Seorend headers
curl -s -I -A "Googlebot/2.1" https://example.com/main.js
curl -s -I -A "Googlebot/2.1" https://example.com/styles.css
curl -s -I -A "Googlebot/2.1" https://example.com/logo.png

To verify regular users are not affected:

  1. Open Chrome DevTools (F12)
  2. Go to the Network tab
  3. Reload your page
  4. Click on the first request (your domain)
  5. Check Response Headers — you should not see X-Seorend-Cache

Log into app.seorend.com and check:

  • Analytics → Bot requests should appear after your test
  • Cache → Pages you tested should show as cached
  • Usage → Render count should have increased

The bot request isn’t reaching SeoRend. Check:

  • Is your middleware installed correctly?
  • Is SEOREND_API_KEY set in your environment?
  • Is the User-Agent matching your bot detection list?
Terminal window
# Test with verbose output
curl -v -A "Googlebot/2.1" https://example.com/ 2>&1 | grep -i seorend

Your API key is invalid or missing. Verify:

Terminal window
curl -s -X POST https://render.seorend.com/v1/render \
-H "Authorization: Bearer sk_live_your_key" \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com/","userAgent":"Googlebot"}'

You’ve exceeded the fair-use allowance for on-demand renders. Pages already cached keep being served normally — only new renders are throttled. Options:

  • Wait for the billing period to reset
  • Upgrade your plan in app.seorend.com — bigger plans cover more pages and include a larger fair-use allowance
  • Make sure your sitemap is analyzed so your important pages are covered and refreshed proactively

The page may be making async requests that complete after the render timeout. Check your SeoRend dashboard for render time — if it’s close to the limit, the page might not be fully loaded.

You can call the SeoRend API directly to test:

Terminal window
curl -s -X POST https://render.seorend.com/v1/render \
-H "Authorization: Bearer sk_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com/",
"userAgent": "Googlebot/2.1 (+http://www.google.com/bot.html)"
}' | jq '{status, cache, timings}'

Expected response:

{
"status": 200,
"cache": { "hit": false, "ttl_seconds": 86400 },
"timings": { "render_ms": 1823, "total_ms": 1850 }
}