Validar Open Graph
La mayoría descubre que sus etiquetas Open Graph están rotas justo después de pegar un enlace en un chat y ver aparecer un recuadro gris vacío donde debería haber una tarjeta de vista previa. Este endpoint revisa las etiquetas antes de que eso pase, mostrando exactamente qué título, descripción e imagen usará el enlace al compartirse, y señalando qué falta o está mal formado.
Ejecutar — gratis
Corre en su navegador. Gratis y sin límite: sus datos no salen de esta página.
Por qué la vista previa y la página casi nunca coinciden a la primera
Las etiquetas Open Graph viven en el head de la página, invisibles para cualquiera que lea la página renderizada, lo que las hace fáciles de olvidar, fáciles de dejar con valores de plantilla sin actualizar y fáciles de romper en silencio cuando una actualización del CMS cambia cómo se inyectan las meta etiquetas. Nadie lo nota hasta que el enlace se comparte en algún lugar que renderiza tarjeta, y para entonces la vista previa defectuosa ya se vio.
Qué revisa realmente la comprobación
La tarea descarga la URL, lee og:title, og:description, og:image, og:type y etiquetas relacionadas, y verifica cada una contra las restricciones prácticas que aplican las plataformas que las consumen: dimensiones y proporción de la imagen, longitud de la descripción antes de truncarse, y si la URL de la imagen realmente resuelve a una imagen real y públicamente accesible en vez de a una ruta rota. Devuelve los valores analizados junto con una descripción de la vista previa renderizada y una lista de problemas concretos, no solo un aprobado o rechazado.
De dónde viene Open Graph
El protocolo se introdujo en 2010 para que cualquier página web pudiera convertirse en un objeto enriquecido dentro de un grafo social, y se construyó deliberadamente como simples meta etiquetas para no requerir soporte especial del servidor. Esa simplicidad es también su fragilidad: no hay advertencia del navegador cuando falta un og:image, como sí la hay con un enlace roto, así que los problemas se acumulan de forma invisible hasta que alguien los revisa.
Revisar más de una página a la vez
Como la comprobación tiene precio por solicitud, encaja de forma natural tanto en un paso previo a publicar un solo artículo como en un barrido periódico sobre todo un conjunto de URLs, ejecutado como solicitudes separadas al mismo endpoint para detectar etiquetas que se degradaron tras un cambio de plantilla o una migración de CMS.
Cómo obtener el resultado
Envía la URL y recibe un task_id de inmediato; el reporte de validación llega por su webhook o por un enlace firmado válido durante 24 horas cuando la comprobación concluye. Una URL inalcanzable reintenta hasta tres veces antes de devolver un error claro, y ese intento fallido nunca se cobra.
Qué puede hacer con ella
Revisión previa a publicar para equipos editoriales
Validar las etiquetas Open Graph de un artículo en el entorno de pruebas antes de publicarlo, detectando un og:image faltante antes que los lectores.
Depurar una tarjeta de compartir rota
Diagnosticar exactamente qué etiqueta falta o está mal formada cuando una página que antes mostraba vista previa correcta de pronto muestra una tarjeta vacía.
Verificaciones tras una migración de CMS o plantilla
Revalidar una muestra de URLs después de un rediseño para confirmar que las nuevas plantillas siguen emitiendo valores correctos de og:title y og:image.
Control de calidad de landing pages antes de una campaña
Confirmar el título, la descripción y la imagen exactos que mostrará la landing page de una campaña pagada al compartirse, antes de que empiece el tráfico.
Preguntas frecuentes
¿Qué revisa exactamente esta api para validar open graph?
Descarga la URL, lee og:title, og:description, og:image, og:type y etiquetas relacionadas, verifica que la imagen sea accesible y tenga el tamaño correcto, y señala lo que falte o esté mal formado.
¿Muestra cómo se va a ver la tarjeta realmente?
Sí, devuelve los valores de las etiquetas junto con una descripción de la vista previa renderizada del título, la descripción y la imagen tal como los mostraría una plataforma al compartirse.
¿También revisa las etiquetas de Twitter Card?
La comprobación se enfoca en las etiquetas Open Graph; cuando una página depende de valores de respaldo de Twitter Card, el reporte indica qué equivalentes og: faltan.
¿Hay una prueba gratis para probar el validador?
La herramienta de arriba es gratis en su navegador. La API es de pago: cada llamada se descuenta de su saldo prepago de ForHosting KIT — se recarga desde $10.00 (no caduca), se paga el precio publicado de cada solicitud, y una llamada sin saldo devuelve HTTP 402. Sin suscripción, sin tokens, y una tarea fallida no se cobra.
¿Cuánto cuesta esta api para validar open graph por revisión?
Una tarifa fija de $0.002 por solicitud, ya sea que la página pase limpia o regrese con una lista de problemas.
¿Puedo validar muchas URLs a la vez?
Cada URL es una solicitud al mismo precio fijo; envíelas de forma individual para revisar un conjunto completo de páginas.
¿Cómo obtengo el reporte de validación?
Mediante un webhook firmado cuando la comprobación termina, o un enlace firmado que permanece válido durante 24 horas.
¿Qué pasa si la página está temporalmente inaccesible?
La tarea reintenta automáticamente hasta tres veces; si sigue sin poder alcanzar la página, falla con un error claro y no se cobra.
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, y pronto desde nuestra app, el email y Telegram.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/seo/og-validate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://ejemplo.com"}'const res = await fetch("https://api.kit.forhosting.com/seo/og-validate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"url": "https://ejemplo.com"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/seo/og-validate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"url": "https://ejemplo.com"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/seo/og-validate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"url":"https://ejemplo.com"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"url":"https://ejemplo.com"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/seo/og-validate", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"url": "https://ejemplo.com"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "seo.og_validate",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |