seo: quién enlaza HACIA un post, que es lo que decide si Google lo encuentra

Toda la caja miraba los enlaces en un solo sentido — a quién enlazo yo — y
esa es la pregunta del lector, no la de Google. Dos posts de EN publicados
el 21-jul seguían siendo «URL is unknown to Google» una semana después:
tenían enlaces entrantes, pero solo desde artículos con 8 y 12 impresiones
de por vida, páginas que Google casi no visita.

seo_semantic gana dos subcomandos: `padrinos <slug>`, que ordena candidatos
por tráfico REAL del origen (Search Console) en vez de por similitud, y
`descubrimiento`, que lista los publicados a los que no llega ni un enlace
desde el tercio fuerte del sitio. Salen 21 de 32 en EN y 21 de 31 en ES.
Ambos descartan los posts con canonical_url propio: Ghost los excluye del
sitemap por consolidados, así que apadrinar desde ahí no sirve de nada — el
de Grusch de mayo tiene 1.728 impresiones y habría encabezado la lista.

seo_gsc gana `inspecciona`, que pregunta el veredicto a Google en vez de
deducirlo. Es lo que separa «posiciona mal» de «no lo ha visto nunca», que
son problemas opuestos y se arreglan al revés.

Y el checklist del remate incorpora el paso 3b: el informe tiene que traer
el comando de enlace entrante listo para copiar. No lo aplica el agente
porque eso es editar otro post publicado, y eso sigue prohibido.

⚠️ Anotado en el docstring: contar enlaces internos desde el HTML público da
«cero huérfanos», porque el tema mete navegación y feed de relacionados que
parecen enlaces del cuerpo. La verdad está en el html del CLI de Ghost.
This commit is contained in:
ChemaVX
2026-07-28 06:55:24 +00:00
parent 4609a21f21
commit f7be9ccb3e
3 changed files with 261 additions and 1 deletions
+24
View File
@@ -55,6 +55,26 @@ CHECKLIST — en este orden (el SEO se deriva del texto FINAL, nunca antes):
Primero SIN --apply para revisar las inserciones. Elige anchors que ya
existan en la prosa.
3b) PADRINO — quién enlaza HACIA este post (obligatorio en el informe)
Los enlaces del paso 3 salen de aquí hacia fuera y sirven al lector. Este
paso es el contrario y sirve a Google: si nadie enlaza al post nuevo desde
una página que Google ya visita, tarda semanas en descubrirlo. Medido el
2026-07-28: dos posts de EN publicados el 21-jul seguían siendo «URL
desconocida para Google» una semana después. Tenían enlaces entrantes, pero
solo desde artículos con 8 y 12 impresiones de por vida.
python3 ~/seo-tools/seo_semantic.py padrinos $slug --site $site -n 3
Ordena por tráfico REAL del origen (Search Console), no por parecido, y
descarta los que ya enlazan y los consolidados con canonical_url.
NO lo apliques: escribir ese enlace significa editar OTRO post publicado, y
eso te está prohibido. Lo que tienes que hacer es dejar en el informe el
comando exacto, con un anchor que exista de verdad en la prosa del origen
(compruébalo: descarga el origen y busca la frase). Si ningún candidato pasa
de 0,55 de similitud, dilo en vez de inventar un enlace forzado.
4) METAS + ALT — con seo_finish.py:
- `python3 ~/seo-tools/seo_finish.py prep <slug> --site $site` descarga la
imagen destacada a ~/.cache/seo-finish/.
@@ -81,4 +101,8 @@ anchas, <3000 caracteres):
- Hallazgos que requieren decisión humana (lo del paso 1 que no tocaste).
- Slug final, metas con sus longitudes, nº de enlaces internos añadidos y el
veredicto literal del validador.
- PADRINO: el comando `seo_link.py` listo para copiar, con el anchor ya
verificado en la prosa del origen. Va aparte de los enlaces del paso 3 y no
se puede omitir: es lo único del checklist que decide si Google llega a
encontrar el artículo.
- Cierra recordando que sigue en borrador, listo para publicar.