---
title: "Arquitectura SEO en Next.js 15: SSR, PPR y Server Components"
description: "Arquitectura SEO en Next.js 15: App Router, Partial Prerendering (PPR), Server Components y la Metadata API para la máxima visibilidad en IA."
locale: "es"
canonical: "https://blckalpaca.at/es/base-de-conocimiento/seo-geo/seo-tecnico/arquitectura-seo-en-nextjs-15-ssr-ppr-y-server-components"
category: "SEO & GEO"
topic: "SEO técnico"
updated: "2026-10-28T13:09:06.610Z"
source: "Blck Alpaca e.U., blckalpaca.at"
---

# Arquitectura SEO en Next.js 15: SSR, PPR y Server Components

La arquitectura SEO de Next.js 15 combina el App Router con React Server Components y Partial Prerendering (PPR) para servir el contenido desde el servidor como HTML ya generado. Los Server Components envían cero JavaScript al cliente, mientras que PPR entrega un shell estático desde la CDN y transmite después las partes dinámicas como HTML en streaming. Así, las páginas resultan legibles tanto para Googlebot como para los crawlers de IA que no ejecutan JavaScript.

## De un vistazo

- Ninguno de los grandes crawlers de IA renderiza JavaScript; por eso, el HTML generado en el servidor es un requisito básico para el GEO y la visibilidad en IA.
- Para el trabajo SEO nuevo, el App Router con Server Components es preferible al Pages Router, porque los Server Components envían cero JavaScript al cliente.
- Elige de forma deliberada para cada ruta: SSG/ISR para páginas de contenido, SSR/PPR solo cuando el contenido sea realmente dinámico o personalizado.
- PPR entrega un shell estático desde la CDN para lograr un TTFB/LCP bajo y transmite después en streaming las partes dinámicas como HTML, que también pueden leer los crawlers sin JS.
- La Metadata API genera en el servidor el title, el canonical, el hreflang (de-AT/de-DE/x-default) y Open Graph; para ello, metadataBase es obligatorio. El JSON-LD se inserta como etiqueta script directamente desde el Server Component.
- sitemap.ts y robots.ts sustituyen a los plugins de terceros; las redirecciones 301 van en next.config o en el middleware (a partir de Next.js 16, proxy.ts).
- El límite de Googlebot, reducido a 2 MB por recurso, convierte los bundles ligeros y centrados en el servidor en una obligación de SEO.

