ChemaVXandClaude Opus 5 66540c12e6 gsc: página × consulta, y lo que enseña es que el CTR no era el problema
`page` y `query` se descargaban por separado, así que no había forma de saber
de qué búsquedas salían las impresiones de una URL. Con eso faltando, el dato
más llamativo del marcador (uss-nimitz: 1.254 impresiones en posición 6,7 y
CERO clics) admitía tres explicaciones incompatibles y no se podía elegir.

Ya se puede. El 91% de las impresiones del EN son ANÓNIMAS: consultas tan raras
que Google no las nombra. En el Nimitz, de 1.254 impresiones solo 29 tienen
consulta conocida. No es un problema de titular — reescribirlo no tocaría el
99% del volumen. En el ES el anónimo es el 66%, y el ES convierte 3x mejor.

Decisiones:
  - tabla filas_pq aparte, no un `dim` más de `filas`: son DOS dimensiones y
    con la clave concatenada cualquier agregado que olvidase filtrar por dim
    contaría el mismo clic dos veces
  - backfill troceado en ventanas de 90 días: con tres dimensiones las filas
    se multiplican y un tirón de 16 meses puede pasarse del tope de paginación
  - el informe enseña el HUECO lo primero, no lo esconde. Una página cuyo
    volumen es casi todo anónimo no se arregla por el titular, y el informe lo
    dice en voz alta al pasar del 70%

Verificado: filas_pq suma exactamente lo mismo que dim='query' en la misma
ventana (EN 405 imp, ES 144), que es la comprobación de que no se cuelan ni se
pierden filas por el camino.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-29 16:09:25 +00:00

seo-tools

SEO rule engine + tooling for the Ghost blogs (EN: theexclusionzone.com).

  • seo_rules.py — shared rule engine (pure functions, no I/O). Single source of truth for thresholds + checks. Consumed by the auditor, the validator, and (vendored) by ResearchOwl's blog pipeline.
  • seo_audit.py — Tool A: site-wide auditor (reads all published posts via ghst-en).
  • seo_validate.py — Tool C: single-post pre-publish validator (seo-check wraps this).
  • seo_exceptions.py — documented, consciously-accepted waivers (auditor reporting filter).
  • seo_mirror.py — OG/Twitter mirroring helper.
  • phase2_*.py/json — one-off batch helpers (kept for provenance).

No secrets live here. Ghost access is via the ghst-en wrapper (~/.local/bin), which fetches a staff token on demand from the pod and never writes it to disk.

S
Description
No description provided
Readme
683 KiB
Languages
Python 100%