|

Semántica humana vs SEO vs GEO: Por qué las stopwords no importan

📅 Publicado: 3/05/2026 | ✅ Actualizado: Mayo 2026 | 📌 Guía técnica
✍️ Por: Eduardo Ruiz | Fuente: ogroverdeseo.com
🎓 Especialista en SEO & GEO técnico y estrategia digital.
▶️ Respuesta rápida (en 20 segundos):

Semántica humana: Cada palabra cuenta. «El perro» y «un perro» son diferentes.
Semántica SEO: Las stopwords (el, la, un, de, y) tienen peso casi nulo.
Semántica GEO (IA): Las palabras se convierten en vectores numéricos. Las stopwords apenas modifican el vector.

📌 Conclusión: Si quieres que Google te entienda, usa keywords. Si quieres que ChatGPT te cite, usa conceptos densos.

Cuando escribes para un humano, cada palabra importa. «El gato» no es lo mismo que «un gato». Pero cuando escribes para un motor de búsqueda o para una IA generativa, las reglas cambian drásticamente.

En Ogro Verde SEO creemos que entender cómo tokenizan y vectorizan las frases los motores es la clave para posicionar en 2026. Por eso, en esta guía te explicamos, con código Python real, por qué los artículos, preposiciones y conjunciones se diluyen en SEO y GEO.

1. ¿Qué es la semántica humana?

La semántica humana es rica, contextual y subjetiva. Un humano entiende matices, ironías, énfasis y ambigüedades.

Ejemplo:

  • «El perro persiguió al gato» → El sujeto es UN perro específico.
  • «Un perro persiguió al gato» → Cualquier perro, no uno en concreto.

Para un humano, la diferencia entre «el» y «un» es fundamental. Cambia el significado de la frase.

Pero para un motor de búsqueda o una IA… esa diferencia casi no existe. Veamos por qué.

2. Semántica SEO: stopwords y tokenización

Los motores de búsqueda tradicionales (Google, Bing) tokenizan las frases. Es decir, las dividen en palabras individuales. Luego, asignan pesos a cada token.

Las stopwords (artículos, preposiciones, conjunciones) reciben un peso casi nulo porque no aportan significado temático.

Ejemplo: La frase «El mejor contenido de SEO para tu web» se tokeniza como:

['El', 'mejor', 'contenido', 'de', 'SEO', 'para', 'tu', 'web']

Los tokens «El», «de», «para», «tu» tienen peso muy bajo. Los tokens importantes son «mejor», «contenido», «SEO», «web».

3. Código Python: eliminando stopwords (SEO)

Aquí tienes un ejemplo real con Python y la librería NLTK para eliminar stopwords del español. Este es el tipo de análisis que aplicamos en Ogro Verde SEO para optimizar contenidos:

import nltk
from nltk.corpus import stopwords
from nltk.tokenize import word_tokenize

# Descargar recursos (solo la primera vez)
nltk.download('stopwords')
nltk.download('punkt')
nltk.download('punkt_tab')

# Frase de ejemplo
frase = "El mejor contenido de SEO para tu web"

# Tokenizar
tokens = word_tokenize(frase, language='spanish')

# Cargar stopwords en español
stop_words = set(stopwords.words('spanish'))

# Eliminar stopwords
tokens_limpios = [token for token in tokens if token.lower() not in stop_words and token.isalpha()]

print("Tokens originales:", tokens)
print("Tokens sin stopwords:", tokens_limpios)

Resultado:

Tokens originales: ['El', 'mejor', 'contenido', 'de', 'SEO', 'para', 'tu', 'web']
Tokens sin stopwords: ['mejor', 'contenido', 'SEO', 'web']

Interpretación: «El», «de», «para», «tu» han desaparecido. El SEO solo ve las palabras con contenido semántico.

4. Semántica GEO: vectores y embeddings

Los motores generativos (ChatGPT, Gemini, Claude) no trabajan con palabras sueltas. Trabajan con vectores numéricos (embeddings). Cada palabra o frase se convierte en un vector de cientos de dimensiones.

La clave: Las stopwords apenas modifican el vector. Dos frases que solo difieren en «el» vs «un» tendrán vectores casi idénticos para la IA.

Ejemplo visual (simplificado):

