Files
ChemaVXandClaude Opus 5 5b91895ef1 estado: cerrar los siete puntos ciegos del vigilante, y pasarlo a diario
Recuento de los fallos de esta semana: diecisiete. Ni uno solo fue un caso que
el vigilante juzgara mal — los diecisiete estaban en sitios donde el vigilante
no mira. Eso es una buena noticia: los puntos ciegos son enumerables y el
juicio equivocado no.

Lo que no miraba nadie, con el fallo real que lo motiva:

  tags        5 duplicados vivieron TRES SEMANAS repartiendo 7 posts entre dos
              archivos flacos, los dos ofrecidos a Google en sitemap-tags.xml
  páginas     todas las reglas eran de posts; /about no tiene metas en ninguno
              de los dos sitios
  <head>      el EN emite DOS Article con titulares distintos, y sigue con
              twitter:site=@ghost y article:publisher=facebook.com/ghost
  robots.txt  el bloque «Cloudflare Managed» apareció solo en el EN y nadie lo
              decidió; cambia sin pasar por git
  hreflang    lo comprobaba SOLO seo_audit.py, que NO TIENE TIMER
  hub         se publicó una vez y se pudrió: «31 casos» con 33
  programados check_rules hace `if status != "published": continue`, así que un
              programado con la meta mal es invisible hasta el día DESPUÉS de
              publicarse — cuando ya lo ha visto Google

Decisiones:
  - módulo aparte y no dentro de seo_watch.py (ya pasa de 500 líneas), pero
    colgando del MISMO vigilante: una huella por sitio y un solo aviso. Dos
    notificadores compitiendo es como se deja de leer un informe
  - robots.txt se compara contra una INSTANTÁNEA versionada. Sin una foto
    contra la que comparar, un cambio que nadie hizo es invisible para siempre
  - un chequeo que revienta se convierte en HALLAZGO, no tumba a los demás. Lo
    peligroso de un vigilante no es que falle: es que falle y parezca limpio
  - og_*/twitter_* vacíos en una PÁGINA quedan fuera por COMPROBACIÓN, no por
    comodidad: Ghost los deriva de las metas al renderizar, verificado sobre el
    HTML público del hub ES. Avisar de eso sería mandar a arreglar algo que ya
    está bien

Timer semanal → DIARIO. Con 2 posts/semana más programados y deriva de tema y
robots, el lunes dejaba hasta seis días de exposición. No añade ruido: solo
avisa si hay hallazgos Y han cambiado, así que un día limpio no manda nada.

8 tests, cada uno la cicatriz de un fallo real, incluidos los dos que hacen
creíble a un vigilante: que DETECTA la avería (probado con deriva simulada de
robots) y que un chequeo roto se oye.

Primera ejecución real: 8 hallazgos, todos preexistentes, 32 s.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-29 17:21:46 +00:00

16 lines
591 B
SYSTEMD

[Unit]
Description=SEO watch DIARIO (05:30 UTC, antes de la publicación de las 06:00)
[Timer]
# Era semanal (lunes). Se pasó a diario el 2026-07-29: con 2 posts por semana
# más los programados y la deriva de robots/tema, una cadencia semanal dejaba
# hasta SEIS días de exposición — el bug de los tags duplicados vivió tres
# semanas. Diario no añade ruido: solo avisa si hay hallazgos Y han cambiado
# respecto a la ejecución anterior, así que un día limpio no manda nada.
OnCalendar=*-*-* 05:30:00 UTC
Persistent=true
RandomizedDelaySec=300
[Install]
WantedBy=timers.target