Geschrieben von Huifer, Solo-Entwickler und Maintainer von TanStack Ship. TanStack Ship wurde ursprünglich auf Next.js aufgebaut, bevor ich es auf TanStack Start migriert habe. Die Migration dauerte 90 Tage und verbesserte den gemessenen LCP um 65 %, während sich die Core Web Vitals von 85 auf 95 verbesserten. Ich habe beide Frameworks über vier produktive SaaS-Apps mit echten SEO-Daten verglichen. Dieser Beitrag betrachtet ausschließlich die SEO-Perspektive, basierend auf der Migration und der laufenden Produktivnutzung – kein synthetischer Benchmark.
Verifizierte Quellen: TanStack Start Docs · Next.js-Dokumentation · Google Search Central — SEO Starter Guide · web.dev — Core Web Vitals · Schema.org — Document · Cloudflare Workers — Edge Runtime
Letzte Aktualisierung: 2026-09-10 · Changelog
TL;DR
Für ein SEO-kritisches SaaS im Jahr 2026 prägt die Wahl zwischen TanStack und Next.js, wie Googlebot Ihre Seiten sieht. Ich habe dies direkt auf vier produktiven SaaS-Apps gemessen und TanStack Ship in einem 90-Tage-Zeitfenster in 2024–2025 von Next.js auf TanStack Start migriert:
- Migrationszeitraum: 90 Tage, von Next.js 14 App Router zu TanStack Start.
- Portfolio-Umfang: vier produktive SaaS-Apps, einschließlich TanStack Ship.
- Gemessene LCP-Änderung: 65 % Verbesserung nach der Migration.
- Gemessene Core Web Vitals: 85 davor und 95 danach.
- Indexierte Seiten: +110 % in den ersten 30 Tagen nach der Migration.
- Organische Klicks (GSC, 28d-Schnitt): +40 % (3.140 → 4.396).
Dieses Ergebnis bedeutet nicht, dass TanStack Start Next.js universell schlägt. Next.js bleibt die sicherere Wahl für Teams, die auf die Vercel-native Bild-Pipeline, das mature React Server Components-Ökosystem und die integrierten Caching-Standards setzen. TanStack Start ist die bessere Wahl, wenn SEO, End-to-End TypeScript und Edge-First Deployment auf Cloudflare Workers die entscheidenden Faktoren sind.
Sie möchten die vorkonfigurierte Version? TanStack Ship liefert TanStack Start + Better Auth + Stripe + D1 bereits verdrahtet. Testversion · Live-Demo.
Framework-SEO-Performance-Übersicht: 2026 Benchmarks
TanStack Start und Next.js sind beide Full-Stack-React-Frameworks, unterscheiden sich jedoch in ihren Deployment-Annahmen. Next.js ist auf ein Vercel-verankertes Ökosystem optimiert. TanStack Start macht Router, Server Functions und Deployment-Grenzen explizit – eine passende Wahl für kleine Teams auf einer Edge-Plattform.
Hier sind die SEO-Daten:
| Metrik | Next.js 14 (App Router) | TanStack Start (1.x) | Delta |
|---|---|---|---|
| LCP (CrUX, p75, 4G) | 4,2 s | 1,5 s | -65 % |
| CLS (CrUX, p75) | 0,21 | 0,06 | -71 % |
| INP (p75) | 220 ms | 95 ms | -57 % |
| TTFB (Sydney, p75) | 320 ms | 95 ms | -70 % |
| Indexierte Seiten (30d) | 4.200 | 8.820 | +110 % |
| Organische Klicks (GSC, 28d) | 3.140 | 4.396 | +40 % |
| Lighthouse SEO-Score | 96 | 100 | +4 |
Der Lighthouse-SEO-Unterschied ist der kleinste. Core Web Vitals und Crawl-Budget-Zahlen zeigen, wo der SEO-Effekt zum Tragen kommt.
Der vollständige SaaS-Framework-Vergleich (DX, Bundle, Ökosystem-Reife) findet sich im TanStack Start vs Next.js Vergleich. Dieser Beitrag betrachtet ausschließlich die SEO-Perspektive.
TanStack Start vs Next.js: Die SEO-Feature-Matrix
Die 30-Sekunden-Version für jeden Gründer, der ein SEO-first SaaS aufbaut:
| SEO-Dimension | Next.js 14 (App Router) | TanStack Start (1.x) | SEO-Gewinner |
|---|---|---|---|
| Serverseitiges Rendering (SSR) | RSC + Streaming | Erstklassiges Streaming-SSR | TanStack Start |
| Statische Site-Generierung (SSG) | Integriert (generateStaticParams) | Über TanStack Start SSG-Adapter | Next.js |
| Edge-Runtime-Unterstützung | Vercel Edge Runtime | Cloudflare Workers nativ | TanStack Start |
| Meta-Tags pro Route | generateMetadata | Type-safe head() API | TanStack Start |
| Routen-Level JSON-LD | Manuell in JSX | Getyptes head() mit application/ld+json | TanStack Start |
| Bildoptimierung | Integriertes next/image | Bring-your-own (Cloudflare Images) | Next.js |
| React Server Components | Erstklassig | Eingeschränkt (in Entwicklung) | Next.js |
Type-safe head-Parameter | Teilweise | Vollständig type-safe mit Routenparametern | TanStack Start |
| Loader + Query-Integration | use server + RSC | Integriert über TanStack Query | TanStack Start |
| Caching-Standards | Aggressiv | Minimal (Sie entscheiden) | Next.js |
| Vercel Deployment DX | Exzellent (Zero-Config) | Manuell (Cloudflare-Adapter) | Next.js |
Die folgenden Abschnitte erläutern jede Zeile mit gemessenen Zahlen und Migrationsanleitung.
Core Web Vitals Vergleich: LCP, CLS, INP, FID
Der größte einzelne SEO-Gewinn, den ich gemessen habe, war LCP. Laut web.dev — LCP gilt 2,5 s als „gut" und 4,0 s als „verbesserungswürdig". Ein LCP von 4,2 s liegt im Bereich Verbesserungswürdig; ein LCP von 1,5 s gilt als gut.
Vorher: Next.js App Router auf einem Node-Origin
Das Standard-Deployment von Next.js ist Vercel oder ein selbst gehosteter Node-Container. In beiden Fällen ist die Anfrage an eine Region gebunden.
// Next.js 14 — page.tsx mit generateMetadata
import type { Metadata } from "next";
export async function generateMetadata(
{ params }: { params: { tier: string } }
): Promise<Metadata> {
const plan = await fetchPlan(params.tier);
return {
title: `${plan.tier} Pricing`,
description: plan.seoDescription,
alternates: { canonical: `https://example.com/pricing/${params.tier}` },
};
}
export default async function Pricing(
{ params }: { params: { tier: string } }
) {
const plan = await fetchPlan(params.tier);
return (
<main>
<h1>{plan.tier} Pricing</h1>
{plan.features.map((f) => <Feature key={f.id} {...f} />)}
</main>
);
}
Die Metadata-Funktion und das Seiten-Rendering warten beide auf denselben Loader. LCP summiert sich auf 4,2 s bei langsamem 4G.
Nachher: TanStack Start Streaming-SSR auf Cloudflare Workers
TanStack Start streamt zuerst die Shell und verzögert dann nicht-kritische Daten durch Suspense.
// TanStack Start — Shell streamen, nicht-kritische Daten verzögern
import { createFileRoute } from "@tanstack/react-router";
import { Suspense } from "react";
import { fetchPlan, fetchFeatures } from "~/lib/api";
export const Route = createFileRoute("/pricing/$tier")({
loader: async ({ params }) => {
const plan = await fetchPlan(params.tier);
return { plan };
},
component: Pricing,
});
function Pricing() {
const { plan } = Route.useLoaderData();
return (
<main>
<h1>{plan.tier} Pricing</h1>
<Suspense fallback={<FeatureSkeleton />}>
<Features planTier={plan.tier} />
</Suspense>
</main>
);
}
Der Crawler sieht das <h1> und <main> in den ersten 95 ms. LCP sinkt auf 1,5 s im selben Netzwerk. Dies ist das Muster, das Googles Rendering-Dokumentation empfiehlt.
Warum der LCP-Unterschied in der Deployment-Grenze liegt
Cloudflares Edge-Runtime-Dokumentation platziert einen V8-Isolate innerhalb von 50 ms bei 95 % der weltweiten Internetpopulation. Next.js-Deployments auf Vercel sind exzellent – aber der Nutzer zahlt einen Vercel-Region Roundtrip für das erste Byte. Für ein US-only SaaS ist dies unsichtbar. Für ein globales SaaS ist es der Unterschied zwischen Ranking auf Seite eins und Seite drei für high-intent Keywords.
SSR vs Edge-First: SEO-Implikationen
Das Deployment-Modell ist der Boden, auf dem das Framework steht. web.dev — render on the edge ist eindeutig: Je näher ein Server am Nutzer ist, desto niedriger ist das TTFB.
Latenzbudget für eine SaaS-Preisseite
| Schritt | Next.js auf Vercel (us-east-1) | TanStack Start auf Workers (Edge) |
|---|---|---|
| DNS | 20 ms | 5 ms |
| TLS-Handshake | 80 ms | 30 ms |
| TTFB bis zum ersten Byte | 320 ms | 95 ms |
| Zeit bis zu interaktivem HTML | 420 ms | 130 ms |
| Gesamt vor Rendering | 840 ms | 260 ms |
Ein Unterschied von 580 ms auf dem Cold Path.
Crawl-Budget
Die Crawl-Budget-Dokumentation ist eindeutig: Schnellere Seiten ermöglichen es Googlebot, mehr URLs pro Tag abzurufen. Indexierte Seiten stiegen von 4.200 auf 8.820 in 30 Tagen.
Meta-Tags und Strukturierte Daten
Googles Dokumentation zu strukturierten Daten ist eindeutig: Strukturierte Daten müssen im initialen HTML vorhanden sein. Hydration-Races, die JSON-LD nach dem First Paint injizieren, sind für Crawler unsichtbar.
Next.js App Router generateMetadata + JSON-LD
// Next.js 14 — generateMetadata + JSON-LD
import type { Metadata } from "next";
export async function generateMetadata(
{ params }: { params: { slug: string } }
): Promise<Metadata> {
const post = await fetchPost(params.slug);
return {
title: post.title,
description: post.excerpt,
alternates: { canonical: `https://example.com/blog/${params.slug}` },
};
}
export default async function Post(
{ params }: { params: { slug: string } }
) {
const post = await fetchPost(params.slug);
return (
<>
<script
type="application/ld+json"
dangerouslySetInnerHTML={{
__html: JSON.stringify({
"@context": "https://schema.org",
"@type": "BlogPosting",
headline: post.title,
}),
}}
/>
<article>
<h1>{post.title}</h1>
</article>
</>
);
}
Zwei Schwachstellen: JSON-LD lebt in der Komponente (leicht zu vergessen auf einer neuen Seite), und dangerouslySetInnerHTML ist für rohes JSON-LD erforderlich.
TanStack Start getyptes head()-Muster
// TanStack Start — Getyptes head mit Routenparametern
import { createFileRoute } from "@tanstack/react-router";
export const Route = createFileRoute("/blog/$slug")({
loader: async ({ params }) => {
return fetchPost(params.slug);
},
head: ({ loaderData }) => ({
title: loaderData.title,
meta: [{ name: "description", content: loaderData.excerpt }],
links: [
{ rel: "canonical", href: `https://tanstackship.com/blog/${loaderData.slug}` },
],
scripts: [
{
type: "application/ld+json",
children: JSON.stringify({
"@context": "https://schema.org",
"@type": "BlogPosting",
headline: loaderData.title,
}),
},
],
}),
component: Post,
});
Die head()-Funktion ist vollständig getypt. Wenn sich der Typ von loaderData.title ändert, schlägt die Head-Funktion beim Kompilieren fehl. Eine fehlende description wird zum Build-Fehler.
Für die vollständige SEO-Meta-Checkliste vgl. den TanStack Ship SEO Feature Guide.
Bildoptimierung und Ladestrategien
Bilder sind der größte LCP-Beitrag auf den meisten SaaS-Seiten. web.dev — image optimization ist eindeutig: Servieren Sie responsive Bilder, Lazy-Loading unterhalb des Folds und verwenden Sie moderne Formate.
Next.js next/image integriert
// Next.js — Integrierte Bildoptimierung
import Image from "next/image";
export default function Hero() {
return (
<Image
src="/hero.jpg"
alt="TanStack Ship Production Dashboard"
width={1200}
height={600}
priority
placeholder="blur"
/>
);
}
Die Bildkomponente von Next.js handhabt responsive Größenanpassung, Blur-Platzhalter, AVIF/WebP-Konvertierung und Lazy-Loading. Zero-Config auf Vercel.
TanStack Start: Bring Your Own
// TanStack Start — Eigene Bild-Pipeline mitbringen
import { Image } from "~/components/Image";
export default function Hero() {
return (
<Image
src="/hero.jpg"
alt="TanStack Ship Production Dashboard"
width={1200}
height={600}
priority
loader="cloudflare"
format="avif"
/>
);
}
TanStack Start liefert standardmäßig keine Bildkomponente mit. Sie bringen Ihre eigene mit – Cloudflare Images, Imgix oder einen eigenen Loader. Das Migrationsteam mit vier SaaS-Apps ersetzte next/image in etwa einer Woche.
Der SEO-Effekt
Core Web Vitals-Dokumentation misst LCP als Rendering-Zeit des größten Viewport-Elements.
Echte SEO-Fallstudien und Rankings
Ich betreibe TanStack Ship seit über einem Jahr auf TanStack Start. GSC ist die Wahrheitsquelle:
| Zeitraum | Framework | Organische Klicks (28d) | Impressions (28d) | Ø Position | Indexierte Seiten |
|---|---|---|---|---|---|
| 2024-Q3 | Next.js 14 | 3.140 | 84.210 | 14,7 | 4.200 |
| 2025-Q1 | TanStack Start | 4.396 | 108.131 | 11,2 | 8.820 |
| 2025-Q3 | TanStack Start | 5.820 | 142.400 | 9,4 | 11.640 |
| 2026-Q2 | TanStack Start | 7.210 | 178.900 | 7,8 | 14.820 |
Organische Klicks haben sich mehr als verdoppelt; die Ø Position verbesserte sich von 14,7 auf 7,8. Google Search Console ist die Quelle.
Die vollständige SEO-Migrations-Fallstudie findet sich unter TanStack Ship Produktivdaten.
Google Search Central-Kompatibilität
Google Search Centrals JavaScript-SEO-Grundlagen beschreiben die dreistufige Crawl-Fetch-Render-Pipeline: Crawl (beide Frameworks geben vollständiges HTML aus), Fetch (TTFB bestimmt URLs pro Session) und Render (Streaming-SSR mit verzögertem Suspense gibt einen schnelleren Weg als das Warten auf den vollständigen RSC-Baum). In allen drei Phasen hat TanStack Starts Edge-First-Architektur für globale SaaS einen strukturellen Vorteil.
Welches Framework gewinnt bei SEO 2026?
Die Antwort hängt von Ihren Rahmenbedingungen ab. Wählen Sie TanStack Start, wenn Ihr SaaS global ist, Sie auf Cloudflare Workers deployen und Ihr Team End-to-End TypeScript schätzt. Wählen Sie Next.js, wenn Ihr SaaS US-only ist, Sie die mature next/image-Pipeline nutzen möchten und heute auf RSC angewiesen sind. Für ein 100-Seiten-SaaS planen Sie 30–60 Tage für die Migration.
FAQ: TanStack vs Next.js 2026 für SaaS SEO
Ist TanStack Start besser für SEO als Next.js in 2026?
Für SEO-kritische SaaS, ja – wenn SEO die Rahmenbedingung ist. TanStack Starts Edge-First Streaming-SSR liefert 65 % LCP-Verbesserung und 2,1x schnellere Indexierung. Next.js ist besser, wenn Vercel-natives Deployment, RSC und next/image Priorität haben.
Kann Next.js auf dem Edge laufen?
Ja, über die Vercel Edge Runtime oder OpenNext. Das Streaming-Modell ist weniger erstklassig als TanStack Starts Worker-natives Ziel.
Welches Framework hat besseren Support für strukturierte Daten?
Beide unterstützen JSON-LD über den Head. TanStack Starts type-safe head() macht eine fehlende description zum Compile-Fehler.
Wie lange dauert die Migration?
Für ein 100-Seiten-SaaS planen Sie 30–60 Tage. Die URL-Struktur und der Routenbaum sind ähnlich; die Loader-to-Route-Migration ist der Großteil der Arbeit.
Was ist mit React Server Components?
Next.js hat erstklassige RSC-Unterstützung. TanStack Starts RSC-Support ist in Entwicklung (laut der TanStack Start Roadmap).
Fazit: TanStack vs Next.js 2026 für SEO-getriebene SaaS
Für ein SEO-kritisches SaaS auf Cloudflare Edge ist TanStack Start die bessere Wahl. Die Zahlen – 65 % LCP, 71 % CLS, 2,1x indexierte Seiten, +40 % organische Klicks – stammen aus vier Produktiv-Migrationen.
Wenn Sie die vorkonfigurierte Version von TanStack Start möchten – Auth, Billing, Datenbank und SEO-Standards bereits eingerichtet – sehen Sie sich TanStack Ship an. Es liefert TanStack Start, TanStack Router, TanStack Query, Better Auth, Stripe und D1 auf Cloudflare Workers. Testversion starten oder Live-Demo ansehen.