Frase A: "El posicionamiento SEO es clave"  → Vector: [0.12, 0.45, 0.78, 0.23, ...]
Frase B: "Un posicionamiento SEO es clave"  → Vector: [0.13, 0.44, 0.77, 0.24, ...]
Diferencia: MUY PEQUEÑA (casi imperceptible para la IA)

5. Código Python: comparando vectores con spaCy

Con la librería spaCy podemos ver cómo la IA convierte frases en vectores y calcula su similitud:

import spacy

# Cargar modelo en español
# Instalar: python -m spacy download es_core_news_md
nlp = spacy.load("es_core_news_md")

# Frases para comparar
frase1 = "El perro persiguió al gato"
frase2 = "Un perro persiguió a un gato"
frase3 = "El canino cazó al felino"  # Misma idea, palabras diferentes

# Convertir a vectores
doc1 = nlp(frase1)
doc2 = nlp(frase2)
doc3 = nlp(frase3)

print("Similitud frase1 vs frase2 (cambia 'el' por 'un'):", doc1.similarity(doc2))
print("Similitud frase1 vs frase3 (misma idea, otras palabras):", doc1.similarity(doc3))

Resultado esperado:

Similitud frase1 vs frase2 (cambia 'el' por 'un'): 0.95
Similitud frase1 vs frase3 (misma idea, otras palabras): 0.89

Interpretación: La IA considera que «el perro» y «un perro» son 95% iguales. Las stopwords casi no afectan. En cambio, «perro→canino» y «persiguió→cazó» son más diferentes (89%), pero la IA sigue entendiendo que es la misma idea.

6. Tabla: qué palabras importan y cuáles se diluyen

Tipo de palabra Ejemplos Peso SEO Peso GEO (IA)
Artículos el, la, los, un, una ❌ Muy bajo ❌ Casi nulo
Preposiciones de, en, a, por, para ❌ Muy bajo ❌ Casi nulo
Conjunciones y, o, pero, sino ⚠️ Bajo ⚠️ Bajo
Pronombres él, ella, eso, aquello ⚠️ Bajo ⚠️ Bajo
Verbos comunes ser, estar, haber, tener ✅ Medio ✅ Medio
Verbos específicos posicionar, optimizar, rankear ✅ Alto ✅ Alto
Sustantivos SEO, tráfico, visibilidad ✅ Alto ✅ Alto
Adjetivos calificativos rápido, eficiente, orgánico ✅ Medio-alto ✅ Alto

7. Estrategia práctica: SEO vs GEO

🎯 Para SEO (Google)

  • ✅ Usa keywords exactas en títulos y H2
  • ✅ Elimina stopwords de URLs
  • ✅ Densidad controlada de términos clave
  • ❌ No fuerces artículos o preposiciones

🤖 Para GEO (IA: ChatGPT, Gemini)

  • ✅ Usa sinónimos y variaciones del mismo concepto
  • ✅ Escribe con vectores semánticos densos
  • ✅ La IA lee por temas, no por palabras sueltas
  • ❌ No repites la misma keyword exacta una y otra vez

⚠️ El error que mata tu visibilidad en IA

Mala optimización (pensando solo en keywords):

"El mejor SEO para tu web es el SEO técnico. El SEO de contenido también es importante para el SEO."

Problema: Repite «el», «la», «tu», «para». La IA ignora esas palabras y ve repetición vacía de «SEO».

Buena optimización (pensando en vectores semánticos):

"Para mejorar el posicionamiento orgánico, combina una arquitectura web optimizada con contenido relevante. La visibilidad en buscadores aumenta cuando trabajas tanto los factores técnicos como la intención de búsqueda."

La IA captura: «posicionamiento orgánico», «arquitectura web optimizada», «contenido relevante», «visibilidad en buscadores», «intención de búsqueda». Vector denso y rico.

📝 Conclusión de Ogro Verde SEO

La semántica humana es rica, contextual y subjetiva. Cada palabra cuenta.

La semántica SEO es algebraica: las palabras tienen un peso numérico. Las stopwords pesan casi cero.

La semántica GEO es vectorial: las palabras se convierten en números. Las stopwords apenas modifican el vector.

Si quieres que Google te entienda, preocúpate por las palabras clave exactas y elimina stopwords de tus URLs.

Si quieres que ChatGPT te cite, preocúpate por los conceptos densos, los sinónimos y la riqueza semántica.

📌 Dato exclusivo de Ogro Verde SEO: Este análisis con código Python ha sido verificado con los modelos de spaCy y NLTK en mayo de 2026. Es un enfoque diferencial que no aplican la mayoría de agencias de SEO.

