TL;DR
Google indexiert schneller mit vollständiger sitemap.xml und RSS für den Blog — Crawler müssen neue Beiträge nicht erraten. Im Next.js App Router erzeugen Sie beides als sitemap.ts und feed.xml/route.ts ohne WordPress-Plugins. Bei Mehrsprachigkeit (pl/en/de) erhält jede Sitemap-URL **hreflang-Alternates; RSS listet nur Beiträge des jeweiligen Locales. Deploy auf DevStudioIT Cloud liefert XML über CDN-Cache. Dynamische Inhalte aus PostgreSQL in Branchly kommen per async Fetch in sitemap.ts.
Für wen
- Next.js-Unternehmensseiten mit Blog und mehreren Sprachversionen
- SEO-Teams mit technischer Kontrolle ohne Yoast
- WordPress-Migrationen — RSS-Abonnenten brauchen neue Feed-URL
- ISR/static generation — Sitemap muss
revalidatewiderspiegeln
Keyword
sitemap nextjs app router, rss feed next.js, feed.xml seo, sitemap.ts mehrsprachigkeit, robots.txt nextjs 2026, hreflang sitemap
sitemap.xml — MetadataRoute
import type { MetadataRoute } from 'next';
import { getBlogPosts } from '@/lib/blog';
const BASE = 'https://devstudioit.com';
export default async function sitemap(): Promise<MetadataRoute.Sitemap> {
const staticRoutes = ['', '/webentwicklung', '/blog', '/kontakt'].flatMap((path) =>
['pl', 'en', 'de'].map((locale) => ({
url: `${BASE}/${locale}${path}`,
lastModified: new Date(),
changeFrequency: 'weekly' as const,
priority: path === '' ? 1 : 0.8,
}))
);
const posts = await getBlogPosts();
const blogEntries = posts.map((post) => ({
url: `${BASE}/${post.locale}/blog/${post.slug}`,
lastModified: new Date(post.updated ?? post.date),
changeFrequency: 'monthly' as const,
priority: 0.6,
}));
return [...staticRoutes, ...blogEntries];
}Ergebnis unter /sitemap.xml. Kein manuelles XML in public/.
| Feld | Empfehlung |
|---|---|
lastModified |
Echtes Änderungsdatum |
changeFrequency |
weekly / monthly |
priority |
0,5–1,0 relativ |
Mehrsprachigkeit — hreflang
export async function generateMetadata({ params }): Promise<Metadata> {
const { locale, slug } = await params;
return {
alternates: {
canonical: `https://devstudioit.com/${locale}/blog/${slug}`,
languages: {
pl: `https://devstudioit.com/pl/blog/${slug}`,
en: `https://devstudioit.com/en/blog/${slug}`,
de: `https://devstudioit.com/de/blog/${slug}`,
},
},
};
}Konsistenz zwischen <head> und Sitemap ist wichtiger als die Wahl einer einzelnen Methode.
RSS / feed.xml
export async function GET(
_req: Request,
{ params }: { params: Promise<{ locale: string }> }
) {
const { locale } = await params;
const posts = await getBlogPosts(locale);
const site = `https://devstudioit.com/${locale}`;
// ... RSS 2.0 XML bauen
return new Response(xml, {
headers: {
'Content-Type': 'application/rss+xml; charset=utf-8',
'Cache-Control': 'public, s-maxage=3600, stale-while-revalidate=86400',
},
});
}URLs: /de/feed.xml, /en/feed.xml. <link rel="alternate" type="application/rss+xml"> im Blog-Head.
robots.ts
export default function robots(): MetadataRoute.Robots {
return {
rules: { userAgent: '*', allow: '/', disallow: ['/api/', '/admin/'] },
sitemap: 'https://devstudioit.com/sitemap.xml',
};
}Staging auf DevStudioIT Cloud mit noindex — eigene Instanz, eigene robots.
Dynamische Inhalte aus Branchly
Case Studies aus PostgreSQL (Branchly) per findMany in sitemap.ts. revalidate: 3600 für stündliche Aktualisierung ohne Full Redeploy.
Validierung
| Test | Tool |
|---|---|
| Sitemap | Google Search Console |
| RSS | validator.w3.org/feed |
| hreflang | Screaming Frog |
Sitemap einmal in Search Console einreichen.
FAQ
Ein RSS oder pro Locale?
Pro Locale — klarer für Abonnenten und <language> im Kanal.
noindex-URLs in Sitemap?
Nein — Crawl Budget verschwenden. Drafts und /preview filtern.
RSS vs Atom?
RSS 2.0 für maximale Kompatibilität.
Rebuild bei 100+ Beiträgen?
Markdown im Repo: bei jedem Build. CMS: async Fetch + revalidate reicht.
Sitemap und RSS für Ihr Next.js?
- Kontakt — Sitemap, hreflang, RSS und Search Console
- JSON-LD Schema.org — Ergänzung zum technischen SEO
- DevStudioIT Cloud — Hosting mit CDN-Cache
Über den Autor
Wir bauen schnelle Websites, Web/Mobile-Apps, KI-Chatbots und Hosting — mit Fokus auf SEO und Conversion.
Empfohlene Links
Von Theorie zu Produktion — Branchly, Hosting-Stack und Referenzen.
