La imagen Open Graph de Next.js no funciona
La mayoría de los errores de vista previa en Next.js se deben a la API de Metadata: la falta de metadataBase, un objeto openGraph que sustituye al elemento principal o un archivo de imagen que supera el límite permitido.
Última actualización
Solución rápida
Define metadataBase en el diseño raíz (root layout) para que las rutas relativas de las imágenes se conviertan en URL absolutas.
Repite el objeto openGraph completo en cualquier página que lo anule.
Mantén opengraph-image por debajo de 8 MB y twitter-image por debajo de 5 MB.
Comprueba la URL desplegada con el verificador de etiquetas meta, no en localhost.
Por qué falta o es incorrecta la vista previa de Next.js
Rutas de imagen relativas sin
metadataBase. Una URL relativa en un campo de metadatos basado en URL sin metadataBase provoca un error de compilación y, de todos modos, las plataformas no pueden obtener rutas relativas.Una página sobrescribe
openGraphy pierde la imagen. Los metadatos de los layouts y las páginas se combinan superficialmente, por lo que el objeto openGraph de una página reemplaza todo el openGraph del layout, incluida la imagen.El archivo de imagen es demasiado grande.
opengraph-imagedebe ocupar menos de 8 MB ytwitter-imagemenos de 5 MB, o la compilación fallará.Has realizado pruebas en localhost o en un despliegue de vista previa protegido. Las plataformas obtienen la información desde sus propios servidores y no pueden acceder a él.
La plataforma ha almacenado en caché un despliegue anterior. Actualízala después de aplicar la solución.
Cómo solucionarlo
En
app/layout.tsx, definemetadataBase: new URL('https://tu-dominio.com').Cuando una página defina
openGraph, incluyeimagesde nuevo o propaga las imágenes principales desdegenerateMetadata.O añade un archivo
opengraph-image.pngal segmento de ruta. Next.js añadirá og:image, su tipo, ancho y alto por ti.Para imágenes generadas, utiliza
ImageResponsedenext/ogconsize = { width: 1200, height: 630 }.Despliega y, a continuación, comprueba la URL pública con el comprobador de etiquetas meta.
Etiquetas que Next.js debería generar
og:title,og:description,og:urlog:imageconog:image:width,og:image:heightyog:image:typeog:image:altdesdeopengraph-image.alt.txttwitter:cardytwitter:image(URL absoluta)
Puedes escribirlas a mano con el generador de etiquetas meta y compararlas con tu compilación.
Reglas de tamaño de imagen
opengraph-image: .jpg, .jpeg, .png o .gif, máx. 8 MB
twitter-image: los mismos tipos, máx. 5 MB
1200 x 630 px es el tamaño que Next.js utiliza en sus ejemplos
Metadatos en streaming y rastreadores
Las versiones más recientes de Next.js pueden transmitir metadatos en streaming desde generateMetadata hacia el body. Para bots con soporte HTML limitado como facebookexternalhit, Next.js sigue bloqueando el renderizado y coloca las etiquetas en el head. Detecta estos bots mediante el user agent. Puedes anular la lista con htmlLimitedBots en next.config.
Cómo forzar una actualización
Next.js no puede borrar la caché de otra plataforma. Tras el despliegue, actualiza cada plataforma: Post Inspector para LinkedIn, el Sharing Debugger para Facebook, un nuevo parámetro de consulta para X, Slack y Discord. La herramienta de actualización incluye todas ellas.
Fuentes
Preguntas frecuentes
¿Por qué mi og:image de Next.js es una URL relativa?
metadataBase no está configurado. Configúralo en el diseño raíz (root layout) para que Next.js convierta las rutas relativas en URL absolutas.
¿Por qué mi página pierde la og:image de la plantilla?
Next.js combina los metadatos de forma superficial. Si una página define openGraph, reemplaza el objeto openGraph del layout, por lo que debes volver a añadir las imágenes en la página.
¿Cuál es el límite de tamaño de archivo para opengraph-image en Next.js?
8 MB para opengraph-image y 5 MB para twitter-image. Los archivos más grandes provocan un error en la compilación.
Comprueba tu página y, a continuación, actualiza la vista previa
Pega tu URL en el comprobador gratuito para ver las etiquetas exactas que lee cada aplicación. Una vez que las etiquetas sean correctas, usa la herramienta de actualización para borrar la vista previa antigua.
Guías relacionadas
La tarjeta de X (Twitter) no se muestra o no se actualiza
X genera la tarjeta a partir de las etiquetas twitter: y, en su defecto, de las etiquetas og:. Ya no existe un validador que actualice la caché, por lo que la solución pasa por usar las etiquetas correctas y una URL nueva.
La vista previa para redes sociales de Framer no se actualiza
Framer define una vista previa para redes sociales en todo el sitio, anulaciones de página e imágenes de CMS por elemento. Si la nueva imagen ya está publicada pero sigue apareciendo la antigua, la causa es la caché de la plataforma.
La imagen Open Graph de Webflow no funciona
Webflow configura Open Graph por página, nunca de forma global. Las páginas de plantilla de CMS necesitan un campo de Imagen, y todas las imágenes de esa colección deben tener el mismo tamaño.