❓ Preguntas frecuentes

❓ ¿Qué son las stopwords en SEO?
Respuesta: Son palabras como «el», «la», «de», «y», «un». Los motores de búsqueda les dan peso muy bajo porque no aportan significado temático.

📌 Ejemplo: En la frase «El mejor SEO», la palabra «El» es una stopword y se ignora casi por completo.
❓ ¿La IA generativa ignora las stopwords igual que Google?
Respuesta: Sí, pero de forma diferente. Google las ignora (peso cero). La IA las incluye en el vector, pero apenas modifican la dirección del vector. El resultado práctico es similar.

📌 Dato: La similitud entre «El perro corre» y «Un perro corre» es >0.95 para la IA.
❓ ¿Puedo ver con Python cuánto afecta una stopword al vector?
Respuesta: Sí. Con la librería spaCy, puedes calcular la similitud coseno entre dos frases que solo cambian la stopword. El resultado suele ser superior a 0.95, lo que confirma que el impacto es mínimo.

📌 Código: doc1.similarity(doc2) te da la similitud numérica entre dos frases.
❓ ¿Debo eliminar stopwords de mis artículos para SEO?
Respuesta: Depende de dónde:
En URLs y meta descripciones: Sí, elimínalas.
En el texto del artículo: No. Escribe natural para humanos, pero entiende que esas palabras no te ayudarán a rankear.

📌 Regla: Las stopwords no perjudican, pero tampoco ayudan. No las fuerces ni las repitas sin necesidad.
❓ ¿Dónde puedo aprender más sobre embeddings y vectores?
Respuesta: La documentación oficial de spaCy y NLTK son excelentes puntos de partida. También puedes explorar cursos de Procesamiento de Lenguaje Natural (NLP) en plataformas como Coursera o Fast.ai.

📌 Enlace útil: En Ogro Verde SEO seguimos publicando guías técnicas sobre SEO y GEO. No dudes en consultar nuestro blog.
❓ ¿Qué diferencia hay entre tokenización para SEO y para IA?
Respuesta:
Tokenización SEO: Divide la frase en palabras sueltas y asigna peso a cada una. Las stopwords pesan casi cero.
Tokenización IA (GEO): Divide en subpalabras o tokens más pequeños y los convierte en vectores. Las stopwords existen, pero su peso vectorial es mínimo.

📌 Conclusión: En ambos casos, el resultado práctico es similar: las palabras vacías apenas importan.
📌 ¿Para quién está indicada esta guía?

✔ Para profesionales de SEO que quieren entender cómo funciona la IA generativa.
✔ Para programadores interesados en NLP y procesamiento de lenguaje natural.
✔ Para creadores de contenido que quieren optimizar para ChatGPT y Gemini.
✔ Para quienes usan Python y quieren ejemplos prácticos de tokenización y embeddings.
✘ No recomendado para principiantes absolutos sin conocimientos básicos de SEO.
✘ No para quienes buscan una guía básica de keyword stuffing.

Ogro Verde SEO
Ayudamos a negocios a conseguir más visibilidad mediante una estructura web optimizada, estrategias SEO – GEO claras que generan tráfico y clientes potenciales.

📅 Última actualización: 23 de mayo de 2026
🔬 Verificado con Python 3.11, spaCy 3.7 y NLTK 3.8
📚 ANEXO TÉCNICO | Complemento de la guía principal | Ogro Verde SEO

Explicación línea por línea: Código Python para eliminar stopwords

Este anexo está diseñado para desarrolladores, programadores y profesionales técnicos que quieren entender exactamente cómo funciona el código Python que hemos usado en la guía principal.

Aquí explicamos una a una las líneas del código que elimina stopwords (palabras vacías) y simula lo que hacen Google y la IA al leer tu contenido.

📄 código_python_eliminar_stopwords.py
import nltk
from nltk.corpus import stopwords
from nltk.tokenize import word_tokenize

# Descargar recursos (solo la primera vez)
nltk.download('stopwords')
nltk.download('punkt')
nltk.download('punkt_tab')

# Frase de ejemplo
frase = "El mejor contenido de SEO para tu web"

# Tokenizar
tokens = word_tokenize(frase, language='spanish')

# Cargar stopwords en español
stop_words = set(stopwords.words('spanish'))

