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 your plan’s render limit. Options:

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": 86400 },
"timings": { "render_ms": 1823, "total_ms": 1850 }
}