Compruebe nombres de imagen descriptivos y con guiones
Sepa antes de publicarla si el nombre de una imagen ayuda: red-running-shoes-side-view.jpg aprueba, mientras que untitled.webp se marca como genérico. Cada problema se indica por separado, de espacios y guiones bajos a mayúsculas o guiones repetidos, y no se sube ninguna imagen. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Nombre de archivo
- red-running-shoes-side-view.jpg
- Nombre base
- red-running-shoes-side-view
- Extensión
- jpg
Un buen nombre de archivo ofrece a personas, equipos editoriales y buscadores una pista clara antes de abrir la imagen. Este comprobador analiza un nombre en segundos, detecta patrones genéricos de cámaras y exportaciones, verifica la separación mediante guiones e informa cada problema por separado. El análisis es determinista, privado y no requiere subir la imagen.
Qué hace descriptivo un nombre de imagen
Un nombre descriptivo identifica el tema visible o el contexto útil del recurso, en vez de conservar un contador de cámara o un texto provisional de exportación. Por ejemplo, zapatillas-rojas-vista-lateral.jpg orienta a quien edita, mientras que IMG_1234.jpg, screenshot-2026-01-12.png y untitled.webp no lo hacen. El comprobador emplea una lista prudente de palabras genéricas y patrones numerados habituales.
No interpreta los píxeles, por lo que no puede confirmar que la descripción sea fiel ni elegir las mejores palabras clave. Esa limitación permite ejecutar una regla determinista en un formulario de carga, siempre con la misma respuesta y sin enviar la imagen. Si se marca un nombre genérico, sustitúyalo por una frase breve que identifique de verdad el tema, variante, ángulo, lugar o función del recurso.
Evite acumular palabras clave: una descripción natural y concreta resulta más clara que una cadena larga y repetitiva.
Por qué se revisan por separado los guiones y la extensión
La prueba de formato espera letras minúsculas y dígitos distribuidos en segmentos separados por un solo guion. Los espacios, guiones bajos, mayúsculas, signos, guiones iniciales o finales y guiones repetidos provocan un fallo. Una raíz descriptiva de una sola palabra puede aprobar, pues no contiene términos que separar.
La extensión es obligatoria porque define sin ambigüedad dónde acaba la raíz descriptiva y empieza el formato. Por ello, una extensión ausente produce un error de entrada y no un resultado SEO negativo normal. Una solicitud válida siempre posee raíz y extensión; los valores booleanos indican después si la raíz describe y cumple el formato.
La salida normaliza la extensión a minúsculas e incluye una propuesta determinista cuando existe un fallo. Use esa propuesta como ayuda de formato, no como descripción automática. Si la raíz original es genérica, reemplácela por términos basados en la imagen antes de publicar.
Cómo integrar el resultado en la publicación
Ejecute la comprobación cuando un recurso entre en su CMS, catálogo de productos, biblioteca digital o repositorio de sitio estático. Así, una interfaz puede explicar con precisión si hace falta reescribir un nombre genérico, corregir separadores o ambas cosas. En integración continua puede rechazar recursos nuevos no válidos y revisar gradualmente los existentes.
Solo se admite el nombre, no una ruta, para impedir que las carpetas influyan en la evaluación y conservar resultados iguales entre sistemas operativos. Tampoco se consulta la red ni se leen bytes de imagen. Guarde los códigos con su auditoría si necesita trazabilidad y vuelva a ejecutar la prueba después del cambio de nombre para confirmar una política uniforme.
Qué puede hacer con ella
Proteja las cargas del CMS
Avise a quien edita si un recurso conserva un nombre de cámara o utiliza espacios y guiones bajos.
Aplique reglas en el repositorio
Revise los nombres base durante la construcción e informe códigos estables antes de publicar.
Ordene un catálogo multimedia
Evalúe los nombres exportados de forma uniforme antes de planificar cambios masivos controlados.
Preguntas frecuentes
¿Cuánto cuesta la comprobación?
El algoritmo no utiliza red ni modelos de IA.
¿Por qué es obligatoria la extensión?
La extensión delimita claramente la raíz descriptiva y el formato. Su ausencia se considera una entrada no válida.
¿Un resultado válido garantiza mejores posiciones?
No. Confirma una convención concreta, no el rendimiento en buscadores. También influyen la relevancia, el contexto, el texto alternativo y la calidad.
¿Se aceptan guiones bajos como separadores?
No. Separe las palabras con un solo guion. Los guiones bajos, espacios y guiones repetidos incumplen el formato.
¿Se examina o se sube mi imagen?
No. Solo se recibe el nombre del archivo y se aplican comprobaciones locales deterministas.
Herramientas relacionadas
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/seo/image-filename-check \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"filename":"red-running-shoes-side-view.jpg"}'const res = await fetch("https://api.kit.forhosting.com/seo/image-filename-check", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"filename": "red-running-shoes-side-view.jpg"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/seo/image-filename-check",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"filename": "red-running-shoes-side-view.jpg"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/seo/image-filename-check", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"filename":"red-running-shoes-side-view.jpg"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"filename":"red-running-shoes-side-view.jpg"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/seo/image-filename-check", 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
{
"filename": "red-running-shoes-side-view.jpg"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "seo.image_filename_check",
"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. |
Notas técnicas
Envíe el nombre con su extensión y obtendrá un resultado JSON estable para formularios de CMS, flujos de carga, listas editoriales o scripts por lotes.
Cómo integrar el resultado en la publicación
El resultado separa descriptive de hyphen_separated, los combina en valid y devuelve códigos de problema estables. Cada comprobación automatizada por API cuesta $0.002.