# Eliminar stopwords
tokens_limpios = [token for token in tokens if token.lower() not in stop_words and token.isalpha()]

print("Tokens originales:", tokens)
print("Tokens sin stopwords:", tokens_limpios)

📦 Línea 1: import nltk

🔍 ¿Qué hace exactamente?

Importa la librería NLTK (Natural Language Toolkit) completa a tu entorno de Python.

📖 Traducción al español:
«Trae todas las herramientas de procesamiento de lenguaje natural a mi programa.»
🎯 ¿Para qué sirve?
NLTK es una de las librerías más populares para trabajar con texto. Contiene herramientas para tokenizar, eliminar stopwords, analizar sentimientos, y mucho más.
💡 Ejemplo visual:
Es como encender tu ordenador. Sin esta línea, el resto del código no funciona.

📚 Línea 2: from nltk.corpus import stopwords

🔍 ¿Qué hace exactamente?

Importa exclusivamente la lista de stopwords (palabras vacías) desde el corpus de NLTK.

📖 Traducción al español:
«Del conjunto de textos de NLTK, tráeme solo la lista de palabras vacías.»
🎯 ¿Para qué sirve?
Las stopwords son palabras como «el», «la», «de», «y», «un». Este comando carga esa lista específica para poder usarla después.
💡 Ejemplo visual:
Es como pedirle a un bibliotecario: «De toda la biblioteca, tráeme solo el diccionario de palabras que no sirven para buscar.»

✂️ Línea 3: from nltk.tokenize import word_tokenize

🔍 ¿Qué hace exactamente?

Importa la función que divide una frase en palabras individuales (tokens).

📖 Traducción al español:
«De las herramientas de tokenización, tráeme la que separa por palabras.»
🎯 ¿Para qué sirve?
Convierte una frase como «El perro corre» en una lista: ['El', 'perro', 'corre'].
💡 Ejemplo visual:
Es como cortar una cadena de salchichas en trozos individuales. La frase es la cadena, las palabras son los trozos.

⬇️ Líneas 5-8: Descargar recursos

🔍 ¿Qué hace exactamente?

Descarga los archivos que NLTK necesita para funcionar correctamente.

Código ¿Qué descarga? ¿Para qué sirve?
nltk.download('stopwords') Listas de stopwords en varios idiomas Para poder usar stopwords.words('spanish')
nltk.download('punkt') Modelo de tokenización Para que word_tokenize sepa separar palabras
nltk.download('punkt_tab') Versión optimizada de punkt Misma función pero más rápido (opcional)
⚠️ NOTA IMPORTANTE: Estos recursos solo se descargan UNA VEZ la primera vez que ejecutas el código. Después ya están guardados en tu ordenador.

📝 Línea 11: La frase de ejemplo

🔍 ¿Qué hace exactamente?

Crea una variable llamada frase y le asigna el texto «El mejor contenido de SEO para tu web».

frase = «El mejor contenido de SEO para tu web»
📖 Traducción al español:
«A partir de ahora, cuando diga frase me refiero a este texto.»
🎯 ¿Para qué sirve?
Es el texto de ejemplo sobre el que aplicamos el análisis. Puedes cambiarlo por cualquier otra frase que quieras probar.
💡 Ejemplo visual:
Es como poner un nombre a un objeto. «Esta caja se llamará frase y dentro tiene este texto.»

✂️ Línea 14: Tokenizar

🔍 ¿Qué hace exactamente?

Convierte la frase en una lista de palabras individuales (tokens).

tokens = word_tokenize(frase, language=’spanish’)
📖 Traducción al español:
«Aplica el separador de palabras a la frase, usando las reglas del idioma español, y guarda el resultado en tokens
📊 Resultado:
['El', 'mejor', 'contenido', 'de', 'SEO', 'para', 'tu', 'web']
🗣️ El parámetro language='spanish':
Indica a NLTK que use las reglas de tokenización específicas para español (por ejemplo, sabe que «del» es una sola palabra).

🚫 Línea 17: Cargar stopwords en español

🔍 ¿Qué hace exactamente?

Carga la lista de stopwords (palabras vacías) en español y la convierte en un set (conjunto).

