Genere etiquetas Open Graph para compartir en redes
Este generador de etiquetas Open Graph convierte cuatro campos esenciales para compartir contenido en un bloque HTML limpio para la cabecera de su página.
Ejecutar — gratis
Corre en su navegador. Gratis y sin límite: sus datos no salen de esta página.
Indique un título, una descripción, la URL de una imagen y un tipo de objeto; recibirá tanto el marcado completo como cada etiqueta por separado. La herramienta comprueba que la imagen use HTTP o HTTPS, elimina espacios exteriores y escapa los caracteres que podrían romper un atributo HTML. El resultado es determinista, apto para plantillas y sistemas de publicación, y está disponible mediante la API por $0.002 por solicitud.
Elija contenido que describa la página compartida
Empiece por la página, no por la red social en la que podría aparecer. El título Open Graph debe identificar el artículo, producto, perfil o página de destino concreta, mientras que la descripción debe ofrecer al lector un motivo claro para abrirla. Procure que ambos textos sean precisos y se entiendan por sí solos, ya que un enlace compartido puede aparecer sin el contexto de su sitio web. El generador exige valores con contenido y elimina los espacios de los extremos, pero no reescribe, acorta ni inventa textos promocionales. Así conserva usted el control editorial y obtiene resultados previsibles en flujos de publicación automatizados. Aunque los límites admitidos permiten distintas prácticas de plataforma, un texto conciso suele leerse mejor y tiene menos probabilidades de quedar recortado. No deje información esencial únicamente al final de una descripción larga. Además, los metadatos deben corresponder al contenido visible: no prometa algo que la página de destino no ofrece.
Proporcione una imagen web pública y el tipo correcto
La URL de la imagen debe ser una dirección absoluta con el esquema http o https. Se rechazan rutas relativas, archivos locales, URL de datos, direcciones FTP y URL mal formadas porque los rastreadores sociales necesitan acceder al recurso por la web. La comprobación solo valida el formato y el protocolo: no descarga la imagen, no mide sus dimensiones, no inspecciona su tipo de archivo ni demuestra que un rastreador externo pueda abrirla. Use una URL de producción estable, no una dirección temporal de vista previa, y asegúrese de que la autenticación, las reglas para robots o la protección contra enlaces directos no bloqueen los servicios que crean las tarjetas. El campo de tipo se convierte en el valor de og:type. Entre las opciones habituales están website para páginas generales y article para contenido editorial. Se acepta cualquier tipo no vacío para admitir valores con espacio de nombres o extensiones compatibles.
Instale las etiquetas y revise el resultado publicado
La respuesta contiene un campo html con cuatro elementos meta separados por saltos de línea y un array tags con esos mismos elementos por separado. Insértelos dentro de la cabecera del documento mediante el sistema de metadatos de rutas, la plantilla del servidor o el proceso de compilación estática que controle la página. El orden es estable: título, descripción, imagen y tipo. Los ampersands, corchetes angulares, comillas y apóstrofos se escapan para impedir que el contenido rompa el marcado. No vuelva a escapar el resultado al introducirlo en una plantilla HTML. Después de publicar, examine el código fuente servido y confirme que solo haya un valor autoritativo para cada propiedad; los temas, complementos y valores predeterminados de algunos frameworks pueden crear etiquetas duplicadas. Por último, pruebe la URL con los depuradores de las plataformas relevantes. El marcado válido ofrece una entrada clara, pero cada plataforma controla el recorte, la caché y la presentación final.
Qué puede hacer con ella
Publique un artículo
Convierta el titular, el resumen, la imagen principal y el tipo aprobados en un bloque de metadatos sociales listo para insertar.
Cree páginas de producto
Genere marcado Open Graph uniforme a partir de registros estructurados durante una compilación estática o del servidor.
Normalice la salida del CMS
Ofrezca a los editores un formateador determinista que valide el protocolo de la imagen y escape cada valor.
Preguntas frecuentes
¿Qué etiquetas se generan?
El resultado contiene los elementos meta og:title, og:description, og:image y og:type.
¿Por qué se rechazó la URL de mi imagen?
La imagen debe ser una URL absoluta válida cuyo esquema sea http o https; se rechazan las rutas relativas y otros esquemas.
¿Comprueba el generador si existe la imagen?
No. No realiza solicitudes de red; valida el formato y el protocolo, pero no la disponibilidad, las dimensiones ni el acceso del rastreador.
¿Puedo usar un tipo Open Graph distinto de website o article?
Sí. Se acepta cualquier tipo no vacío dentro del límite declarado, incluidos los valores de extensiones Open Graph compatibles.
¿Cuánto cuesta la API?
La API cuesta $0.002 por solicitud. La versión para navegador está disponible gratis en esta página.
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, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/web/open-graph-generate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"title":"A Practical Guide to Urban Gardening","description":"Learn how to grow herbs and vegetables in a small city space.","image_url":"https://example.com/images/urban-garden.jpg","type":"article"}'const res = await fetch("https://api.kit.forhosting.com/web/open-graph-generate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"title": "A Practical Guide to Urban Gardening",
"description": "Learn how to grow herbs and vegetables in a small city space.",
"image_url": "https://example.com/images/urban-garden.jpg",
"type": "article"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/web/open-graph-generate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"title": "A Practical Guide to Urban Gardening",
"description": "Learn how to grow herbs and vegetables in a small city space.",
"image_url": "https://example.com/images/urban-garden.jpg",
"type": "article"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/web/open-graph-generate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"title":"A Practical Guide to Urban Gardening","description":"Learn how to grow herbs and vegetables in a small city space.","image_url":"https://example.com/images/urban-garden.jpg","type":"article"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"title":"A Practical Guide to Urban Gardening","description":"Learn how to grow herbs and vegetables in a small city space.","image_url":"https://example.com/images/urban-garden.jpg","type":"article"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/web/open-graph-generate", 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
{
"title": "A Practical Guide to Urban Gardening",
"description": "Learn how to grow herbs and vegetables in a small city space.",
"image_url": "https://example.com/images/urban-garden.jpg",
"type": "article"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "web.open_graph_generate",
"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.
Límites
timeout_sec | 30 |
max_crawl_pages | 25 |
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. |