Skip to content

prerender/koa

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

prerender-koa

Koa middleware for Prerender.io. Intercepts requests from bots and crawlers and serves prerendered HTML, so your JavaScript-rendered app is fully indexable by search engines and social media scrapers.

Compatible with Koa v2+ and Node.js 18+.

Installation

npm install prerender-koa

Usage

const Koa = require('koa');
const prerender = require('prerender-koa');

const app = new Koa();

app.use(prerender({
  token: 'YOUR_PRERENDER_TOKEN'
}));

// your other middleware and routes

The middleware intercepts bot requests and proxies them to Prerender.io, returning prerendered HTML. Regular browser requests pass through unaffected. All responses include an X-Prerender: true/false header.

Options

Option Type Default Description
token string process.env.PRERENDER_TOKEN Your Prerender.io token
serviceUrl string process.env.PRERENDER_SERVICE_URL or https://service.prerender.io/ Prerender service URL (use this for self-hosted Prerender)
protocol string null Force a protocol (http or https). Defaults to the request's protocol

Environment variables

PRERENDER_TOKEN=your_token_here
PRERENDER_SERVICE_URL=https://service.prerender.io/  # optional

Self-hosted Prerender

app.use(prerender({
  serviceUrl: 'http://your-prerender-server:3000'
}));

How it works

Requests are prerendered when all of the following are true:

  • The HTTP method is GET
  • The User-Agent matches a known bot/crawler (Googlebot, Bingbot, Twitterbot, GPTBot, ClaudeBot, etc.)
    — OR the URL contains _escaped_fragment_
    — OR the X-Bufferbot header is present
  • The URL does not end with a static asset extension (.js, .css, .png, etc.)

Everything else passes through to your normal Koa middleware.

License

MIT

About

Prerender.io integration for koa

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors