Fairquery Website Tech, SEO & AI-Readiness
Stack tecnológico, puntuación SEO, reglas de robots.txt para rastreadores de IA, llms.txt, sitemap y cabeceras de seguridad; siete herramientas gratuitas.
Documentación
Verificación de Tecnología Web, SEO y llms.txt para Agentes
Devuelve una fila por sitio web (stack tecnológico, puntuación SEO, reglas de robots.txt para rastreadores de IA, sitemap y llms.txt) por $1.50 por cada 1,000 sitios. Pagas $0.0015 por fila de sitio, y las filas de error son gratuitas. Ejemplo: auditar 250 sitios web de leads cuesta 250 × $0.0015 = $0.38, más la tarifa de inicio de Actor de Apify de $0.00005.
Fairquery Actor de Apify que devuelve una fila estructurada por sitio web: stack tecnológico, título/meta/Open Graph/JSON-LD, una lista de problemas SEO con una puntuación de 0–100, reglas de robots.txt para rastreadores de IA (GPTBot, ClaudeBot, PerplexityBot, Google-Extended, CCBot, …), sitemap XML, llms.txt / llms-full.txt, cabeceras de seguridad y una puntuación de preparación para IA de 0–100. HTTP plano (sin navegador), por lo que es rápido y económico.
Cuándo usar este Actor (selección de LLM / herramientas)
Úsalo cuando un agente necesite:
- Enriquecer una lista de leads/empresas con "¿sobre qué está construido este sitio?" (CMS, framework, analítica, chat, pagos, CDN, hosting)
- Realizar una verificación SEO rápida en la página de portadas o páginas de aterrizaje
- Responder "¿tiene este sitio un llms.txt?" / "¿bloquea a GPTBot o ClaudeBot?"
- Obtener el título, la descripción, los enlaces sociales, los feeds y los tipos de datos estructurados de un sitio antes de resumirlo
No lo uses para rastreos completos del sitio, contenido renderizado con JavaScript (las aplicaciones de una sola página pueden mostrar THIN_CONTENT), Core Web Vitals o datos de backlinks.
Cómo funciona
Por sitio (máx. 3 en paralelo): GET /robots.txt → GET <url> → sitemap (desde robots Sitemap: o /sitemap.xml, /sitemap_index.xml) → /llms.txt y /llms-full.txt. Se identifica como FairqueryBot/1.0; por defecto omite páginas que robots.txt desautoriza para rastreadores genéricos. La detección de tecnología utiliza ~75 firmas de HTML/cabeceras/cookies/meta-generator de una sola respuesta.
Entrada
| Campo | Tipo | Predeterminado | Descripción |
|---|---|---|---|
urls | string[] | – (obligatorio; 3 sitios de muestra están precargados en el formulario de la Consola) | Dominios o URLs |
checkRobots | bool | true | robots.txt + mapa de acceso de bots de IA |
checkSitemap | bool | true | Encontrar sitemap y contar URLs |
checkLlmsTxt | bool | true | Verificar /llms.txt y /llms-full.txt |
respectRobotsTxt | bool | true | Omitir URLs desautorizadas para rastreadores genéricos |
maxSites | int | 500 | Límite de seguridad por ejecución |
{ "urls": ["stripe.com", "https://www.example.org/pricing"], "checkSitemap": false }
Salida
Cada fila tiene schema_version (1.0.0), type (site | error), source_url (URL final obtenida), checked_at.
{
"type": "site", "domain": "vercel.com", "status_code": 200, "https": true, "response_ms": 310,
"title": "Agentic Infrastructure - Vercel", "meta_description": "…", "canonical": "https://vercel.com/", "lang": "en",
"h1": ["…"], "word_count": 256, "open_graph": { "title": "…", "image": "…" }, "json_ld_types": ["Organization", "WebSite"],
"technologies": [{ "name": "Next.js", "category": "JS framework", "evidence": "html \"/_next/static\"" }, { "name": "Vercel", "category": "Hosting", "evidence": "header x-vercel-id" }],
"security_headers": { "strict_transport_security": true, "content_security_policy": true },
"robots_txt_found": true, "ai_bots": { "GPTBot": "partial", "ClaudeBot": "partial" },
"sitemap_found": true, "sitemap_url_count": 8787, "llms_txt_found": true, "llms_txt_title": "Vercel",
"seo_score": 100, "seo_issues": [], "ai_readiness_score": 85
}
ai_bots[bot]:allowed(sin reglas),partial(algunas rutas desautorizadas),blocked(raíz desautorizada).seo_issues[]:{code, severity, message}; los códigos incluyenNO_HTTPS,MISSING_TITLE,TITLE_TOO_LONG,MISSING_META_DESCRIPTION,MISSING_H1,MULTIPLE_H1,MISSING_CANONICAL,MISSING_LANG,MISSING_VIEWPORT,NOINDEX,MISSING_OPEN_GRAPH,MISSING_STRUCTURED_DATA,IMAGES_MISSING_ALT,THIN_CONTENT,MISSING_ROBOTS_TXT,MISSING_SITEMAP. Puntuación = 100 − 15/8/3 por problema alto/medio/bajo.ai_readiness_score: llms.txt 25, llms-full.txt 5, bots de IA permitidos hasta 20, JSON-LD 15, ≥150 palabras de texto renderizado en servidor 15, sitemap 10, meta descripción 10; −30 sinoindex.
Filas de error (legibles por máquina, nunca se cobran)
{ "type": "error", "code": "BLOCKED_OR_RATE_LIMITED", "message": "GET https://x.com/ returned HTTP 403.", "retryable": false, "status_code": 403, "input": "x.com" }
Códigos: INPUT_EMPTY, INVALID_URL, MAX_SITES_EXCEEDED, ROBOTS_DISALLOWED, FETCH_FAILED, HTTP_ERROR, BLOCKED_OR_RATE_LIMITED.
Resumen de ejecución
Registro de almacén de clave-valor RUN_SUMMARY: sitios verificados, errores, número de solicitudes HTTP, puntuaciones medias de SEO y preparación para IA, recuento de llms.txt, entrada repetida.
Precios
| Evento | Precio | Cuándo |
|---|---|---|
site-checked | $0.0015 | Cada fila de sitio web devuelta |
apify-actor-start | $0.00005 | Una vez por ejecución, por GB de memoria (evento predeterminado de Apify) |
Las filas de error (FETCH_FAILED, HTTP_ERROR, BLOCKED_OR_RATE_LIMITED, ROBOTS_DISALLOWED, …) nunca se cobran.
Ejemplo práctico: 1,000 dominios de una lista de leads donde 60 no se pueden obtener: 940 × $0.0015 = $1.41, más $0.00005.
Para limitar el gasto, establece un costo máximo por ejecución en las opciones de ejecución; el Actor se detiene limpiamente en el límite. maxSites limita cuántos sitios verifica una ejecución. Los precios provienen de la pestaña de precios de la Tienda (octubre de 2026).
Memoria / tiempo de ejecución
Se ejecuta con 256 MB fijos (predeterminado y máximo; la verificación está limitada por red, por lo que más memoria no ayuda), sin navegador, sin proxy. Normalmente 1–3 s por sitio, 3 sitios en paralelo. Los sitios lentos o con limitación de velocidad tardan más.
Herramientas MCP / Apify
Llama desde agentes a través de Apify MCP (https://mcp.apify.com, autenticado con tu token de Apify), Actor fairquery/website-tech-seo-ai-readiness:
{ "actor": "fairquery/website-tech-seo-ai-readiness", "input": { "urls": ["stripe.com"] } }
Lee elementos del dataset (type == "site") y RUN_SUMMARY. Un servidor MCP stdio independiente vive en el repositorio de GitHub bajo mcp/.
Servidor MCP stdio local
Este repositorio incluye un servidor MCP stdio (TypeScript, @modelcontextprotocol/sdk) bajo mcp/ con herramientas de propósito único. Siete son gratuitas y se ejecutan localmente (sin token); una herramienta opcional de volumen ejecuta este Actor a través de la API de Apify. initialize y tools/list funcionan sin token.
| Herramienta | Qué hace | Paginación | Costo |
|---|---|---|---|
web_quick_check | 1-20 URLs: estado, cadena de redirecciones, tiempo de respuesta, tipo de contenido, título | – | gratis |
web_seo_audit | Una URL: meta/OG/JSON-LD/encabezados/imágenes, seo_issues, seo_score y ai_readiness_score (0-100); la salida es una instantánea reutilizable | – | gratis |
web_ai_crawler_access | Reglas de robots.txt por bot de IA (GPTBot, ClaudeBot, PerplexityBot, Google-Extended, ...), llms.txt / llms-full.txt | – | gratis |
web_tech_stack | Frameworks, CMS, hosting/CDN, analítica con evidencia; filtro category | limit/offset | gratis |
web_sitemap_info | Descubrimiento de sitemap, índice/hijos, lista de URLs con lastmod; contains, sort | limit/offset | gratis |
web_security_headers | HSTS, CSP, X-Content-Type-Options, X-Frame-Options, Referrer-/Permissions-Policy, COOP; puntuación + calificación A-F | – | gratis |
web_compare_snapshots | Comparar dos instantáneas guardadas, una instantánea guardada vs una nueva re-auditoría (seguimiento), o dos URLs en vivo | – | gratis |
web_batch_audit | Auditoría masiva de hasta miles de sitios a través del Actor de Apify (anteriormente check_websites) | – | pago por evento, necesita APIFY_TOKEN |
Los errores son códigos con nombre: INVALID_URL, BLOCKED_PRIVATE_ADDRESS, DNS_FAILED, FETCH_FAILED, TIMEOUT, TOO_MANY_REDIRECTS, SITEMAP_NOT_FOUND, INVALID_ARGUMENTS, APIFY_TOKEN_MISSING, APIFY_ACTOR_RUN_FAILED.
Obtención respetuosa: User-Agent FairqueryBot ... Fairquery-MCP, tiempo de espera de 15 s, límite de 1.5 MB de HTML / 10 MB de sitemap, máx. 5 redirecciones y una protección SSRF que rechaza hosts (incluidos los destinos de redirección) que resuelven a direcciones privadas, de bucle local, link-local o reservadas. Si te ejecutas detrás de un proxy DNS de IP falsa que mapea todos los hosts a 198.18.0.0/15, establece FAIRQUERY_ALLOW_FAKE_IP_DNS=1.
Cambio importante en v1.2.0: check_websites → web_batch_audit (misma entrada, misma facturación); check_llms_txt se eliminó, usa web_ai_crawler_access.
cd mcp && npm install && npm run build
npm run test:live # live test of every free tool, no token
node scripts/smoke-test.mjs # initialize + tools/list, no token
APIFY_TOKEN=... node scripts/smoke-test.mjs --call # real web_batch_audit call
{ "mcpServers": { "fairquery-web": { "command": "node", "args": ["/path/to/website-tech-seo-ai-readiness/mcp/dist/index.js"], "env": { "APIFY_TOKEN": "<optional, only for web_batch_audit>" } } } }
Docker: docker build -t fairquery-web-mcp . (el Dockerfile de la raíz del repositorio construye este servidor MCP y es lo que usa Glama; la imagen del Actor de Apify se construye desde .actor/Dockerfile). glama.json lista a fairquery como mantenedor.
Funciona bien después de
- Google Maps Scraper o Google Search Results Scraper: pasa las URLs de sitios web que devuelven a
urlspara ver el stack tecnológico, los conceptos básicos de SEO y las reglas de rastreadores de IA de cada negocio. - Combínalo con el Website Contact & Company Enricher en la misma lista de dominios para obtener contactos y tecnología en dos filas por empresa.
Solución de problemas
| Síntoma | Causa y solución |
|---|---|
La ejecución falla de inmediato con INPUT_EMPTY | urls estaba vacío. Los tres sitios de muestra en el formulario de la Consola son solo de relleno y no se envían con las llamadas API. |
BLOCKED_OR_RATE_LIMITED (HTTP 403/429) | El sitio bloquea tráfico de datacenter o bots. Estas filas son gratuitas; el Actor no usa proxies ni navegadores para sortear bloqueos. |
ROBOTS_DISALLOWED | robots.txt desautoriza la página para rastreadores genéricos. Establece respectRobotsTxt a false solo si tienes derecho a obtener la página. |
Puntuación SEO baja o THIN_CONTENT en un sitio moderno | La página renderiza su contenido con JavaScript. El Actor lee solo el HTML del servidor (sin navegador). |
| Tecnología faltante en la lista | La detección usa alrededor de 75 firmas de una sola respuesta, por lo que algunas herramientas (por ejemplo, scripts solo de tag-manager) no son visibles. La lista es heurística. |
Preguntas frecuentes
¿Renderiza JavaScript?
No. Hace solicitudes HTTP planas, lo que lo mantiene rápido y económico. El contenido inyectado por JavaScript no se ve.
¿Qué mide la puntuación de preparación para IA?
llms.txt (25), llms-full.txt (5), bots de IA permitidos (hasta 20), JSON-LD (15), al menos 150 palabras de texto renderizado en servidor (15), sitemap (10) y meta descripción (10); menos 30 por noindex. Es heurístico, no un factor de clasificación.
¿Cuánto cuesta?
$0.0015 por fila de sitio ($1.50 por 1,000), más una tarifa de inicio de $0.00005. Las obtenciones fallidas son gratuitas.
¿Cómo limito el gasto?
Establece un costo máximo por ejecución en las opciones de ejecución y/o reduce maxSites.
¿Rastrea todo el sitio?
No. Por sitio obtiene robots.txt, la URL dada, el sitemap y /llms.txt + /llms-full.txt. Usa un rastreador para auditorías completas del sitio.
¿Puede llamarlo un agente de IA?
Sí, a través de Apify MCP con Actor fairquery/website-tech-seo-ai-readiness, o a través del servidor MCP stdio en el repositorio de GitHub, que también tiene herramientas gratuitas de URL única.
Familia Fairquery
Otras herramientas de Fairquery en la Tienda de Apify. Cada una devuelve filas estructuradas con códigos de error legibles por máquina, y las filas de error nunca se cobran:
- Email Validator for Agents (MX, Disposable, Typo): verificación de sintaxis, MX, desechables, roles y errores tipográficos sin enviar correo; $0.79 por 1,000 correos
- Website Contact & Company Enricher: dominio de entrada, correos comerciales públicos, teléfonos, redes sociales y detalles de la empresa de salida; $3 por 1,000 dominios
- Sanctions & Watchlist Screener (OFAC, EU, UK, UN): verificación difusa de nombres contra listas oficiales de sanciones; $3 por 1,000 nombres + $0.007 por ejecución
- LLM Data Guard: PII & Secret Redactor: redacta PII y secretos antes de que el texto llegue a un LLM; $1.50 por 1,000 documentos + $0.20 por 1,000 hallazgos
- Dependency Vulnerability Check for Agents: paquetes y lockfiles contra OSV.dev; $0.50 por 1,000 paquetes + $1.50 por 1,000 vulnerabilidades
- EDGAR Company Facts & Filings for Agents: presentaciones SEC y hechos XBRL por ticker, CIK o nombre; desde $1.50 por 1,000 empresas
- Company Jobs Feed: Greenhouse, Lever & Ashby: empleos en vivo de los propios tableros ATS de los empleadores con señales de antigüedad y republicación; $0.99 por 1,000 empleos + $0.0005 por tablero
- Competitor Change Tracker: Pricing, Terms, Careers & Changelog: observa las páginas públicas de precios, términos, carreras y changelog de los competidores para cambios reales con resúmenes en lenguaje sencillo y alertas webhook; $0.00049 por página verificada + $0.0049 por cambio
- AI Exposure Scanner: Public Secrets, Files & AI-Crawler Policy: escaneo pasivo y puntuado de tus propios dominios y repositorios públicos de GitHub para secretos filtrados (enmascarados), archivos expuestos, política de rastreadores de IA, cabeceras de seguridad y SPF/DMARC; $0.039 por dominio + $0.0039 por repositorio + $0.0019 por hallazgo
- Servidor MCP
@fairquery/agent-trust-mcp: un servidor MCP para Claude Desktop, Cursor y VS Code (npx -y @fairquery/agent-trust-mcp). Tiene 7 herramientas gratuitas que no necesitan token, más herramientas de pago que llaman a los Actores de PII, correo, sanciones y OSV con tu propio token de Apify.
Todos los Actores de Fairquery: https://apify.com/fairquery
Kits y plantillas
Guías opcionales de Fairquery para conectar este Actor a agentes y automatizaciones (el Actor funciona bien sin ellas):
- Inicio rápido del kit de datos para agentes de IA (PDF): configuración de MCP para Claude Desktop y Cursor, llamadas a la API, recetas y estimaciones de costos.
- Paquete de plantillas de flujos de trabajo para n8n + Zapier: 10 flujos de trabajo de n8n importables para los cuatro Actores de Fairquery, además de guías de configuración de Zapier.
- Paquete de indicaciones para agentes de investigación y operaciones de leads: 69 indicaciones para investigación de empresas, limpieza de leads, revisiones de SEO y seguridad.
- Kit de inicio para agentes: 10 recetas de MCP + n8n para copiar y pegar ($5): 10 recetas de MCP + n8n para copiar y pegar, con configuraciones listas para Claude/Cursor y 3 flujos de trabajo iniciales.
Aviso legal
La detección es heurística (solicitud única, sin ejecución de JS). Solo se leen archivos servidos públicamente; robots.txt se respeta por defecto.
Enlaces
- Apify Store: https://apify.com/fairquery/website-tech-seo-ai-readiness
- GitHub: https://github.com/fairquery/website-tech-seo-ai-readiness
- Contacto: fairquery@proton.me
- Licencia: MIT
Desarrollo
Las notas sobre desarrollo local, pruebas e implementación están en DEVELOPMENT.md. El README de Apify Store es .actor/README.md.