ForHosting KIT · SEO

Compruebe la consistencia y reciprocidad de hreflang

Los grupos hreflang solo funcionan de forma fiable cuando cada página participante declara el mismo conjunto completo de alternativas, incluida su propia referencia.

● BetaGratis · en su navegador
Úselo desde WebAPIEmailTelegramApp pronto

Este comprobador compara mapeos reunidos de varias páginas y descubre grupos incompletos sin descargar ninguna URL. Construye el conjunto esperado a partir de todas las URL de origen y destino, contrasta cada origen y devuelve los enlaces exactos que faltan en cada página. El resultado es determinista y sirve para lanzamientos, migraciones y controles SEO repetibles.

Por qué importan los grupos recíprocos completos

Una anotación hreflang no es una simple recomendación unidireccional entre páginas. Describe la pertenencia a un grupo de páginas equivalentes por idioma o región, y cada página debe publicar el mismo conjunto de destinos, incluida ella misma. Si la página inglesa menciona las alternativas francesa y alemana, pero la francesa solo menciona la inglesa, el grupo está incompleto aunque varias etiquetas aisladas parezcan correctas. Los buscadores pueden ignorar relaciones sin respaldo, mostrar una versión lingüística inadecuada o debilitar la señal regional prevista. La revisión manual pierde fiabilidad cuando el grupo crece, porque las relaciones aumentan con rapidez. Un grupo de cuatro páginas exige que cada una declare los cuatro destinos: deben existir dieciséis relaciones entre origen y destino. Este comprobador convierte la comparación visual en una prueba exacta de conjuntos. Solo confirma la consistencia cuando cada página representada en los mapeos declara todas las páginas del grupo; así muestra claramente las omisiones y autorreferencias ausentes.

Cómo preparar e interpretar los mapeos

Envíe un registro por cada declaración hreflang observada. page_url identifica la página que contiene la etiqueta, language conserva el valor de la etiqueta y target_url señala su destino. Incluya registros de todas las páginas que deban pertenecer al grupo. El comprobador deriva el grupo esperado de la unión de URL de origen y destino. Así detecta un fallo especialmente útil: si las páginas hermanas hacen referencia a una página que no aporta declaraciones propias, esta sigue formando parte del conjunto esperado y aparece como carente de todos los destinos. Las URL se comparan como cadenas exactas después de retirar espacios exteriores; por ello, la recopilación debe usar la forma absoluta canónica emitida por las páginas. La salida ofrece un resumen por página y una lista de conflictos. Las páginas incompletas incluyen missing_urls con los destinos exactos que deben añadirse. consistent solo es verdadero cuando no hay conflictos; las declaraciones duplicadas no crean una falsa integridad porque los destinos se tratan como un conjunto.

Uso en lanzamientos, migraciones y auditorías periódicas

El momento más útil para comprobar la reciprocidad es antes de que los rastreadores alcancen una publicación multilingüe. Exporte las declaraciones hreflang generadas por las páginas renderizadas, conviértalas en registros de mapeo y detenga la publicación cuando consistent sea falso. De este modo detectará ramas de plantilla que omiten la página actual, despliegues regionales que solo actualizan el mercado nuevo y migraciones donde una configuración regional aún emite URL antiguas. También puede ejecutar la prueba después de que el equipo editorial añada o retire idiomas. Como el algoritmo no realiza solicitudes de red, no demuestra que un destino responda, sea canónico o contenga material equivalente; esas comprobaciones requieren rastreo y revisión editorial. Su promesa es precisa: determina si cada página representada enumera todas las demás y se incluye a sí misma. Las solicitudes API utilizan el precio base publicado de $0.002. Guarde los conflictos con las pruebas del despliegue para vincular cada corrección con un origen y destino concretos.

Validar un lanzamiento multilingüe

Compruebe antes de publicar que cada nueva configuración regional y cada página hermana existente ofrecen el conjunto completo de alternativas.

Auditar una migración de plataforma

Compare los mapeos de las nuevas plantillas e identifique páginas que perdieron autorreferencias o enlaces de retorno durante la migración.

Proteger una canalización SEO

Convierta un grupo incoherente en un control determinista fallido que detalle cada relación ausente entre origen y destino.

¿Cuándo es consistente un grupo hreflang?

Cada URL representada debe declarar todas las URL del grupo, incluida ella misma. El resultado solo es verdadero cuando existen todas esas relaciones.

¿El comprobador descarga las páginas?

No. Solo compara los mapeos enviados; no verifica el estado HTTP, las etiquetas canónicas ni el contenido.

¿Cómo detecta páginas de origen ausentes?

El grupo esperado combina las URL de origen y destino. Por eso, una URL que solo aparece como destino se marca como página sin declaraciones.

¿Las declaraciones duplicadas generan conflictos?

No afectan a la integridad. Los destinos se comparan como conjunto, aunque el recuento de mapeos conserva todos los registros enviados.

¿Se normalizan las variantes de URL?

No. Se comparan exactamente tras retirar espacios exteriores. Normalice esquema, host, ruta y barra final antes de enviar los datos.

¿Cuánto cuesta una solicitud API?

Cada solicitud utiliza el precio base publicado de $0.002. La comparación no usa red ni modelos.

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.

POSThttps://api.kit.forhosting.com/seo/hreflang-conflict-check

¿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.

curl -X POST https://api.kit.forhosting.com/seo/hreflang-conflict-check \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"mappings":[{"page_url":"https://example.com/en","language":"en","target_url":"https://example.com/en"},{"page_url":"https://example.com/en","language":"fr","target_url":"https://example.com/fr"},{"page_url":"https://example.com/fr","language":"en","target_url":"https://example.com/en"},{"page_url":"https://example.com/fr","language":"fr","target_url":"https://example.com/fr"}]}'
{
  "mappings": [
    {
      "page_url": "https://example.com/en",
      "language": "en",
      "target_url": "https://example.com/en"
    },
    {
      "page_url": "https://example.com/en",
      "language": "fr",
      "target_url": "https://example.com/fr"
    },
    {
      "page_url": "https://example.com/fr",
      "language": "en",
      "target_url": "https://example.com/en"
    },
    {
      "page_url": "https://example.com/fr",
      "language": "fr",
      "target_url": "https://example.com/fr"
    }
  ]
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "seo.hreflang_conflict_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.

Por solicitud$0.002

Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.

HTTPCódigoSignificado
401unauthorizedAPI key ausente o inválida.
402insufficient_balanceEl saldo no cubre el precio de la tarea.
404unknown_typeEl tipo de tarea no existe.
429rate_limitedDemasiadas peticiones. Use el webhook en vez de sondear.

Ver la documentación completa del KIT →