CrawlForge MCP
SEOInternacionalización2 credits

localization

Audite cómo una página declara su idioma y su región. Devuelve el atributo <html lang>, la cabecera Content-Language, todos los enlaces hreflang rel="alternate", el idioma realmente detectado en el texto visible y, opcionalmente, las metaetiquetas geográficas, de modo que pueda ver dónde las declaraciones de un sitio no concuerdan con su contenido.

Casos de uso

Auditorías de hreflang

Enumere los enlaces de idiomas alternativos que publica una página y compruebe que el conjunto es completo y recíproco entre locales.

Detecte páginas mal etiquetadas

Compare html_lang con detected_language. Una página que declara en pero se lee en español es un defecto real de SEO, y así es como se encuentra.

Cobertura de la competencia

Vea qué idiomas ofrece realmente un competidor, directamente desde su conjunto de hreflang, en lugar de deducirlo de su estructura de URL.

Comprobaciones de regresión en CI

Verifique language_count e is_multilingual después de un despliegue, para que una compilación de i18n rota no llegue a producción con la mitad de los locales ausentes.

Inventario de segmentación geográfica

Recopile las metaetiquetas geo.region y geo.position de todo un sitio para ver qué páginas llevan señales regionales.

Pruebas de respuesta localizada

Envíe una preferencia Accept-Language con la solicitud y compruebe si el servidor varía lo que devuelve.

Endpoint

POST/api/v1/tools/localization
Auth Required
1 req/s en el plan Free
2 credits

Parameters

NameTypeRequiredDefaultDescription
url
stringRequired-
La página que se auditará. Debe ser una URL http o https absoluta y válida.
Example: https://example.com/pricing
target_language
stringOptional-
Idioma que espera. Se envía como `Accept-Language` de la solicitud, se devuelve tal cual y se compara con el idioma detectado y con `html_lang` para producir `matches_target`. La comparación es exacta, así que `es` no coincide con `es-ES`.
Example: es
target_country
stringOptional-
País que espera. Se devuelve tal cual y se envía como cabecera de solicitud `X-Country-Code`. Esa cabecera es una convención de CrawlForge y no un estándar, así que la mayoría de los servidores la ignorarán.
Example: ES
detect_language
booleanOptionaltrue
Detecta el idioma a partir del texto visible de la página. Devuelve un código ISO 639-1, o `und` cuando el texto es demasiado corto o el idioma no se reconoce. Si lo pone en false, `detected_language` se queda en `und`.
Example: true
extract_hreflang
booleanOptionaltrue
Recopila los enlaces hreflang `rel="alternate"`. Si lo pone en false, `alternate_languages` vuelve vacío, lo que también fuerza `language_count` a 0 y `is_multilingual` a false.
Example: true
check_geo_targeting
booleanOptionalfalse
Lee las metaetiquetas `geo.region` y `geo.position`. El objeto `geo_targeting` no aparece a menos que lo solicite.
Example: true
timeout
numberOptional10000
Tiempo de espera de la descarga en milisegundos, entre 1000 y 30000.
Example: 10000
respect_robots
booleanOptionaltrue
Respeta el robots.txt del sitio de destino. Con el valor `true`, una ruta que robots.txt no permita a `CrawlForge` se rechaza con un 403 antes de descargar nada y no se cobran credits. Póngalo en `false` solo para destinos con los que tenga su propio acuerdo: la respuesta incluye entonces una entrada `warnings` y la anulación queda registrada en su API key.
Example: true

Señales que lee

html_lang
El atributo lang del elemento <html>: lo que la página afirma ser. null cuando no existe.
content_language_header
La cabecera de respuesta Content-Language. Es independiente del HTML y a menudo lo contradice.
alternate_languages
Todos los <link rel="alternate" hreflang="…">, en orden de documento. x-default se devuelve como cualquier otra entrada.
detected_language
Detección por trigramas sobre el texto visible de la página, con los scripts y estilos eliminados. Es evidencia, no una declaración.

Ejemplos de solicitud

terminalBash
curl -X POST https://crawlforge.dev/api/v1/tools/localization \
  -H "X-API-Key: cf_test_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com/pricing",
    "target_language": "es",
    "check_geo_targeting": true
  }'

Ejemplo de respuesta

