Comprobar backlinks de página a través de una API y cachearlo de forma honesta
Nuestro índice se actualiza una vez al mes, por lo que la mayoría de las consultas pueden servirse desde la memoria. Una receta para caches que ahorran créditos sin mostrar a los usuarios datos obsoletos.
Equipo editorial de AlfaLinks ·
La regla
Cachear hasta la próxima actualización del índice, no por un número fijo de horas
Dado que los datos cambian aproximadamente cada mes, un TTL por hora no aporta nada más que coste. Una clave con alcance mensual proporciona la misma respuesta durante todo el mes y se invalida de forma conjunta.
Clave: acción + dominio + parámetros + mes del índice
TTL: hasta que termine el mes, más un día de gracia
Nunca cachear una respuesta de error
Por qué un TTL corto es simplemente una donación a tu saldo de créditos
Los equipos nuevos en datos de enlaces copian hábitos de los rastreadores de posiciones. Hábito uno: una caché por hora, porque las posiciones cambian. Los gráficos de enlaces apenas se mueven.
Una llamada backlinks de 2 créditos cuesta $0.0002. Esto parece poco hasta que una vista de lista dispara 50 de ellas por carga de página en 400 espacios de trabajo activos, repitiéndose cada hora por respuestas idénticas.
Los números detallados a continuación son un ejemplo, no una medición del tráfico de nadie. Supongamos 400 espacios de trabajo, 20 vistas de dominio cada uno al día, 2 créditos por vista, y una caché de 1 hora que acierta quizás una de cada cinco veces. La mayoría de las vistas siguen impactando la API. Con una clave mensual, el mismo tráfico solo llegaría a la API una vez por dominio y mes, por lo que la diferencia es el punto central de la receta.
Las herramientas de investigación de palabras clave necesitan datos más frescos, y para eso las grandes suites siguen siendo la mejor opción. Para el contexto de enlaces, mensual es el producto.
TTL por acción
Sugerido, no obligatorio. Todas las acciones leen el mismo índice mensual.
Acción
Créditos
TTL sugerido
Por qué
resumen, estadísticas
0
Hasta final de mes
Gratis, pero tu servidor aún ahorra latencia
bulk_dr
1
Hasta final de mes
Toda la tabla de clientes en una sola llamada
refdomains, backlinks
2
Hasta final de mes, por parámetro de página
Incluir page, per, sort en la clave
anchors, toppages
2
Hasta final de mes
Estable entre actualizaciones
search, keyword
3
7 días
Poco repetido, barato omitir la caché
Ejemplo de solicitud: calentar la caché para una tabla de clientes
Llama a bulk_dr una vez por cliente, no una vez por fila. Hasta 2.000 dominios caben en un solo cuerpo POST y cuestan un crédito.
bash
curl -X POST "https://alfalinks.net/api.php?action=bulk_dr&key=sk_live_..." \
-d "domains=stripe.com,notion.so,linear.app,figma.com,vercel.com"
# billed once, whatever the row count
Construye la caché en cinco pasos
Cada paso tiene un trabajo. Omite uno y el fallo aparecerá más tarde, generalmente como una factura.
01
Elige la clave
Usa la acción, el dominio, los parámetros de paginación y ordenación, y el mes del índice. Omite cualquier cosa que un usuario pueda cambiar sin alterar la respuesta, como un color de visualización o un nombre de pestaña.
02
Almacena la respuesta analizada
Guarda el JSON decodificado con su indicador ok y los datos, no los bytes crudos. Una vista posterior puede reconstruir toda la tabla desde la memoria sin una segunda llamada.
03
Expirar al final del mes
Establece la expiración al final del mes del índice, más el día de gracia de la regla anterior. Usa la misma regla para todas las acciones, para que la lógica viva en una sola función y no en cinco lugares.
04
Registra el saldo en cada llamada
Lee el objeto _credits en cada respuesta autenticada y escribe el saldo restante en tu propio registro. Una caída lenta en esa línea suele ser la primera señal de que una clave de caché es incorrecta.
05
Vigila la tasa de aciertos
Rastrea con qué frecuencia se sirve una vista desde la caché. Una tasa baja significa que la clave es demasiado específica, o que los usuarios abren un dominio nuevo en cada visita. Cualquiera de estos hallazgos es útil cuando planificas el presupuesto.
¿Son los datos obsoletos una elección de producto o un error?
Una cifra de enlaces puede tener un mes de antigüedad y seguir siendo correcta para el índice del que proviene. Si tu pantalla lo indica, esa es la verdadera pregunta. La mayoría de los tickets de soporte sobre números antiguos son problemas de etiquetado. Las etiquetas suelen solucionarlos.
Asigna a cada cifra su mes del índice. Muéstraselo a los usuarios. Una vez que pueden ver la fecha, el número deja de parecer un feed roto, y esa pequeña línea hace más que un TTL más corto jamás podría.
¿Qué antigüedad es demasiado vieja para una cifra de enlaces?
Nuestro índice se actualiza aproximadamente una vez al mes, por lo que una cifra cachada el primer día describe el mismo índice que una cachada el último día. Nada en la respuesta cambia dentro del mes. Los problemas comienzan cuando un usuario espera un enlace de ayer, y entonces la solución es una etiqueta clara, como se cubre en etiquetas de puntuación.
¿Necesitan las llamadas de resumen gratuitas una caché?
La acción de resumen no cuesta créditos, por lo que la caché aquí protege la velocidad en lugar del saldo. Tu servidor aún paga por cada ida y vuelta, y una página que se abre cincuenta veces por minuto lo notará. Almacena también las respuestas gratuitas, con la misma clave mensual, y la página se mantiene rápida mientras tu proxy permanece silencioso. Las notas de búsqueda pública explican la misma idea para los visitantes.
¿Debería un enlace nuevo saltarse la caché?
Normalmente no. Un salto cuesta créditos por una respuesta que probablemente sea idéntica a la cachada. Si un cliente insiste, explica el mes del índice y ofrece una actualización manual por espacio de trabajo al mes, en lugar de un botón abierto que cualquiera pueda presionar en bucle.
Protección contra estampida y otras pequeñas cosas
Vuelo único: si diez usuarios abren el mismo dominio, haz una llamada upstream y comparte la promesa.
Calienta el primero del mes con un trabajo en segundo plano, no a las 9am cuando llegan los usuarios.
Almacena la respuesta _credits.remaining y alerta por debajo de un umbral que tú elijas.
Cachear el resultado negativo 'dominio no encontrado' por un día, no por un mes.
Exponer la antigüedad de la caché en la UI para que soporte pueda responder 'cuándo se obtuvo esto'.
Por qué una caché supera al scraping para comprobaciones de enlaces
Los equipos que necesitan comprobar backlinks de página a escala suelen comenzar con scripts que consultan motores de búsqueda directamente. Esos scripts se bloquean. Parecen baratos el primer día, por eso los equipos los mantienen mucho más tiempo del necesario. Una caché delante de una API estable suele ser el diseño más barato, con menos partes móviles que supervisar.
La diferencia se muestra en horas de ingeniería más que en la primera factura. Mantén la caché aburrida, y la mayoría de esas horas nunca ocurren.
¿Por qué los comprobadores de enlaces caseros siguen bloqueándose?
Los motores de búsqueda limitan las consultas automatizadas, por lo que un script que funciona limpiamente para cincuenta URLs puede bloquearse en cincuenta mil. Los reintentos, los pools de proxies y los retrasos aleatorios añaden coste que nunca aparece en una línea de créditos, y se rompen sin aviso cuando el objetivo cambia sus respuestas.
¿Cómo mantener un trabajo de lista larga reiniciable?
Escribe cada dominio finalizado en la caché a medida que avanzas. Si el trabajo se detiene a mitad de camino, un reinicio salta todos los dominios que ya tienen una respuesta almacenada y retoma donde lo dejó. No se cobra dos veces por el mismo mes, porque la clave ya contiene la respuesta.
Ejecuta el trabajo a un ritmo constante en lugar de en un solo burst. Espaciar las llamadas mantiene los registros legibles y hace que cualquier cambio en el uso de créditos sea fácil de explicar.
¿Cuánto cuesta una lista de 22.000 URLs con una caché?
Digamos que necesitas comprobar 22.000 URLs enlazantes para un cliente. Muchas comparten un dominio, así que deduplica a dominios primero. Esos 22.000 enlaces podrían reducirse a unos pocos miles de dominios únicos, y una llamada bulk_dr toma hasta 2.000 de ellos por un solo crédito. Almacena cada resultado por dominio y mes, y la lista deja de ser un trabajo por URL por completo. Mantén la aritmética en una nota corta junto al trabajo, para que la siguiente persona pueda volver a ejecutarlo con un tamaño de lista diferente. Un número con su cálculo mostrado es más fácil de confiar que un total por sí solo.
Dónde se conecta esto
La caché es la capa intermedia en la configuración del contador. Una vez que funciona, el coste por asiento se vuelve predecible y puedes fijar un plan alrededor de ello con la comparación por asiento. Las páginas cortas merecen un final claro. Esta lo tiene.
Preguntas sobre caché que vemos en code review
¿Debería la caché vivir también en el navegador?
Una caché corta del navegador ayuda a la navegación con el botón atrás, pero la caché compartida en tu servidor es la que hace el ahorro real. Mantén el almacenamiento del lado del cliente en minutos, ya que los usuarios en diferentes máquinas verían números diferentes para el mismo dominio el mismo día.
¿Qué pasa si un cliente dice que falta un enlace nuevo?
Comprueba el mes del índice mostrado en tu UI. Si el enlace se añadió después de la última actualización, aparecerá después de la siguiente. Ofrece una nota, no un reembolso, porque nada está roto.
¿Puedo saltarme la caché bajo demanda?
Puedes, pero cada salto cuesta créditos por una respuesta que probablemente sea idéntica. Ofrécelo solo a administradores, y limita la tasa por espacio de trabajo para evitar bucles accidentales.
Paginación y la clave de caché
La paginación muerde a todos una vez. Inclúyela en la clave.
Las acciones backlinks y refdomains devuelven hasta 1.000 filas por llamada, con page y per entre 10 y 5000, y la paginación profunda está limitada a 50.000 filas, por lo que una clave sin esos parámetros servirá la página uno para cada solicitud.
La ordenación también pertenece a la clave. Un usuario que cambia de DR descendente a alfabético espera una lista diferente, y la caché debe cumplir sin una nueva llamada upstream cuando el conjunto completo ya está almacenado.
Una prueba rápida captura la mayoría de los errores de clave. Solicita la página dos, cambia la ordenación, luego verifica que la página dos cachada difiera de la página uno cachada. Si no difiere, la clave falta un parámetro. Encontrado temprano, cuesta minutos. Un cliente nunca lo ve. Ejecuta la prueba de nuevo antes de cada lanzamiento, porque una nueva opción de ordenación es la razón habitual por la que la clave se rompe. Escríbelo en tu lista de verificación de lanzamiento.
Planifica el botón de exportación por separado: un trabajo en segundo plano, un archivo almacenado y una notificación cuando esté listo.