Sitemaps (SEO) — Referencia técnica
Datos generados en el servidor que impulsan los sitemaps XML públicos y el robots.txt para la indexación en motores de búsqueda de perfiles, publicaciones y páginas de hashtags. No hay interfaz orientada al usuario — esto es infraestructura consumida por Next.js en tiempo de compilación/solicitud.
Dónde vive esto
Backend
apps/backend/graphql/types/sitemap.type.js—SitemapCounts,SitemapProfileEntry,SitemapPostEntry,SitemapHashtagEntry; consultassitemapCounts/sitemapProfiles/sitemapPosts/sitemapHashtags.apps/backend/graphql/resolvers/sitemap.resolver.js
Frontend
apps/frontend-nextjs/src/app/sitemap.ts—generateSitemaps()de Next.js usasitemapCountspara decidir cuántos fragmentos (shards) de sitemap emitir (Google limita un solo archivo de sitemap a 50,000 URLs), y luego obtiene las URLs de cada fragmento mediante las consultas paginadas.apps/frontend-nextjs/src/app/robots.ts—robots.txt.
GraphQL
type SitemapCounts { profiles: Int! posts: Int! hashtags: Int! }
type SitemapProfileEntry { username: String! updatedAt: DateTime! }
type SitemapPostEntry { id: ID! updatedAt: DateTime! }
type SitemapHashtagEntry { name: String! updatedAt: DateTime! }
type Query {
"Totals per section — used to compute how many 50k-URL sitemap shards to generate."
sitemapCounts: SitemapCounts!
sitemapProfiles(limit: Int, offset: Int): [SitemapProfileEntry!]!
sitemapPosts(limit: Int, offset: Int): [SitemapPostEntry!]!
sitemapHashtags(limit: Int, offset: Int): [SitemapHashtagEntry!]!
}
Cada entrada lleva un updatedAt para que el <url><lastmod> emitido refleje la actualidad real del contenido. La paginación (limit/offset) permite que el frontend recorra grandes conjuntos un fragmento a la vez.