hreflang: curadas las 5 parejas de agosto, y el aviso que no se podía atender
El NIVEL C decía «nada convincente» en belgium, jal-1628 y libro azul, pero eso
era del escáner de vectores: el espejo ES existe y está en la cola de agosto,
no publicado cuando se escaneó. Abiertos los dos lados de cada uno:
SÍ Bélgica 89-90 mismas noches (Eupen, 30/31-mar), Petit-Rechain, SOBEPS
SÍ JAL 1628 mismo vuelo del 17-nov-86, Terauchi, Callahan y la FAA
SÍ Libro Azul mismo programa y mismas cifras (12.618 / 701)
SÍ Colares 1977 misma isla, Operação Prato, testimonio de Hollanda
SÍ Teherán 1976 misma madrugada, los dos F-4, el documento de la DIA
NO bases nucleares el EN son DOS casos (Malmstrom y Rendlesham); el ES es la
apertura de PURSUE y CINCO bases. Solo comparten Malmstrom
Libro Azul es el que enseña dónde está la línea: los apartados NO coinciden y
aun así es SÍ, porque el SUJETO de los dos es el mismo programa histórico. En
AARO el sujeto del ES era la confrontación con Grusch, y por eso es NO. Y las
bases nucleares traen la lección de AARO repetida: coincidían hasta en el
recuento —1.264 palabras exactas los dos— y no son el mismo artículo. Un número
que cuadra no es prueba de equivalencia.
Declararlas destapó un falso positivo: `violaciones()` solo miraba que ESTE
lado estuviera publicado, así que los tres EN ya publicados con el ES aún
programado salieron como hreflang.missing, recetando un `aplicar` que se niega
—y con razón— porque apuntaría a una URL que no existe. Ahora exige los dos
lados publicados. Un aviso que no se puede atender es ruido, y el ruido acaba
con que nadie mire el informe.
Auditores 42 y 40 limpios, seo-watch sin hallazgos.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
+68
-6
@@ -214,20 +214,40 @@ sim 0.746
|
|||||||
sim 0.714
|
sim 0.714
|
||||||
EN belgium-1989-1990-nato-fighters-ufo-wave
|
EN belgium-1989-1990-nato-fighters-ufo-wave
|
||||||
Belgium 1989–1990: When NATO Fighter Jets Chased Ghosts
|
Belgium 1989–1990: When NATO Fighter Jets Chased Ghosts
|
||||||
ES (nada convincente; lo más cercano: el-incidente-ovni-de-rendlesham-forest-1980-el-caso-)
|
ES oleada-belga-1989-1990-f-16-triangulo
|
||||||
decision: NO
|
Oleada belga 1989-1990: los F-16 que persiguieron un triángulo silencioso
|
||||||
|
NOTA (2026-07-29): los vectores dijeron «nada convincente» porque el espejo ES no
|
||||||
|
estaba PUBLICADO al escanear — está en la cola de agosto. Curado a mano abriendo
|
||||||
|
los dos: misma oleada, mismas noches (29-nov-1989 en Eupen, 30/31-mar-1990 con los F-16),
|
||||||
|
mismo fraude de Petit-Rechain y el mismo SOBEPS. ES publica el 4 de agosto.
|
||||||
|
Entra cuando se publiquen los dos lados; hasta entonces el tool lo salta solo
|
||||||
|
(«un hreflang a una URL futura es un 404») y el auditor no lo pide.
|
||||||
|
decision: SI
|
||||||
|
|
||||||
sim 0.709
|
sim 0.709
|
||||||
EN jal-1628-alaska-1986-ufo-radar-encounter
|
EN jal-1628-alaska-1986-ufo-radar-encounter
|
||||||
JAL 1628: The Best-Documented UFO Encounter in Aviation History
|
JAL 1628: The Best-Documented UFO Encounter in Aviation History
|
||||||
ES (nada convincente; lo más cercano: eeuu-desclasifica-162-archivos-secretos-sobre-ovnis-)
|
ES jal-1628-1986-alaska-luces-radar
|
||||||
decision: NO
|
JAL 1628: el Boeing 747 y las luces que lo siguieron sobre Alaska en 1986
|
||||||
|
NOTA (2026-07-29): «nada convincente» era del escáner, porque el ES estaba PROGRAMADO,
|
||||||
|
no publicado. Abiertos los dos: mismo vuelo del 17-nov-1986, mismo 747 de carga con
|
||||||
|
vino francés, mismo Terauchi y mismo John Callahan salvando los documentos de la FAA.
|
||||||
|
ES publica el 25 de agosto.
|
||||||
|
decision: SI
|
||||||
|
|
||||||
sim 0.705
|
sim 0.705
|
||||||
EN project-blue-book-declassified-ufo-files
|
EN project-blue-book-declassified-ufo-files
|
||||||
Project Blue Book: 12,618 Sightings, 701 Unsolved, and a Program That Was Told to Stop
|
Project Blue Book: 12,618 Sightings, 701 Unsolved, and a Program That Was Told to Stop
|
||||||
ES (nada convincente; lo más cercano: eeuu-desclasifica-162-archivos-secretos-sobre-ovnis-)
|
ES proyecto-libro-azul-701-casos-sin-explicar
|
||||||
decision: NO
|
Proyecto Libro Azul: 12.618 casos OVNI y 701 que nadie pudo explicar
|
||||||
|
NOTA (2026-07-29): mismo programa, mismas cifras en el titular (12.618 y 701), 1.726 y
|
||||||
|
1.723 palabras. Los apartados NO coinciden —el EN va por Arnold, el Informe Especial
|
||||||
|
14 y el Panel Robertson; el ES por Sign y Grudge, Hynek y cómo consultar los archivos
|
||||||
|
hoy— y aun así es SÍ: el ES no es traducción del EN por convención de la casa, y el
|
||||||
|
SUJETO de los dos artículos es el mismo programa histórico. Es la diferencia con AARO,
|
||||||
|
donde el sujeto del ES era la confrontación con Grusch y no los hallazgos de AARO.
|
||||||
|
ES publica el 10 de agosto.
|
||||||
|
decision: SI
|
||||||
|
|
||||||
sim 0.701
|
sim 0.701
|
||||||
EN americas-secret-psychic-spy-program-declassified-documents-reveal-project-stargates-extraordinary-history
|
EN americas-secret-psychic-spy-program-declassified-documents-reveal-project-stargates-extraordinary-history
|
||||||
@@ -298,3 +318,45 @@ sim 0.645
|
|||||||
La Noche del Misterio en Trans-en-Provence: El Caso OVNI Mejor Documentado de la Histo
|
La Noche del Misterio en Trans-en-Provence: El Caso OVNI Mejor Documentado de la Histo
|
||||||
vaticano-extraterrestres-iglesia-catolica
|
vaticano-extraterrestres-iglesia-catolica
|
||||||
El Vaticano y los Extraterrestres: Una Iglesia Abierta al Misterio del Cosmos
|
El Vaticano y los Extraterrestres: Una Iglesia Abierta al Misterio del Cosmos
|
||||||
|
|
||||||
|
==========================================================================
|
||||||
|
## NIVEL D — parejas de AGOSTO, curadas a mano el 2026-07-29
|
||||||
|
==========================================================================
|
||||||
|
|
||||||
|
Los dos lados están escritos pero alguno aún no se ha publicado. No hay nada
|
||||||
|
que hacer hasta entonces: el tool las salta solo («un hreflang a una URL futura
|
||||||
|
es un 404») y el auditor no las pide mientras estén programadas. En cuanto
|
||||||
|
salgan las dos, `python3 seo_hreflang.py aplicar`.
|
||||||
|
|
||||||
|
sim n/a colares 1977
|
||||||
|
EN colares-1977-brazil-air-force-ufo-investigation
|
||||||
|
Colares 1977: Brazil's Most Documented UFO Investigation
|
||||||
|
ES colares-1977-operacion-prato-chupa-chupa
|
||||||
|
Colares 1977: cuando la Fuerza Aérea de Brasil investigó el chupa-chupa
|
||||||
|
NOTA: mismo caso, misma isla del delta amazónico, misma Operação Prato y el mismo
|
||||||
|
testimonio tardío de Hollanda. Los DOS se publican el 24 de agosto.
|
||||||
|
decision: SI
|
||||||
|
|
||||||
|
sim n/a teherán 1976
|
||||||
|
EN tehran-1976-iranian-f4-ufo-incident
|
||||||
|
Tehran 1976: The UFO That Disabled Two Fighter Jets
|
||||||
|
ES teheran-1976-cazas-f-4-ovni
|
||||||
|
Teherán 1976: los cazas F-4 que se quedaron sin sistemas ante un OVNI
|
||||||
|
NOTA: misma madrugada del 19-sep-1976, los mismos dos F-4 Phantom, el mismo fallo de
|
||||||
|
armamento y el mismo documento de la DIA. ES sale el 17 de agosto y EN el 27: la
|
||||||
|
pareja no se puede declarar hasta el 27.
|
||||||
|
decision: SI
|
||||||
|
|
||||||
|
sim n/a bases nucleares
|
||||||
|
EN uap-nuclear-bases-six-decades-incursions
|
||||||
|
Nuclear Bases and UAP: Six Decades of Documented Incursions
|
||||||
|
ES archivos-pursue-uap-bases-nucleares-desclasificado
|
||||||
|
Los Archivos PURSUE y las bases nucleares: lo que el Gobierno acaba de confirmar
|
||||||
|
NOTA: parecían pareja hasta por el recuento —1.264 palabras EXACTAS los dos— y no lo
|
||||||
|
son. El EN se construye sobre DOS casos, Malmstrom y Rendlesham, con la explicación
|
||||||
|
del Pentágono de 2025, y cierra en «dos casos, dos preguntas». El ES se construye
|
||||||
|
sobre la apertura de archivos PURSUE y recorre CINCO bases: Malmstrom, Minot,
|
||||||
|
Vandenberg, Loring y el lado soviético. Solo comparten Malmstrom. Mismo tema,
|
||||||
|
artículos distintos — y la coincidencia de longitud enseña lo mismo que la de fecha
|
||||||
|
en AARO: un número que cuadra no es prueba de equivalencia.
|
||||||
|
decision: NO
|
||||||
|
|||||||
@@ -161,6 +161,18 @@ def cambios():
|
|||||||
return plan + huerfanos(parejas), avisos, parejas
|
return plan + huerfanos(parejas), avisos, parejas
|
||||||
|
|
||||||
|
|
||||||
|
_PUB_OTRO = {}
|
||||||
|
|
||||||
|
|
||||||
|
def publicados(site):
|
||||||
|
"""Slugs publicados del OTRO sitio, cacheado. Hace falta para no cantar una
|
||||||
|
violación que no se puede arreglar (ver `violaciones`)."""
|
||||||
|
if site not in _PUB_OTRO:
|
||||||
|
_PUB_OTRO[site] = {s for s, p in trae(site, None).items()
|
||||||
|
if p.get("status") == "published"}
|
||||||
|
return _PUB_OTRO[site]
|
||||||
|
|
||||||
|
|
||||||
def violaciones(post, site, parejas=None):
|
def violaciones(post, site, parejas=None):
|
||||||
"""Regla para el auditor: una pareja declarada que NO lo tiene puesto.
|
"""Regla para el auditor: una pareja declarada que NO lo tiene puesto.
|
||||||
|
|
||||||
@@ -171,6 +183,13 @@ def violaciones(post, site, parejas=None):
|
|||||||
No basta con que exista el bloque: se comprueba que las URLs sean las de ESTA
|
No basta con que exista el bloque: se comprueba que las URLs sean las de ESTA
|
||||||
pareja. Si un slug cambia, el hreflang se queda apuntando al viejo y esto es
|
pareja. Si un slug cambia, el hreflang se queda apuntando al viejo y esto es
|
||||||
lo único que lo cazaría.
|
lo único que lo cazaría.
|
||||||
|
|
||||||
|
Hacen falta los DOS lados publicados, no solo este. Al curar las parejas de
|
||||||
|
agosto (2026-07-29) quedaron tres EN ya publicados emparejados con un ES aún
|
||||||
|
programado, y el auditor cantó tres violaciones con una receta que no las
|
||||||
|
arreglaba: `aplicar` se niega, y con razón, porque el hreflang apuntaría a
|
||||||
|
una URL que todavía no existe. Un aviso que no se puede atender es ruido, y
|
||||||
|
el ruido acaba con que nadie mire el informe.
|
||||||
"""
|
"""
|
||||||
import seo_rules as R
|
import seo_rules as R
|
||||||
if parejas is None:
|
if parejas is None:
|
||||||
@@ -181,6 +200,9 @@ def violaciones(post, site, parejas=None):
|
|||||||
return []
|
return []
|
||||||
if post.get("status") != "published":
|
if post.get("status") != "published":
|
||||||
return []
|
return []
|
||||||
|
otro_site = "es" if site == "en" else "en"
|
||||||
|
if (par[1] if site == "en" else par[0]) not in publicados(otro_site):
|
||||||
|
return []
|
||||||
cabeza = post.get("codeinjection_head") or ""
|
cabeza = post.get("codeinjection_head") or ""
|
||||||
esperado = bloque(*par)
|
esperado = bloque(*par)
|
||||||
if esperado in cabeza:
|
if esperado in cabeza:
|
||||||
|
|||||||
Reference in New Issue
Block a user