Skip to content

Latest commit

 

History

History
146 lines (105 loc) · 9.79 KB

File metadata and controls

146 lines (105 loc) · 9.79 KB

Pre-rendering

Lightning-fast, technology-agnostic SEO for websites, web apps, online shops and blogs — powered by pre-rendering middleware. Optimize TTFB, LCP, INP and CLS metrics, accelerate indexation, improve rich search results, and deliver consistent link previews across social and chat platforms.

Contents

Why pre-rendering SEO middleware

  • 🏎️ Expands crawl budget — improves timings for dynamic and static pages via advanced CDN and caching.
  • 🚀 Boosts Web Vitals and Lighthouse scores.
  • 🎛️ Improves TTFB, LCP, INP, CLS and other Web Vitals and Lighthouse metrics, positively enhancing overall SEO score.
  • 🖥 Supports PWAs and SPAs.
  • 📱 Supports mobile-like crawlers.
  • ⚡️ Supports AMP (Accelerated Mobile Pages).
  • 🤝 AI agents, search engines, and social network crawlers love optimized pages delivered in a blazingly-fast manner.
  • 🖼️ Consistent link previews in messaging apps — iMessage, Messages, Facebook Messenger, Slack, Telegram, WhatsApp, Viber, VK, Twitter/X, and others.
  • 👥 Image, title, and description previews for links posted on social networks — Facebook, X/Twitter, Instagram, LinkedIn, and others.

Terminology

Common terms used across the pre-rendering documentation:

  • Pre-rendering / SEO middleware — thin micro-service that redirects bot traffic to ostr.io rendering endpoints.
  • Search engine — system designed to search for information on the Web (Google, Yahoo, Bing, etc.). Wikipedia.
  • AI chat / AI bot / AI agent — interface to an LLM that can search the web (ChatGPT, Perplexity, Gemini, Grok, Claude and similar).
  • Crawler — internet bot that systematically browses the Web. Wikipedia. Crawlers are an internal part of search engines, messengers, and social networks (Facebook, Viber, WhatsApp, Skype, etc.) and typically fetch image, title, and description information for shared links.
  • Spider — same as crawler.
  • Cache / caching — page rendering is a time- and resource-consuming operation. To provide the best possible response time, pre-rendered results are stored for the period defined as Cache TTL.
  • Cache freshness / Cache TTL — time in hours during which cache remains fresh and is served to all matching requests.
  • Pre-rendering engine — core of the pre-rendering SEO middleware.
  • (Pre)rendering endpoint — address where the pre-rendering engine is located. We offer three differently-configured rendering endpoints to fit every case.

Which integration should I pick?

Pick based on where you can change configuration:

If you control… Pick
DNS / CDN only (no server, no code access) Cloudflare Worker — works with Webflow, Framer, Squarespace, Wix, Ghost, Notion-proxied sites, and more
An Amazon CloudFront distribution AWS Lambda@Edge — CloudFront Function plus origin-request Lambda@Edge
A Shopify store Cloudflare Worker for Shopify
A Netlify deployment (PRO / ENTERPRISE) Netlify integration
A Vercel deployment Vercel Routing Middleware
A Supabase Edge Function serving HTML Supabase integration — Deno, Hono, Oak, Fresh
A reverse proxy Nginx, Apache, or Caddy
Next.js application code Self-managed middleware.ts or seo-middleware-nextjs NPM package
Any other Node.js app spiderable-middleware NPM package
A Meteor.js app ostrio:spiderable-middleware Atmosphere package

Integrations

Supported integration paths.

Cloud / Edge integrations

Operate at the CDN / worker layer — no origin, server, or application changes required. Ideal for hosted/no-code platforms where you cannot deploy middleware yourself.

  • General Cloudflare WorkerCloudflare Worker integration. Compatible with Webflow, Framer, Squarespace, Wix, Carrd, Bubble, Ghost(Pro), Substack, Notion-proxied sites, WordPress.com, BigCommerce, Wix Stores, and any origin reachable through Cloudflare's orange-cloud DNS.
  • AWS Lambda@EdgeAWS Lambda@Edge integration. CloudFront Function marks crawler cache variants before cache lookup; origin-request Lambda@Edge rewrites matching cache misses to ostr.io.
  • ShopifyCloudflare Worker for Shopify. Dedicated walkthrough for Shopify domains (including Shopify-managed domains that need to be transferred to Cloudflare first).

Managed platform integrations

Enable at the hosting-platform level — no plugins, no codebase changes.

  • Netlify — enabled via Netlify Support on PRO / ENTERPRISE plans.
  • Vercel — drop-in Vercel Routing Middleware; one middleware.js file plus env vars.
  • Supabase — Deno-native middleware for Supabase Edge Functions. Complete examples for plain Deno.serve, Hono, Oak, and Fresh.

Server-level integrations

Integrate with your reverse proxy — no plugins required.

  • Nginxmap $http_user_agent + @prerendering internal location. Complete stack-specific examples for Node.js, Go, Django, Laravel, WordPress, PHP-FPM, and Phusion Passenger.
  • Apachemod_rewrite + mod_proxy. Complete stack-specific .htaccess examples for WordPress, Drupal, Joomla, Magento, Moodle, Laravel, Zend/Laminas, and plain PHP.
  • Caddy — Caddyfile-based integration. Complete examples for Node.js/Next.js, PHP, Django, static sites, and other frameworks.

Application-level integrations

Application-specific integrations via NPM / Atmosphere packages.

Features and how-tos

Learn how to use different features and settings within pre-rendering SEO middleware.

Features

Tip

Pass /sitemap.xml to Pre-Render (Pre-render a website) in the Pre-rendering Panel to instantly render the whole website.

Optimizations

Extras

Integration tests

  • Use cURL with an Authorization header (see Nginx integration): curl -v -H "Authorization: Basic TOKEN" https://render-bypass.ostr.io/?url=https://your-website-domain.com
  • Use cURL with authentication credentials (see Node.js integration): curl -v https://auth:string@render-bypass.ostr.io/?url=https://your-website-domain.com
  • Use test:test credentials to verify general integration (confirms that the web application server can reach the pre-rendering service).
  • Use the Authorization: Basic dGVzdDp0ZXN0 header to verify general integration (confirms that the web application server can reach the pre-rendering service).

Shared references

Canonical regex sources used by every integration:

For AI coding agents

If the user works with an AI coding agent (Cursor, Claude Code, Codex CLI, Antigravity, or any SKILL.md-aware agent), install the ostrio-prerendering Agent Skill from ostr-io/ostrio-agent-skills. It bundles stack detection, the integration decision tree above, patch-ready templates for every tier, the full curl validation matrix, troubleshooting (symptom → cause → verify → fix), and cache-purge runbooks.