Generar meta tags
Un título que mide bien en caracteres puede igual salir cortado en los resultados de búsqueda, porque el corte real es por ancho en píxeles, no por cantidad de letras, y cada letra ocupa un ancho distinto. Esta API lee el contenido real de una página y genera un título y una descripción calculados contra ese límite de píxeles, para que lo que publique se muestre completo. Está pensada para equipos que generan meta tags a escala de catálogo, donde ajustar cada uno a mano no es realista.
Ejecútela online
Ejecute esto en nuestros servidores con su cuenta. Las herramientas gratuitas corren en su navegador; esta cobra de su saldo del KIT según el precio de arriba.
Contar caracteres nunca fue el límite real
Consejos como 'mantén el título bajo 60 caracteres' son solo una aproximación tosca a un corte por ancho de píxeles que los motores de búsqueda realmente aplican, y falla todo el tiempo porque un título lleno de mayúsculas anchas ocupa mucho más espacio horizontal que uno lleno de letras angostas. Las páginas de producto, los archivos de blog y los listados de categoría generados por plantilla suelen producir títulos que se ven bien en una hoja de cálculo y quedan cortados en cuanto se renderizan en los resultados.
Cómo construye cada etiqueta el generador
Envía el contenido de una página, o la URL misma, a POST /seo/meta-generate y el sistema extrae la sustancia de la página, redacta un título y una meta descripción, y verifica ambos contra presupuestos de ancho en píxeles que imitan cómo se renderizan realmente los resultados de búsqueda, recortando o reestructurando el texto hasta que encaje sin perder sentido. El resultado favorece frases específicas y relevantes al contenido por encima del relleno genérico, porque un título saturado de palabras clave pero desconectado del contenido suele perjudicar el clic en vez de ayudarlo.
De dónde viene el problema del ancho en píxeles
Los fragmentos de resultados llevan años reescribiéndose con lógica de corte basada en píxeles, que reemplazó las reglas simples de conteo de caracteres que gran parte de los consejos de SEO todavía citan por costumbre. Ese cambio explica por qué tantos sitios cargan meta descripciones 'correctamente' dimensionadas bajo la regla antigua y hoy igual se cortan a mitad de frase.
Pensada para una escala que una persona no puede cubrir a mano
Un sitio de diez páginas puede tener sus meta tags escritas a mano. Un catálogo de diez mil productos o un blog en varios idiomas no puede, y las etiquetas genéricas copiadas de una plantilla suelen leerse como spam. El endpoint es asíncrono: envía el contenido, recibe un task_id de inmediato y obtiene las etiquetas por webhook firmado o por un enlace válido por 24 horas, sin mantener una conexión abierta.
Cómo encaja en su flujo de contenido
Conéctela justo después de un hook de publicación de su CMS, una sincronización de feed de productos o un paso de traducción, para que cada página nueva o editada reciba un título y una descripción bien dimensionados sin que nadie toque una hoja de cálculo. Nada de lo que envíe se guarda más allá de la ventana de retención ni se usa para entrenar nada.
Qué puede hacer con ella
Etiquetar automáticamente un catálogo de productos
Genere un título y una descripción a la medida para cada producto en cuanto se agrega, en lugar de depender de una sola plantilla genérica para miles de artículos.
Reescribir meta tags tras actualizar un contenido
Vuelva a ejecutar el generador cuando edite a fondo una entrada de blog, para que el fragmento en resultados siga coincidiendo con lo que la página realmente dice.
Adaptar los meta tags por idioma
Como el ancho en píxeles varía según el idioma y el alfabeto, regenere títulos y descripciones por región en vez de reutilizar supuestos de longitud pensados para el inglés.
Corregir una auditoría de cortes en todo el sitio
Pase directo al generador la lista de URL con bajo rendimiento detectadas en una revisión de truncamiento, y corríjalas todas en un solo lote.
Preguntas frecuentes
En qué se diferencia esto de simplemente contar caracteres?
El generador verifica títulos y descripciones contra presupuestos reales de ancho en píxeles, igual que los motores de búsqueda cortan los resultados, en vez de aplicar una regla tosca de conteo de caracteres que varía según la forma de cada letra.
Puede generar etiquetas para páginas en otros idiomas?
Sí, trabaja a partir del contenido y el idioma propios de la página, y el cálculo de píxeles se ajusta porque distintos alfabetos se renderizan con anchos distintos.
Hay una prueba gratuita?
No hay capa gratuita: las capas gratis se abusan y ralentizan a todos. El acceso funciona con un saldo prepago de ForHosting KIT: se recarga desde $10.00 (no caduca) y cada solicitud se cobra a su precio publicado, así que una llamada sin saldo devuelve HTTP 402. Sin suscripción, sin tokens ni créditos inventados, y una tarea fallida no se cobra.
Cómo recupero las etiquetas generadas?
La llamada es asíncrona: POST /seo/meta-generate devuelve un task_id de inmediato, y el título y la descripción terminados llegan por webhook firmado o por un enlace firmado válido durante 24 horas.
Qué pasa si la página tiene poco o ningún contenido?
El generador trabaja con el contenido que exista; páginas muy pobres producen resultados más genéricos, y la solución real es mejorar el contenido de origen.
Cuánto cuesta correrlo sobre un catálogo grande?
Cuesta 0.003 dólares por petición más 0.013 dólares por página, así que el costo de procesar un catálogo completo se calcula por adelantado según su número de páginas.
Sobrescribirá mis meta tags escritas a mano?
No, solo devuelve el título y la descripción sugeridos; aplicarlos a su sitio es un paso que controla usted.
Qué ocurre si falla la generación?
Se reintenta automáticamente hasta tres veces antes de devolver un error claro, y una tarea fallida nunca 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/meta-generate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"input":"…"}'const res = await fetch("https://api.kit.forhosting.com/seo/meta-generate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"input": "…"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/seo/meta-generate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"input": "…"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/seo/meta-generate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"input":"…"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"input":"…"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/seo/meta-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
{
"input": "…"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "seo.meta_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.
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. |
413 | input_too_large | El archivo supera el límite de tamaño. |
422 | task_failed | La tarea falló tras 3 reintentos. No se cobra. |