Testing Your Integration
After setting up any SeoRend integration, use these steps to verify everything works correctly.
Quick Test with curl
Section titled “Quick Test with curl”The fastest way to verify is to simulate a bot request using curl with a bot User-Agent:
curl -s -I -A "Googlebot/2.1 (+http://www.google.com/bot.html)" https://example.com/A successful integration returns these headers:
HTTP/2 200content-type: text/html; charset=utf-8x-seorend-cache: MISS ← first request (not yet cached)x-seorend-render-time: 1823 ← render time in millisecondsOn subsequent requests to the same URL:
x-seorend-cache: HIT ← served from cachex-seorend-render-time: 0Test That Regular Users Are NOT Prerendered
Section titled “Test That Regular Users Are NOT Prerendered”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.
Test Multiple Bot Types
Section titled “Test Multiple Bot Types”Verify that different bot types are all correctly detected:
# Google Search Botcurl -s -I -A "Googlebot/2.1" https://example.com/
# Bing Botcurl -s -I -A "Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)" https://example.com/
# GPT/OpenAI Botcurl -s -I -A "GPTBot/1.0 (+https://openai.com/gptbot)" https://example.com/
# Claude Botcurl -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/
# LinkedIncurl -s -I -A "LinkedInBot/1.0 (compatible; Mozilla/5.0)" https://example.com/All of these should return X-Seorend-Cache: MISS or HIT.
Test a Specific Page
Section titled “Test a Specific Page”# Test an inner pagecurl -s -I -A "Googlebot/2.1" https://example.com/products/widget-pro
# Test with a query stringcurl -s -I -A "Googlebot/2.1" "https://example.com/search?q=something"View the Rendered HTML
Section titled “View the Rendered HTML”To see the actual HTML returned to the bot:
curl -s -A "Googlebot/2.1" https://example.com/ | head -50You should see a fully rendered HTML page — not just <div id="root"></div> — with all your content filled in.
Verify Static Files Are NOT Prerendered
Section titled “Verify Static Files Are NOT Prerendered”Static assets should never go through SeoRend:
# These should return your file directly, no X-Seorend headerscurl -s -I -A "Googlebot/2.1" https://example.com/main.jscurl -s -I -A "Googlebot/2.1" https://example.com/styles.csscurl -s -I -A "Googlebot/2.1" https://example.com/logo.pngBrowser DevTools Test
Section titled “Browser DevTools Test”To verify regular users are not affected:
- Open Chrome DevTools (
F12) - Go to the Network tab
- Reload your page
- Click on the first request (your domain)
- Check Response Headers — you should not see
X-Seorend-Cache
Test Dashboard View
Section titled “Test Dashboard View”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
Common Issues
Section titled “Common Issues”No X-Seorend-Cache header
Section titled “No X-Seorend-Cache header”The bot request isn’t reaching SeoRend. Check:
- Is your middleware installed correctly?
- Is
SEOREND_API_KEYset in your environment? - Is the User-Agent matching your bot detection list?
# Test with verbose outputcurl -v -A "Googlebot/2.1" https://example.com/ 2>&1 | grep -i seorend401 Unauthorized
Section titled “401 Unauthorized”Your API key is invalid or missing. Verify:
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"}'429 Too Many Requests
Section titled “429 Too Many Requests”You’ve exceeded your plan’s render limit. Options:
- Wait for the billing period to reset
- Upgrade your plan in app.seorend.com
- Enable Warm Bot to reduce live renders
Rendered HTML is incomplete
Section titled “Rendered HTML is incomplete”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.
API Direct Test
Section titled “API Direct Test”You can call the SeoRend API directly to test:
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 }}