200 OK420ms
{
"success": true,
"data": {
"url": "https://example.com/pricing",
"detected_language": "en",
"html_lang": "en-US",
"content_language_header": "en-US",
"alternate_languages": [
{
"lang": "en",
"url": "https://example.com/pricing"
},
{
"lang": "es",
"url": "https://example.com/es/pricing"
},
{
"lang": "zh-Hans",
"url": "https://example.com/zh-Hans/pricing"
},
{
"lang": "x-default",
"url": "https://example.com/pricing"
}
],
"language_count": 4,
"is_multilingual": true,
"target_language": "es",
"matches_target": false,
"target_country": "ES",
"geo_targeted": true,
"geo_targeting": {
"region": "US-CA",
"position": "37.7749;-122.4194",
"has_geo_meta": true
}
},
"credits_used": 2,
"credits_remaining": 998,
"processing_time": 420
}
Field Descriptions
data.detected_languageCódigo ISO 639-1 detectado en el texto visible, o `und`. Compárelo con `html_lang`: la discrepancia es el hallazgo
data.html_langEl atributo `lang` tal como está escrito, incluida la subetiqueta de región. `null` si la página no tiene ninguno
data.content_language_headerLa cabecera de respuesta `Content-Language`, o `null`
data.alternate_languagesTodas las alternativas hreflang, en orden de documento. El orden de los atributos dentro de cada etiqueta no importa
data.language_countLongitud de `alternate_languages`: no es un recuento de idiomas distintos
data.is_multilingualTrue cuando se encontró al menos una alternativa hreflang
data.matches_targetTrue cuando `target_language` es igual al idioma detectado o a `html_lang`. Es una comparación exacta de cadenas, así que `es` falla frente a `es-ES`
data.geo_targetedRefleja la bandera `check_geo_targeting` que envió. No es un veredicto: para eso, consulte `geo_targeting.has_geo_meta`
data.geo_targeting.positionContenido `geo.position` sin procesar, convencionalmente `latitud;longitud`
credits_used2 credits fijos por URL

Manejo de errores

URL no válida (400 Bad Request)

VALIDATION_ERROR. url es obligatorio y debe analizarse como una URL absoluta. El mismo estado cubre un timeout fuera de 1000-30000.

Página demasiado grande (413 Payload Too Large)

RESPONSE_TOO_LARGE. La página superó el límite de lectura de 25MB y se rechazó en lugar de almacenarse en memoria.

El destino agotó el tiempo de espera (504 Gateway Timeout)

FETCH_TIMEOUT. La página dejó de responder mientras enviaba su cuerpo. Aumente timeout, hasta 30000 ms.

Fallo en la descarga (502 Bad Gateway)

FETCH_FAILED. No se pudo leer el cuerpo de la respuesta: conexión reiniciada, o un cuerpo que no es texto decodificable.

El análisis falló (500 Internal Server Error)

TOOL_ERROR. Una llamada fallida no se cobra; los credits solo se descuentan después de que la auditoría tiene éxito.

Bloqueado por robots.txt (403 Forbidden)

El robots.txt del sitio de destino no permite esta ruta a CrawlForge. Establezca respect_robots: false para anularlo si tiene su propio acuerdo con el destino: la anulación queda registrada en su API key. La anulación no alcanza a un host incluido en la lista de exclusión permanente de CrawlForge, que se rechaza sea cual sea el valor de respect_robots.

Nota: Una página que no devuelve 200 se analiza igualmente en lugar de rechazarse: un 404 con un <html lang> válido devuelve un resultado normal. Compruebe el estado del destino por separado con fetch_url si eso le importa.

Costo en credits

2 credits
2 credits por URL
Tarifa plana por página, sean cuales sean las señales que active. Las llamadas fallidas no se cobran.

Qué incluye:

Extracción de <html lang> y Content-Language

Conjunto completo de hreflang rel=alternate, en orden de documento

Detección de idioma por trigramas sobre el texto visible

Metaetiquetas geo.region y geo.position

Veredicto de coincidencia con el idioma objetivo

Recomendaciones por plan:

Plan Free: 1,000 credits de prueba por única vez = 500 URL

Plan Hobby: 5,000 credits = 2,500 URL ($19/mo)

Plan Professional: 50,000 credits = 25,000 URL ($99/mo)

Herramientas relacionadas

map_site
Enumere las URL de un sitio y luego audite cada local (2 credits)
analyze_content
Detecte el idioma junto con palabras clave, sentimiento y legibilidad (3 credits)
extract_metadata
Extraiga el resto del head: OpenGraph, Twitter, canonical (1 credit)
fetch_url
Descargue con cabeceras personalizadas e inspeccione la respuesta sin procesar (1 credit)
¿Listo para probar localization? Regístrese gratis y obtenga 1,000 credits para empezar a desarrollar.

Pie de página

CrawlForge MCP

Web scraping empresarial para agentes de IA. 29 herramientas MCP especializadas diseñadas para desarrolladores modernos que crean sistemas inteligentes.

Producto

  • Funciones
  • Playground
  • Precios
  • Casos de uso
  • Integraciones
  • Alternativas
  • Registro de cambios

Recursos

  • Primeros pasos
  • Referencia de la API
  • Plantillas
  • Guías
  • Blog
  • Glosario
  • Preguntas frecuentes
  • Mapa del sitio

Desarrolladores

  • Protocolo MCP
  • Claude Desktop
  • Cursor IDE
  • LangChain
  • LlamaIndex

Empresa

  • Acerca de
  • Contacto
  • Privacidad
  • Términos
  • Uso aceptable
  • Cookies

Mantente al día

Recibe las últimas novedades sobre nuevas herramientas y funciones.

Creado con Next.js y el protocolo MCP

© 2025-2026 CrawlForge. Todos los derechos reservados.