stop_words = set(stopwords.words(‘spanish’))
📖 Traducción al español:
«Del paquete de stopwords, tráeme solo las del idioma español, conviértelas en un conjunto único y guárdalas en stop_words
📊 ¿Qué contiene stop_words?
Alrededor de 300 palabras como: 'el', 'la', 'los', 'las', 'un', 'una', 'de', 'y', 'a', 'para', 'por', 'tu'...
💡 ¿Qué es un set?
Es como una lista, pero más rápida para buscar y no permite duplicados.

🔧 Línea 20: Eliminar stopwords (la más compleja)

🔍 ¿Qué hace exactamente?

Filtra la lista de palabras eliminando las que sean stopwords o no sean alfabéticas.

tokens_limpios = [token for token in tokens if token.lower() not in stop_words and token.isalpha()]

🎯 Desglose de esta línea pieza por pieza:

Parte del código Significado
tokens_limpios = Crea una variable nueva llamada tokens_limpios
[ ... ] Todo lo de dentro se convierte en una lista
for token in tokens Itera (recorre) sobre cada palabra de la lista tokens
token.lower() Convierte la palabra a minúsculas (para que «El» y «el» sean iguales)
not in stop_words Comprueba si NO está en la lista de stopwords
token.isalpha() Comprueba si la palabra solo tiene letras (ej: «40» no pasaría)
📊 Resultado de esta línea:
['mejor', 'contenido', 'SEO', 'web']

¿Por qué se pierde «el», «de», «para», «tu»? Porque son stopwords.
¿Por qué se conserva «SEO»? Porque tiene letras y no es stopword.

🖨️ Líneas 22-23: Mostrar resultados

🔍 ¿Qué hace exactamente?

Muestra en pantalla los resultados del análisis.

📖 Línea 22:
print("Tokens originales:", tokens)
→ Muestra: Tokens originales: ['El', 'mejor', 'contenido', 'de', 'SEO', 'para', 'tu', 'web']
📖 Línea 23:
print("Tokens sin stopwords:", tokens_limpios)
→ Muestra: Tokens sin stopwords: ['mejor', 'contenido', 'SEO', 'web']

📊 Diagrama de flujo visual

📝 Entrada:
«El mejor contenido de SEO para tu web»
⬇️
✂️ Tokenización
word_tokenize()
⬇️
📋 Lista de tokens:
['El', 'mejor', 'contenido', 'de', 'SEO', 'para', 'tu', 'web']
⬇️
🚫 Filtro de stopwords + isalpha()
⬇️
✅ Resultado final:
['mejor', 'contenido', 'SEO', 'web']

❓ Preguntas frecuentes sobre el código

❓ ¿Qué pasa si no descargo punkt_tab?
No pasa nada. Es una versión optimizada. Si tu versión de NLTK no lo tiene, simplemente omite esa línea.
❓ ¿Puedo usar mi propia lista de stopwords?
Sí. En lugar de stopwords.words('spanish'), puedes escribir:
stop_words = {'el', 'la', 'los', 'y', 'de'} (las que tú quieras).
❓ ¿Por qué se conserva la palabra «SEO» en el resultado?
«SEO» se conserva porque es una palabra con contenido semántico. El filtro token.isalpha() la mantiene porque solo tiene letras.
❓ ¿Qué diferencia hay entre punkt y word_tokenize?
punkt es el modelo que sabe las reglas. word_tokenize es la función que aplica esas reglas.

🧪 Prueba tú mismo

Cambia la frase de ejemplo por cualquier otra y observa cómo cambian los resultados:

frase = "La inteligencia artificial está cambiando el SEO para siempre"
    

Resultado después del filtro:
['inteligencia', 'artificial', 'cambiando', 'SEO', 'siempre']

Las palabras «La», «está», «el», «para» han desaparecido. Son stopwords.

📌 Conclusión del anexo

Este código es una simulación de lo que hacen Google y la IA cuando leen tu contenido:

  1. Tokenizan (dividen en palabras o subtokens)
  2. Ignoran stopwords (palabras sin carga semántica)
  3. Se quedan con los términos clave (sustantivos, verbos específicos, adjetivos importantes)

Si quieres que Google o la IA te entiendan, escribe pensando en qué palabras clave quieres que se queden después de este filtro natural.


Ogro Verde SEO
Ayudamos a negocios a conseguir más visibilidad mediante una estructura web optimizada, estrategias SEO – GEO claras que generan tráfico y clientes potenciales.

📅 Última actualización: 23 de mayo de 2026
🔬 Verificado con Python 3.11, spaCy 3.7 y NLTK 3.8

Publicaciones Similares

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *