Snoika
Platform · Integrations

Next.js SEO with Snoika

Snoika publishes search-ready and AI-ready pages on your own Next.js domain. You connect it with one rewrite in next.config.js that sends an agreed path, such as /blog, to the Snoika origin. Your app and your hosting stay as they are. Each page arrives with the technical Next.js SEO work already done, from schema markup to an llms.txt index. To start, add the rewrite with the origin value Snoika's team gives you.

  • Cloudflare Worker, which you set up yourself with…
  • Fastly, set up by Snoika's team
  • Google Cloud Load Balancer
CMS platformsLast 30 days
CHATGPT VISIBILITY10×1StopVAT, 7 weeks
INBOUND LEADS3–4/day3DPrinterOS
LANGUAGES135+with regional variants

Trusted by

1StopVAT logoABS Technologies logoVespia logoAgrello logo3DPrinterOS logoRedDogFish logoLappa logoEGS logoInvestViable logoDoocat logoTNT Wellness logoSmartbet logoAgritopia logoxtrnd logoGreen Bay Remodeling logoWearfits logoad agents logoAcudo logoConnect Point logoBlissed logoeFarm logoEvolved Ideas logoAlpa Kids logoDental Art Clinic logoPhoto9 logo
01

Next.js rewrite to Snoika

A rewrite in next.config.js sends one agreed path to the Snoika origin, and the visitor still sees your domain in the address bar. Next.js fetches the page on the server and returns it under your URL, so search engines index it as part of your site. Snoika's team gives you the origin and sets the Host header to that origin in the rule. The team checks the setup once it's live.

The rule in next.config.js

// next.config.js
module.exports = {
  async rewrites() {
    return [
      { source: '/blog', destination: 'https://ORIGIN-FROM-SNOIKA/blog' },
      { source: '/blog/:path*', destination: 'https://ORIGIN-FROM-SNOIKA/blog/:path*' },
    ];
  },
};
  1. Agree on the path with Snoika's team and get the origin value.
  2. Add both rules and replace the placeholder with the origin.
  3. Deploy to a preview and open /blog and one article URL.
  4. Snoika's team checks the headers and canonical tags on the preview.
  5. Promote the build to production.

Vercel, Netlify and self-hosted Node

The same rule works on all three. Rewrites are part of the Next.js config, so they run wherever your build runs. You don't need a platform-specific plugin.

02

Proxying an external origin

To proxy an external blog through Next.js rewrites, map a source path on your domain to the full URL of the external host. Add a `:path*` wildcard so every article URL follows. The Next.js documentation shows this exact pattern for rewriting /blog externally. It also suggests the pattern for adopting Next.js gradually.

By default, Next.js checks your pages and public files before it applies rewrites. So if your app already has a /blog route, that route wins. Before you go live, check that canonical tags point to your domain. Then check that trailing slashes match on both sides.

Snoika can connect at the DNS or CDN level for the whole website without changes to next.config.js. Requests for Snoika pages go to Snoika, and every other request passes through to your site unchanged. These setups are supported:

Cloudflare Worker, which you set up yourself with…

Fastly, set up by Snoika's team

Google Cloud Load Balancer

AWS CloudFront with Lambda@Edge

Nginx, or a custom setup prepared on request

03

Your app stays put

The rewrite rule is the only change your Next.js app needs. Your routing and hosting stay as they were. Your deployment pipeline also stays unchanged. Snoika pages run next to your app on the same domain. Search engines and visitors see one site, and the content builds authority for your domain. Check that your middleware matcher skips the agreed path. If you use i18n routing or a basePath, test one localized URL as well.

04

Structured data for articles

Every page Snoika publishes carries its own schema markup, so you don't write Article JSON-LD for the proxied pages. Each page also ships with a canonical URL and Open Graph tags. It's linked internally to the related pages, too. Your own app pages still need their own structured data in a `<script type="application/ld+json">` tag in the page component. Run one Snoika article and one app page through Google's Rich Results Test to confirm both parse.

05

llms.txt setup for Next.js sites

To add llms.txt to a Next.js site, put the file in /public, and Next.js serves it from the root. If the contents require frequent updates, return it from a route handler at `app/llms.txt/route.ts` instead. Jeremy Howard of Answer.AI published the format in a September 2024 proposal. It's a Markdown file with an H1 site name and a short summary. The file also contains lists of links. The format is a proposal.

Snoika gives each page a Markdown twin for AI crawlers and builds an llms.txt index for those pages. If your site already has an llms.txt, keep yours at the root and link the Snoika index from it, so you don't end up with two files competing for the same URL.

06

Robots.txt basics for Next.js

For robots.txt in Next.js, add `app/robots.ts` in the App Router. It returns your rules and sitemap URLs, and Next.js turns them into a plain text file. A static `public/robots.txt` works too, on either router. Confirm that no Disallow line covers the agreed path. And if you want ChatGPT search to cite you, don't block OpenAI's search crawler, OAI-SearchBot.

07

Sitemap basics for Next.js

To create a sitemap for Next.js, add `app/sitemap.ts`. It returns an array of URLs with their last-modified dates. Large sites can split it with `generateSitemaps`. Each page Snoika publishes gets a sitemap entry. Confirm with Snoika's team which sitemap URL holds those entries, then list it in robots.txt next to your app's own sitemap. Submit both in Google Search Console.

08

AI discoverability beyond Google

Snoika tracks how your brand shows up in ChatGPT and Google AI Overviews, where most AI search traffic happens. Prompts come from your content map, or you add your own. Every week, Snoika records:

mentions and citations of your brand

which of your pages are cited

share of voice and sentiment

where competitors stand on the same prompts

You see whether the new pages under /blog get cited, and which competitors show up for the prompts you lose.

09

Hosted pages vs custom build

Hosted pages give you published, tracked content without building a blog engine. A custom build gives you full control and costs your team engineering time.

Snoika pages via rewriteCustom Next.js blog
Page templatesSnoika sets up templates that match your siteYour team designs and codes them
ReviewYou approve every page in the dashboard before it goes liveYour own CMS workflow
PublishingScheduled pages, or automatic publishing when no review is neededYour deploys or CMS
Lead trackingGA4 and Google Tag Manager events configured per pageYour team adds the events
Data in your toolsAPI and MCP connection for content, fixes and AI visibility scoresWhatever you build

The API and MCP connection matters if your engineers want to own a piece of the work. They can pull finished content or a list of fixes into their own tools. They can even pull code with the fixes already done.

10

How to connect Next.js

Use /blog if nothing lives there, or choose a path your app doesn't use. Then decide between the rewrite and a CDN-level connection; the integrations directory covers both, next to CMS connections such as WordPress and WooCommerce. A free AI visibility audit is the first step and requires no access to your systems (the WordPress SEO checklist shows the kind of findings it returns). You fill in a short form for an audit of buyer prompts and AI answers. The audit also checks competitors and gaps. Once work starts, Snoika asks for access to Google Analytics 4 and Search Console. It also requests Tag Manager access so AI visibility ties back to traffic you already measure. Snoika handles Next.js SEO on your domain with one rewrite. Connect Next.js to get your origin value.

Once the connection is live, pages follow the AI content creation workflow and can go out through auto-publishing when no review is needed.

FAQ

Place llms.txt in /public to serve it at the root, or use app/llms.txt/route.ts for frequent updates. If you already have a root file, keep it and link to the hosted pages’ llms.txt index from there.

Add rewrites in next.config.js for /blog and /blog/:path*, pointing each to the corresponding external origin URL. An existing /blog route takes priority, so choose an unused path. Test an article URL and confirm its canonical points to your domain before production.

Use app/robots.ts with the App Router, or public/robots.txt with either router. Include your sitemap URLs and check that no Disallow rule blocks the connected path. If you want eligibility for ChatGPT search citations, don't block OAI-SearchBot.

Add app/sitemap.ts to return your app’s URLs and last-modified dates. Hosted pages receive their own sitemap entries, so confirm which sitemap contains them. List that sitemap alongside your app’s sitemap in robots.txt and submit both in Search Console.

The connection covers next.js seo for the hosted pages, while your existing app pages still need their own structured data. Test one hosted article and one app page with the Rich Results Test to check that both parse.

See how AI talks about your brand