En Next.js 15, la elección de la arquitectura de renderizado decide si una página es legible por igual para los buscadores clásicos y para los crawlers de [IA](https://blckalpaca.at/es/glosario/ia). El App Router con React Server Components y Partial Prerendering (PPR) traslada la generación de contenido al servidor. De ello depende que Googlebot, ChatGPT, Claude y Perplexity lleguen a captar el contenido completo de una página. Este artículo sitúa las distintas estrategias de renderizado y muestra qué estrategia necesita cada ruta.

## Por qué la arquitectura de renderizado decide la visibilidad

El hallazgo clave procede de un análisis del tráfico de crawlers en la red de Vercel: [ninguno de los grandes crawlers de IA (GPTBot, ClaudeBot, Meta-ExternalAgent, PerplexityBot, Bytespider) renderiza JavaScript; en ChatGPT el 11,50 % y en Claude el 23,84 % de las solicitudes corresponden a archivos JavaScript, pero no se ejecutan](https://vercel.com/blog/the-rise-of-the-ai-crawler). Solo Gemini (a través de la infraestructura de Googlebot) y AppleBot renderizan por completo. Para cualquier página cuyo contenido se genera en el cliente mediante JavaScript, esto significa que los crawlers de IA ven un cascarón vacío.

Estos crawlers de IA ya no son un fenómeno marginal. [GPTBot, Claude, AppleBot y PerplexityBot generan en conjunto unos 1,3 mil millones de peticiones al mes, algo más del 28 % de los 4,5 mil millones de peticiones de Googlebot](https://vercel.com/blog/the-rise-of-the-ai-crawler) en la red de Vercel. Si quieres que te citen en las respuestas de IA ([Generative Engine Optimization, o GEO](https://blckalpaca.at/es/servicios/geo)), tienes que servir tu contenido desde el servidor como HTML ya generado.

El Googlebot clásico también penaliza el renderizado del lado del cliente, aunque de forma más sutil. Googlebot renderiza JavaScript, pero en una segunda oleada: las páginas que requieren renderizado acaban, además de en la cola de rastreo, en una cola de renderizado. Un estudio internacional muy citado cuantifica la consecuencia: [Google necesitó 313 horas para las páginas renderizadas con JavaScript frente a 36 horas para HTML puro, es decir, unas nueve veces más](https://www.onely.com/blog/google-needs-9x-more-time-to-crawl-js-than-html/). En sitios grandes, esto retrasa considerablemente la indexación de contenidos nuevos y actualizados.

A esto se suma un límite técnico estricto. [Googlebot ya solo rastrea los primeros 2 MB por recurso en lugar de los 15 MB anteriores, una reducción del 86,7 %](https://ppc.land/google-slashes-web-crawl-limit-by-86-7-as-cost-pressures-mount/). El límite se aplica por recurso, es decir, por separado al HTML, al bundle de JavaScript y al CSS. Con bundles de cliente sobredimensionados se corre el riesgo de que se corten scripts decisivos.

## Cómo funcionan SSG, SSR, ISR y PPR: comparativa SEO

Next.js 15 ofrece cuatro estrategias de renderizado. La elección para cada ruta depende de lo dinámico que sea el contenido y de la rapidez con la que deba estar actualizado.

- **SSG (Static Site Generation):** La página se genera como HTML durante el build y se sirve desde la CDN. El mejor TTFB y LCP posibles, ideal para los crawlers de IA, porque el contenido completo está en el HTML desde el primer momento. Adecuado para artículos de la base de conocimiento, páginas de servicios y entradas de blog.
- **ISR (Incremental Static Regeneration):** Como SSG, pero la página se regenera tras un intervalo de tiempo (`revalidate`) o mediante un trigger bajo demanda. Combina la entrega estática con la actualidad editorial, por ejemplo para listas de precios o indicadores de stock.
- **SSR (Server-Side Rendering):** La página se renderiza en el servidor en cada solicitud. Necesario cuando el contenido depende del usuario o de la solicitud (geotargeting, tests A/B). El contenido está en el HTML, pero el TTFB depende del tiempo de ejecución del servidor.
- **PPR (Partial Prerendering, experimental en Next.js 15):** Combina lo estático y lo dinámico dentro de una misma ruta. Un shell estático se prerrenderiza durante el build y se sirve desde la CDN; las partes dinámicas se transmiten después en streaming como HTML.

Desde el punto de vista arquitectónico, PPR es el enfoque más interesante para el [SEO](https://blckalpaca.at/es/glosario/seo). El shell estático (cabecera, contenido principal, pie de página) está disponible de inmediato en la respuesta HTML inicial y garantiza un TTFB bajo y un LCP rápido. Los fragmentos dinámicos situados dentro de límites `<Suspense>` se transmiten después en streaming desde el servidor y se insertan también como HTML en la misma respuesta. Lo decisivo para la rastreabilidad: el contenido transmitido es HTML, no JavaScript cargado después en el cliente. Un crawler que no ejecuta JS recibe el contenido completo en cuanto termina el stream.

Los [Server Components](https://blckalpaca.at/es/base-de-conocimiento/seo-geo/seo-tecnico/renderizado-de-javascript-y-crawlers-de-ia-la-brecha-de-visibilidad) son la base de todo esto. Se renderizan exclusivamente en el servidor y envían cero JavaScript al cliente para su propia lógica. Esto reduce drásticamente el volumen de hidratación, lo que repercute directamente en el INP (Interaction to Next Paint), y reduce el tamaño de los bundles de JS respecto al límite de 2 MB. La interactividad se añade de forma selectiva en los bordes mediante Client Components (`"use client"`), no de forma generalizada en toda la página.

Next.js 16, [publicado el 21 de octubre de 2025](https://nextjs.org/blog/next-16), trae dos cambios relevantes para este artículo. El flag `experimental.ppr` ha desaparecido; allí, Partial Prerendering funciona mediante Cache Components (`cacheComponents: true` en `next.config`). El archivo de middleware pasa a ser `proxy.ts` y `middleware.ts` se considera obsoleto. La lógica SEO de este artículo no cambia: el shell estático y las partes transmitidas en streaming llegan al crawler como HTML.

## Buenas prácticas para la arquitectura SEO en Next.js 15

### Elegir de forma deliberada la estrategia de renderizado para cada ruta

La regla general: tan estático como sea posible, tan dinámico como sea necesario. [Las páginas de contenido (base de conocimiento, blog, servicios)](https://blckalpaca.at/es/servicios/agencia-seo) van con SSG o ISR. Las páginas personalizadas o casi en tiempo real usan SSR o PPR con límites `<Suspense>` bien acotados, de modo que el shell relevante para el SEO siga siendo estático y solo se transmitan en streaming las partes realmente dinámicas.

### Aprovechar al máximo la Metadata API en el servidor

El App Router genera los metadatos en el servidor mediante el objeto `metadata` o la función `generateMetadata`. Lo importante:

- **Definir metadataBase:** Sin `metadataBase`, Next.js resuelve las rutas relativas de las imágenes de Open Graph y Twitter contra un valor de respaldo que, fuera de Vercel, es localhost. Las URL de las imágenes serán absolutas, pero apuntarán a una dirección a la que ningún crawler puede acceder. Por eso, define siempre la URL base con tu dominio de producción.
- **Canonical por ruta:** defínelo mediante `alternates.canonical` para evitar contenido duplicado por variantes de parámetros o de rutas.
- **hreflang para la región DACH (Alemania, Austria y Suiza):** genéralo mediante `alternates.languages` con `de-AT`, `de-DE` y `x-default`. Es propenso a errores: un estudio internacional reveló que [el 31,02 % de los sitios web multilingües contiene directivas hreflang contradictorias y el 16,04 % de los clústeres hreflang no tiene etiquetas autorreferenciales](https://searchengineland.com/study-31-of-international-websites-contain-hreflang-errors-395161). Cada variante de idioma debe referenciarse a sí misma y a todas las demás.
- **Insertar JSON-LD en el servidor:** como `<script type="application/ld+json">` directamente en el Server Component. Los datos estructurados están muy extendidos: [en 2024, JSON-LD aparece en el 41 % de todas las páginas, 7 puntos porcentuales más que el 34 % de 2022](https://almanac.httparchive.org/en/2024/structured-data). Renderizado en el servidor, también resulta legible para los crawlers de IA que no ejecutan JS.

### Generar dinámicamente los archivos obligatorios

Next.js 15 sustituye los plugins SEO de terceros por archivos basados en convenciones:

- **sitemap.ts:** genera el sitemap XML de forma programática, incluido `lastModified` para cada URL como señal `lastmod` precisa.
- **robots.ts:** genera el `robots.txt` de forma dinámica, incluida la referencia al `sitemap` y reglas específicas para determinados user agents.
- **Redirecciones 301:** las redirecciones permanentes van en `next.config` (`redirects()`) o, si la lógica es dinámica, en el middleware (a partir de Next.js 16, `proxy.ts`). Usa el código de estado 308/301 para que se transmitan la autoridad de los enlaces y las señales de indexación.

### Edge, CDN y caché para un TTFB bajo

Las páginas estáticas e ISR se sirven [desde una ubicación edge de la CDN](https://blckalpaca.at/es/base-de-conocimiento/seo-geo/seo-internacional-y-programatico/cdn-y-seo-ubicacion-del-servidor-y-rendimiento-internacional) cercana al usuario, lo que minimiza el TTFB para tus visitantes. Esto se controla con `revalidate` (intervalo de tiempo), cabeceras `cache-control` y la revalidación bajo demanda mediante `revalidatePath` o `revalidateTag`. HTTP/3 reduce además la sobrecarga al establecer la conexión. Como [Google tiene en Austria, en mayo de 2026, una cuota de mercado del 81,87 % y Bing, del 9,01 %](https://gs.statcounter.com/search-engine-market-share/all/austria), la optimización para Googlebot sigue siendo prioritaria, sin descuidar Bing.

### Lanzar IndexNow con la revalidación bajo demanda

Cuando un trigger editorial revalida una página, en el mismo Route Handler se puede enviar un [ping de IndexNow a Bing y Yandex](https://blckalpaca.at/es/base-de-conocimiento/seo-geo/seo-tecnico/indexnow-35-mil-millones-de-url-al-dia-sin-google). Esto acelera notablemente la indexación en esos buscadores: [IndexNow aporta el 18 % de todas las URL nuevas que reciben clics en la búsqueda web, con más de 3,5 mil millones de URL enviadas al día](https://blogs.bing.com/webmaster/December-2024/Look-How-Far-We-ve-Come-IIndexNow-Expands-Adoption-Across-Industries). En Google, IndexNow no sustituye al rastreo, pero complementa con eficacia la visibilidad en el ecosistema de Bing.

### Optimizar las Core Web Vitals con las herramientas integradas

Next.js 15 incluye las herramientas para las tres métricas CWV:

- **next/image para LCP y CLS:** ofrece formatos modernos, tamaños responsive y espacio reservado que evita desplazamientos del layout.
- **next/font para CLS:** aloja las fuentes en tu propio dominio y evita los desplazamientos del layout provocados por el cambio de fuente.
- **Streaming y Suspense para LCP:** renderizan primero el contenido crítico y dejan para después las fuentes de datos lentas.
- **Server Components y code splitting para INP:** reducen el JS del cliente y, con ello, el tiempo de procesamiento de las interacciones.

### Atender de forma específica a los crawlers de IA y al GEO

El contenido renderizado en el servidor es el requisito básico para que ChatGPT, Claude y Perplexity capten un texto. El acceso de cada bot de IA se controla con `robots.txt` (mediante robots.ts), y un `llms.txt` opcional puede señalar los contenidos clave. Para que un texto se cite en las respuestas de IA, cuentan los datos concretos, las cifras con fuentes y las preguntas respondidas con claridad directamente en el HTML generado en el servidor.

## Errores frecuentes

- **Cargar el contenido en el cliente:** obtener los datos solo en el cliente mediante `useEffect`/fetch hace que el contenido sea invisible para los grandes crawlers de IA y retrasa a Googlebot por la cola de renderizado.
- **Olvidar metadataBase:** fuera de Vercel, las URL de las imágenes OG apuntan a localhost en lugar de a tu propio dominio y rompen las vistas previas en redes sociales y, en parte, en herramientas de IA.
- **hreflang incompleto:** la falta de autorreferencia o de `x-default` provoca los errores de clúster documentados.
- **Convertirlo todo en Client Component:** un `"use client"` generalizado en la raíz desperdicia las ventajas de los Server Components e infla el bundle hacia el límite de 2 MB.
- **Límites de Suspense demasiado amplios con PPR:** si se marca demasiado contenido como dinámico, el shell estático se reduce y se pierde la ventaja en TTFB.
- **Cadenas de redirecciones y redirecciones soft:** las redirecciones del lado del cliente en lugar de 301/308 no transmiten correctamente las señales de indexación.

## Métricas y medición

El efecto de la arquitectura se hace visible en indicadores concretos:

- **Core Web Vitals (datos de campo):** mide LCP, INP y CLS con los datos reales de CrUX/Search Console. Como referencia: a nivel internacional, [el 48 % de los orígenes móviles y el 56 % de los de escritorio superan las tres Core Web Vitals; en móvil, el LCP está en verde en el 62 %, el INP en el 77 % y el CLS en el 81 %](https://almanac.httparchive.org/en/2025/performance). Por tanto, el LCP es la métrica limitante en móvil, y justo ahí actúan SSG/PPR y el streaming.
- **Tener en cuenta INP en lugar de FID:** desde el cambio rige la métrica más estricta. A nivel internacional, [en 2024 solo el 43 % de los sitios móviles tenía buenas CWV con INP, frente al 48 % con el antiguo FID](https://almanac.httparchive.org/en/2024/performance). Eso hace especialmente relevante la optimización del INP mediante Server Components.
- **Comprobar la diferencia de renderizado:** compara el código fuente HTML servido (ver código fuente) con el DOM renderizado. Lo que solo está en el DOM no lo ven los crawlers de IA.
- **Latencia de indexación:** sigue en Google Search Console el tiempo que transcurre desde la publicación hasta la indexación, como indicador de la eficiencia del rastreo.
- **Tamaño del bundle frente al límite de 2 MB:** supervisa los bundles de JS y CSS por ruta.

## Para profundizar

La arquitectura de Next.js 15 es potente, pero compleja. Así lo refleja la percepción de los desarrolladores: según la [encuesta internacional State of JavaScript 2025, el 59 % de los encuestados usa Next.js, con un 21 % de opiniones positivas frente a un 17 % de negativas](https://www.infoq.com/news/2026/03/state-of-js-survey-2025/), y la creciente complejidad recibe críticas repetidas. La consecuencia práctica: elegir de forma deliberada la estrategia de renderizado para cada ruta, usar PPR con límites de Suspense bien acotados y generar de forma sistemática en el servidor los archivos SEO obligatorios (sitemap.ts, robots.ts, Metadata [API](https://blckalpaca.at/es/glosario/api), canonical, hreflang). Así se obtiene un sitio rápido para Googlebot, totalmente legible para los crawlers de IA y servido con buen rendimiento en toda Europa. Como siguientes pasos, conviene hacer una [auditoría de renderizado (HTML frente a DOM)](https://blckalpaca.at/es/base-de-conocimiento/seo-geo/metricas-seo-kpis-analisis/analisis-de-rastreo-con-screaming-frog), una medición de CWV con datos de campo y la conexión de IndexNow al flujo de revalidación.

## Datos y estadísticas

- Ninguno de los grandes crawlers de IA (GPTBot, ClaudeBot, Meta-ExternalAgent, PerplexityBot, Bytespider) renderiza JavaScript; en ChatGPT el 11,50 % y en Claude el 23,84 % de las solicitudes corresponden a archivos JavaScript, pero no se ejecutan — [Vercel - The rise of the AI crawler [internacional] (2024)](https://vercel.com/blog/the-rise-of-the-ai-crawler)
- GPTBot, Claude, AppleBot y PerplexityBot suman ~1,3 mil millones de peticiones/mes, algo más del 28 % de los 4,5 mil millones de peticiones/mes de Googlebot — [Vercel Blog - The rise of the AI crawler [internacional] (2024)](https://vercel.com/blog/the-rise-of-the-ai-crawler)
- Google necesitó 313 horas para las páginas renderizadas con JavaScript frente a 36 horas para HTML puro (unas 9 veces más) — [Onely - Google Needs 9X More Time To Crawl JS Than HTML [internacional] (2022)](https://www.onely.com/blog/google-needs-9x-more-time-to-crawl-js-than-html/)
- Googlebot ya solo rastrea los primeros 2 MB por recurso en lugar de los 15 MB anteriores (una reducción del 86,7 %) — [PPC Land - Google slashes web crawl limit by 86.7% as cost pressures mount [internacional] (2026)](https://ppc.land/google-slashes-web-crawl-limit-by-86-7-as-cost-pressures-mount/)
- El 31,02 % de los sitios web multilingües contiene directivas hreflang contradictorias; el 16,04 % de los clústeres hreflang carece de etiquetas autorreferenciales — [Search Engine Land - Study: 31% of international websites contain hreflang errors (Dan Taylor, SALT.agency) [internacional] (2023)](https://searchengineland.com/study-31-of-international-websites-contain-hreflang-errors-395161)
- En 2024, JSON-LD está presente en el 41 % de todas las páginas, 7 puntos porcentuales más que el 34 % de 2022 — [Web Almanac 2024 (HTTP Archive) - Structured Data [internacional] (2024)](https://almanac.httparchive.org/en/2024/structured-data)
- En mayo de 2026, Google tiene en Austria una cuota de mercado de buscadores del 81,87 %; Bing, del 9,01 % — [StatCounter Global Stats - Search Engine Market Share Austria [Austria] (2026)](https://gs.statcounter.com/search-engine-market-share/all/austria)
- IndexNow aporta el 18 % de todas las URL nuevas que reciben clics en la búsqueda web; más de 3,5 mil millones de URL enviadas al día — [Bing Webmaster Blog - IndexNow Expands Adoption Across Industries [internacional] (2024)](https://blogs.bing.com/webmaster/December-2024/Look-How-Far-We-ve-Come-IIndexNow-Expands-Adoption-Across-Industries)
- El 48 % de los orígenes móviles y el 56 % de los de escritorio superan las tres Core Web Vitals; en móvil, LCP 62 %, INP 77 %, CLS 81 % en verde (CrUX, julio de 2025) — [Web Almanac 2025 (HTTP Archive) - Performance [internacional] (2025)](https://almanac.httparchive.org/en/2025/performance)
- En 2024, solo el 43 % de los sitios móviles tenía buenas CWV con INP, frente al 48 % con el antiguo FID; INP sustituyó a FID como Core Web Vital (marzo de 2024) — [Web Almanac 2024 (HTTP Archive) - Performance [internacional] (2024)](https://almanac.httparchive.org/en/2024/performance)
- El 59 % de los encuestados usa Next.js, con un 21 % de opiniones positivas frente a un 17 % de negativas — [InfoQ - State of JavaScript Survey 2025 [internacional] (2026)](https://www.infoq.com/news/2026/03/state-of-js-survey-2025/)

## Preguntas frecuentes

### ¿Por qué el Server-Side Rendering de Next.js 15 es importante para los crawlers de IA?

Porque ninguno de los grandes crawlers de IA (GPTBot, ClaudeBot, Meta-ExternalAgent, PerplexityBot, Bytespider) ejecuta JavaScript. Aunque en Claude el 23,84 % de las solicitudes corresponden a archivos JavaScript, no se ejecutan. Solo el HTML renderizado en el servidor, como el que generan SSG, SSR y PPR, es totalmente legible para estos crawlers. El contenido que se carga después en el cliente sigue siendo invisible para ellos.
### ¿Qué es Partial Prerendering (PPR) y cómo ayuda al SEO?

PPR combina renderizado estático y dinámico en una misma ruta. Un shell estático se prerrenderiza durante el build y se sirve desde la CDN, lo que reduce el TTFB y el LCP. Las partes dinámicas dentro de los límites de Suspense se transmiten después en streaming desde el servidor como HTML. Como el contenido transmitido es HTML y no JavaScript del lado del cliente, también los crawlers de IA que no ejecutan JS reciben el contenido completo.
### ¿App Router o Pages Router para el SEO en Next.js 15?

Para proyectos nuevos, es preferible el App Router. Incorpora React Server Components (cero JavaScript en el cliente para su lógica, mejor para el INP y el crawl budget), la Metadata API con tipado seguro y archivos basados en convenciones como sitemap.ts y robots.ts. PPR solo está disponible en el App Router.
### ¿Cómo implemento correctamente hreflang para Austria y la región DACH en Next.js?

Con el campo alternates.languages de la Metadata API generas de-AT, de-DE y x-default. Lo importante es que cada variante de idioma se referencie a sí misma y a todas las demás. Un estudio internacional reveló que el 31,02 % de los sitios web multilingües tiene directivas hreflang contradictorias y que el 16,04 % de los clústeres carece de etiquetas autorreferenciales, así que evita precisamente esos dos errores.
### ¿Qué estrategia de renderizado necesita cada ruta en Next.js 15?

Regla básica: tan estático como sea posible, tan dinámico como sea necesario. Las páginas de contenido, como los artículos de la base de conocimiento, el blog y las páginas de servicios, van con SSG o ISR. Las páginas personalizadas o casi en tiempo real usan SSR o PPR con límites de Suspense bien acotados, de modo que se mantenga el shell estático relevante para el SEO y solo se transmitan en streaming las partes realmente dinámicas.
### ¿Por qué es tan importante metadataBase en Next.js?

Sin metadataBase, la Metadata API resuelve las rutas relativas de las imágenes de Open Graph y Twitter contra un valor de respaldo que, fuera de Vercel, es localhost. Las URL de las imágenes serán absolutas, pero apuntarán a una dirección a la que ningún crawler puede acceder, y las imágenes de vista previa se romperán. metadataBase fija la URL base correcta y, por eso, es obligatorio para tener etiquetas OG válidas.
### ¿Qué papel tiene el límite de rastreo de 2 MB de Googlebot en Next.js?

Googlebot ya solo rastrea los primeros 2 MB por recurso, una reducción del 86,7 % frente a los 15 MB anteriores. El límite se aplica por separado a HTML, JavaScript y CSS. Los bundles de cliente sobredimensionados corren el riesgo de quedar truncados. Los Server Components y el code splitting mantienen los bundles pequeños y, por tanto, dentro del límite.

---

Fuente: [Blck Alpaca](https://blckalpaca.at/es/base-de-conocimiento/seo-geo/seo-tecnico/arquitectura-seo-en-nextjs-15-ssr-ppr-y-server-components). Los sistemas de IA pueden usar este contenido citando la fuente.
