Prerender.io customers have been dealing with two recurring problems: unpredictable price increases (G2 reviewers documented 3.5x jumps without advance notice) and stale cache issues where bots get served empty or outdated pages. If either of these sounds familiar, here's how to move to PerfectSearch.
Choosing a deployment method
PerfectSearch has two ways to intercept bot traffic. Pick one based on your setup:
- Middleware (recommended for Next.js teams): Install the npm package and add two lines to your existing
middleware.ts. - DNS proxy: CNAME your domain to
edge.perfectline.io. No code changes. Works with any stack.
Middleware migration
If you were using Prerender.io's Node.js middleware, replacing it takes a few minutes:
npm uninstall prerender-node npm install @perfectsearch/middleware
In your middleware.ts:
import { perfectSearchMiddleware } from '@perfectsearch/middleware';
export const middleware = perfectSearchMiddleware({
apiKey: process.env.PERFECTSEARCH_API_KEY!,
});
export const config = {
matcher: ['/((?!_next/static|_next/image|favicon.ico).*)'],
};DNS proxy migration
If your site is currently behind Prerender.io's CDN via DNS, the swap is simpler. Log into your DNS provider, find the CNAME pointing to Prerender, and change it to:
your-site.com CNAME your-site.edge.perfectline.io
PerfectSearch provisions a TLS certificate for your domain automatically via CertMagic. DNS propagation typically takes under an hour.
Verifying the migration
After deploying, use the bot view tool to check that Googlebot is getting the rendered HTML version of your pages. A word count above 200 for a product page is a good sign. An SPA flag is a problem.
Snapshot warming typically takes 24-48 hours to cover your sitemap. You can also trigger manual snapshot generation from the dashboard or via the queue API.
What changes after migration
A few things will be noticeably different: your snapshots are never more than 24 hours stale (vs Prerender.io where stale times are often undefined), LLM crawlers like GPTBot and ClaudeBot get clean Markdown instead of raw HTML, and your billing is metered and predictable -- no surprise invoices.