Dominando Google Search Console y la API de Indexación en 2026

Dominando Google Search Console y la API de Indexación en 2026

Última verificación: 19 de octubre de 2026
24 min de lectura
Guía
SEO técnico
Desarrollador full-stack

Google Search Console es la herramienta gratuita más potente que Google da a los propietarios de sitios, y aun así la mayoría la trata como un panel de solo lectura. Un vistazo a las impresiones, quizá unas cuantas consultas, y cierra la pestaña. En 2026 esa actitud deja mucho tráfico orgánico sobre la mesa.

En 2012, para agregar un sitio a Google, completabas un formulario add-url.html. Hoy la potencia real de GSC está más abajo: la inspección de URLs, el informe de indexación de páginas y las APIs que permiten enviar sitemaps, inspeccionar URLs y extraer datos de rendimiento desde código. En wppoland.com todo el proceso de publicación informa a Search Console y a IndexNow después de cada despliegue. Esta guía recorre cada capa de ese stack, desde la configuración hasta la automatización en CI/CD, y señala dónde traza la documentación de Google el límite de para qué sirve la Indexing API.

Conoce más sobre los servicios de optimización SEO y GEO en WPPoland.

#Qué puede hacer Google Search Console y su API

La mayoría de los propietarios abre Search Console una vez por semana, mira el gráfico de rendimiento y se va. Es como comprar una navaja suiza y usar solo el abrebotellas.

GSC da señales directas de Google sobre cómo percibe tu sitio. La herramienta de inspección de URLs muestra lo que ve Googlebot al renderizar tu página, incluido si JavaScript bloquea contenido importante. El informe de indexación de páginas (antes Cobertura) muestra cuántas de tus páginas indexó Google y, sobre todo, el motivo de cada URL que no indexó. La sección Core Web Vitals muestra datos de rendimiento de usuarios reales.

La API de Search Console va más allá: extrae datos de rendimiento desde código, alimenta paneles propios y automatiza la monitorización. Junto con el envío de sitemaps por API y, para ofertas de empleo y emisiones en directo, la Indexing API, dejas de esperar a que Google encuentre tu contenido y pasas a decirle qué ha cambiado. Para agencias con decenas de sitios WordPress, esa monitorización es lo que detecta una plantilla rota o un noindex perdido antes de que cueste semanas de tráfico.

#Cómo configurar Google Search Console para WordPress

Antes de tocar herramientas avanzadas, configura la propiedad como Google espera. Hay dos tipos de propiedad: Dominio y Prefijo de URL.

Las propiedades de dominio cubren todos los subdominios y protocolos (http, https, www, sin www) bajo un mismo paraguas. Es la opción recomendada para la mayoría de los sitios. Requiere verificación por DNS, es decir, añadir un registro TXT en la configuración DNS del dominio. En sitios WordPress con hosting gestionado suele llevar menos de cinco minutos desde el panel del hosting.

Las propiedades de prefijo de URL sirven cuando quieres seguir un subdirectorio concreto (como example.com/blog/) o no tienes acceso al DNS. Se verifican con un archivo HTML, una metaetiqueta, Google Analytics o Google Tag Manager.

Tras la verificación, sigue estos pasos:

  • Vincula GA4: en la configuración, asocia tu propiedad de Google Analytics 4. Así ves datos de GSC dentro de los informes de GA4 y mejoras la atribución.
  • Asigna permisos: añade al equipo con el nivel adecuado. Los usuarios “Completo” ven todos los datos y pueden actuar, los “Restringido” solo pueden ver. En agencias, delega “Propietario” con cuidado, porque permite eliminar a otros usuarios.
  • Envía el sitemap principal: en Sitemaps, introduce la URL de tu sitemap XML. En WordPress con Yoast o RankMath suele ser https://tudominio.com/sitemap_index.xml.
  • Revisa la segmentación internacional: en un sitio multilingüe, comprueba hreflang con un rastreador y revisa muestras en la inspección de URLs. Google retiró el informe de segmentación internacional en 2022, así que Search Console ya no lista errores de hreflang.

Si alguien del equipo empieza desde cero con Search Console, Google Search Central publicó el 6 de octubre de 2026 dos listas de reproducción en YouTube, presentadas por Daniel Waisberg. Search fundamentals for beginners (fundamentos para principiantes) recorre el rastreo, la indexación, la publicación de resultados y el informe de rendimiento. Technical SEO fundamentals (SEO técnico) cubre robots.txt, presupuesto de rastreo, la herramienta de inspección de URLs y las exportaciones masivas de datos y APIs de Search Console, que es la base del resto de esta guía.

#Por qué Google Search Console excluye páginas

En el informe de indexación de páginas ves si Google indexa de verdad las páginas que te importan. Divide cada URL que Google conoce en Indexadas y No indexadas, con un motivo para cada grupo no indexado. La página de ayuda de Google insiste en que “no indexada” no es necesariamente malo: redirecciones, páginas alternativas y páginas con noindex deliberado van ahí.

#Entender los motivos de exclusión

Los motivos más frecuentes, primero la definición de Google y después nuestra lectura:

Descubierta - actualmente no indexada: Google conoce la URL (normalmente por un sitemap o un enlace interno) pero aún no la ha rastreado. Según la documentación de Google, lo habitual es que quisiera rastrearla pero previera sobrecargar el sitio, así que reprogramó el rastreo, y por eso la fecha del último rastreo aparece vacía. En sitios con miles de URLs delgadas o casi duplicadas este estado se acumula, así que refuerza los enlaces internos hacia las páginas importantes y elimina las URLs que nunca debieron existir: páginas 90% iguales a otra o “páginas huérfanas” sin ningún enlace.

Rastreada - actualmente no indexada: Google descargó la página pero no la añadió al índice. Google dice que “puede indexarse o no en el futuro” y que no hace falta volver a enviarla (traducción propia). Como Google sí vio el contenido, lo primero que revisamos es la singularidad y la profundidad: páginas delgadas y duplicados de otras páginas del mismo sitio son el patrón que más encontramos. Si el contenido es único, revisa también las señales de autoría y experiencia que describimos en la guía de E-E-A-T.

Soft 404: la página devuelve un código 200 pero Google cree que se comporta como un 404. Pasa con categorías vacías, páginas de búsqueda sin resultados o páginas con muy poco contenido propio. Añade contenido útil, devuelve un 404 real o usa noindex.

Bloqueada por robots.txt: tu robots.txt impide a Googlebot rastrear la URL. Comprueba si es intencionado. En WordPress, los culpables habituales son bloquear /wp-admin/admin-ajax.php (lo que rompe el contenido cargado por AJAX) o reglas Disallow demasiado amplias.

Página alternativa con etiqueta canónica adecuada: la página apunta su canónica a otra URL. La ayuda de Google dice que la canónica está indexada y no hay nada que hacer. Aparece en URLs con parámetros y en alternativas móviles o AMP.

#Cómo usar la herramienta de inspección de URLs

Para cualquier URL, la herramienta de inspección de URLs muestra la versión indexada: la canónica que eligió Google, el sitemap que la refiere y cuándo se rastreó por última vez. No es una prueba en directo, es la versión que Google guardó la última vez. Con “Probar URL publicada” ves lo que Google renderiza ahora, y así se depuran temas de WordPress cargados de JavaScript. La misma página de ayuda marca dos límites: la prueba en directo no puede predecir qué canónica elegirá Google, y “La URL está en Google” significa que puede aparecer, no que vaya a aparecer.

“Solicitar indexación” en la misma herramienta es la vía oficial para unas pocas páginas normales. La guía de Google para pedir un nuevo rastreo indica que necesitas ser propietario o usuario con permiso completo, que hay una cuota para URLs individuales y que pedir varias veces el rastreo de la misma URL no lo acelera. También dice que el rastreo puede tardar “desde unos días hasta unas semanas” (traducción propia).

#Cómo usar el informe de rendimiento de Search Console

El informe de rendimiento tiene cuatro métricas básicas: impresiones, clics, CTR medio y posición media. El valor está en filtrar y cruzar esas dimensiones.

#Encontrar palabras clave en las posiciones 5 a 20

Filtra las consultas por una posición media entre 5 y 20. Son términos en los que ya eres visible pero aún no captas muchos clics. Ordena por impresiones para encontrar las oportunidades con más volumen. Para cada una:

  1. Mira qué página asocia Google a la consulta (filtro Páginas).
  2. Evalúa si el título y la meta descripción encajan con esa consulta concreta.
  3. Revisa la profundidad del contenido. Una posición de 8 a 15 suele indicar que Google considera el contenido relevante pero no lo bastante completo.
  4. Añade los subtemas que faltan, actualiza datos obsoletos y mejora los enlaces internos desde páginas temáticamente cercanas.

#Análisis por dispositivo y país

Filtra por Dispositivo para encontrar páginas que posicionan bien en escritorio y mal en móvil, o al revés. Suele indicar problemas de renderizado o de UX en una plataforma. Filtra por País para descubrir tráfico internacional inesperado que puedes aprovechar con contenido específico o con hreflang.

Desde octubre de 2026, el filtro País del informe de rendimiento admite varios países a la vez. Google lo anunció en LinkedIn y Barry Schwartz lo recogió el 6 de octubre:

«Si operas en varios países, ahora puedes ver su tráfico combinado de la Búsqueda de Google.»

Google en LinkedIn, citado por Barry Schwartz en Search Engine Roundtable, 6 de octubre de 2026, traducción propia

Para un sitio en español es la forma rápida de separar España de Latinoamérica: marca México, Colombia y Argentina en un grupo y España en otro, y compara clics e impresiones sin sumar exportaciones en una hoja de cálculo. Si el grupo latinoamericano pesa poco frente a España, una versión es-MX con su propio vocabulario todavía no compensa el mantenimiento.

#Comparar periodos antes y después de un cambio

Usa la función Comparar para medir el antes y el después. Tras una migración, una actualización de contenido o una corrección técnica, compara las dos semanas anteriores con las dos posteriores para cuantificar el efecto. Exporta esos datos por API a informes que los responsables lean de verdad.

#Cómo consultar la API de Search Console con PHP

No te limites al panel web. Este ejemplo consulta datos de rendimiento por consulta y página desde WordPress:

// Consultar datos de rendimiento vía API de GSC
function obtener_rendimiento_gsc($sitio_url, $fecha_inicio, $fecha_fin) {
    $cliente = new Google_Client();
    $cliente->setAuthConfig('service_account.json');
    $cliente->addScope(Google_Service_SearchConsole::WEBMASTERS_READONLY);

    $service = new Google_Service_SearchConsole($cliente);

    $request = new Google_Service_SearchConsole_SearchAnalyticsQueryRequest();
    $request->setStartDate($fecha_inicio);
    $request->setEndDate($fecha_fin);
    $request->setDimensions(['query', 'page']);
    $request->setRowLimit(1000);

    return $service->searchanalytics->query($sitio_url, $request);
}

#La Google Indexing API

La Indexing API permite avisar a Google de que una página se ha añadido, actualizado o eliminado. Su alcance es estrecho. La guía de inicio de Google dice que “solo puede usarse para rastrear páginas con JobPosting o con BroadcastEvent incrustado en un VideoObject” (traducción propia), es decir, ofertas de empleo y vídeos en directo. La misma página indica que todos los envíos pasan por una detección de spam rigurosa y que los intentos de abuso pueden acabar con el acceso revocado. Los plugins que envían cada entrada del blog por esta API trabajan fuera de esa documentación, y en sitios de clientes no lo hacemos. Para páginas normales, usa sitemaps y la herramienta de inspección de URLs.

#Cuota y límites

La página de cuotas fija valores por defecto por proyecto de Google Cloud, no por propiedad de Search Console:

CuotaValor por defecto
Solicitudes de publicación por día (URL_UPDATED y URL_DELETED juntas)200
Solicitudes getMetadata por minuto180
Solicitudes por minuto en todos los endpoints380

URL_UPDATED avisa de una URL nueva o modificada, URL_DELETED de una página eliminada. Hasta el 16 de octubre de 2026 Google describía las 200 como un valor para la incorporación y las pruebas, y el uso en producción pasaba por un formulario de aprobación. Ese día desaparecieron de la documentación la descripción y el formulario; la página de cuotas solo indica los valores por defecto y remite a la consola de API. Puedes agrupar solicitudes y consultar el estado de las notificaciones ya enviadas.

#Configurar la autenticación

  1. Crea un proyecto de Google Cloud en console.cloud.google.com.
  2. Activa la Indexing API en la biblioteca de APIs.
  3. Crea una cuenta de servicio en IAM y administración y descarga el archivo de clave JSON.
  4. Añade el correo de la cuenta de servicio como propietario delegado de tu propiedad de Search Console. Los requisitos previos de Google lo describen: abre la propiedad, pulsa “Añadir propietario” en la lista de propietarios verificados y pega la dirección del campo client_email de la clave JSON (tiene la forma [email protected]).

#Implementación en WordPress con PHP

No escribas la solicitud cURL tú mismo. Usa una librería como googleapis/google-api-php-client:

// Ejemplo: notificar a Google de una oferta de empleo actualizada
$cliente = new Google_Client();
$cliente->setAuthConfig('service_account.json');
$cliente->addScope(Google_Service_Indexing::INDEXING);

$service = new Google_Service_Indexing($cliente);
$postBody = new Google_Service_Indexing_UrlNotification();
$postBody->setUrl('https://tudominio.com/empleo/desarrollador-frontend/');
$postBody->setType('URL_UPDATED');

$service->urlNotifications->publish($postBody);

#Implementación en Node.js

Una implementación mínima para avisar a Google de la URL de una oferta de empleo:

const { google } = require('googleapis');

const auth = new google.auth.GoogleAuth({
  credentials: JSON.parse(process.env.GOOGLE_INDEXING_CREDENTIALS),
  scopes: ['https://www.googleapis.com/auth/indexing'],
});

const indexing = google.indexing({ version: 'v3', auth });

async function submitUrl(url) {
  const res = await indexing.urlNotifications.publish({
    requestBody: { url, type: 'URL_UPDATED' },
  });
  console.log(`Submitted: ${url} - ${res.data.urlNotificationMetadata.latestUpdate.type}`);
}

Guarda las credenciales de la cuenta de servicio en una variable de entorno (GOOGLE_INDEXING_CREDENTIALS) con el contenido del archivo JSON. Nunca subas credenciales al control de versiones.

#Envío por lotes con límite de ritmo

Si envías varias URLs, respeta la cuota diaria y deja pausas entre solicitudes:

const DAILY_QUOTA = 200;
const DELAY_BETWEEN_REQUESTS_MS = 1000;

async function submitBatch(urls) {
  const batch = urls.slice(0, DAILY_QUOTA);
  for (const url of batch) {
    try {
      await submitUrl(url);
      await new Promise(resolve => setTimeout(resolve, DELAY_BETWEEN_REQUESTS_MS));
    } catch (error) {
      console.error(`Failed to submit ${url}: ${error.message}`);
    }
  }
  console.log(`Submitted ${batch.length} of ${urls.length} URLs`);
}

#IndexNow frente a la Google Indexing API

La Google Indexing API solo se dirige a Google. IndexNow es un protocolo abierto que avisa a varios buscadores a la vez. La lista de participantes publicada en indexnow.org incluye Bing, Yandex, Seznam, Naver, Yep, Internet Archive y Amazonbot. Google no está en esa lista.

IndexNow funciona con una simple petición HTTP POST o GET al endpoint de IndexNow con la clave de API de tu sitio. La clave es un archivo de texto en la raíz del dominio que demuestra la propiedad.

curl "https://api.indexnow.org/indexnow?url=https://wppoland.com/es/nueva-entrada/&key=TU_CLAVE_API"

Para lotes, la documentación de IndexNow admite hasta 10.000 URLs por POST. Una respuesta 200 solo significa que el buscador recibió la lista, no que vaya a rastrearla:

const axios = require('axios');

async function submitIndexNow(urls, apiKey, host) {
  const response = await axios.post('https://api.indexnow.org/indexnow', {
    host,
    key: apiKey,
    keyLocation: `https://${host}/${apiKey}.txt`,
    urlList: urls,
  });
  console.log(`IndexNow response: ${response.status}`);
}

IndexNow no se limita a ofertas de empleo, así que es el canal de envío para contenido normal en los buscadores que lo admiten. Google sigue encontrando esas páginas por tu sitemap.

#Enviar sitemaps con la API de Search Console

Además de la Indexing API, la API de Search Console gestiona sitemaps desde código. Es útil en sitios con varios archivos de sitemap o con sitemaps generados dinámicamente.

#Enviar sitemaps desde código

Los métodos de sitemaps necesitan un cliente autorizado con el scope https://www.googleapis.com/auth/webmasters, no el de indexación de la sección anterior, y la cuenta de servicio debe tener acceso a la propiedad.

const { google } = require('googleapis');

const auth = new google.auth.GoogleAuth({
  credentials: JSON.parse(process.env.GOOGLE_SC_CREDENTIALS),
  scopes: ['https://www.googleapis.com/auth/webmasters'],
});
const searchconsole = google.searchconsole({ version: 'v1', auth });

async function submitSitemap(siteUrl, sitemapUrl) {
  await searchconsole.sitemaps.submit({
    siteUrl,
    feedpath: sitemapUrl,
  });
  console.log(`Sitemap submitted: ${sitemapUrl}`);
}

#Vigilar el estado de los sitemaps

Consulta el endpoint de lista para ver errores, advertencias, el número de URLs enviadas y cuándo descargó Google cada archivo por última vez. La documentación del recurso sitemaps marca contents[].indexed como obsoleto y no apto para uso, así que toma las cifras de indexadas del informe de indexación de páginas:

async function checkSitemaps(siteUrl) {
  const res = await searchconsole.sitemaps.list({ siteUrl });
  for (const sitemap of res.data.sitemap || []) {
    const submitted = (sitemap.contents || []).reduce((n, c) => n + Number(c.submitted || 0), 0);
    console.log(`${sitemap.path}: ${submitted} submitted, last downloaded ${sitemap.lastDownloaded}`);
    if (Number(sitemap.errors) > 0 || Number(sitemap.warnings) > 0) {
      console.warn(`  Errors: ${sitemap.errors}, warnings: ${sitemap.warnings}`);
    }
  }
}

lastDownloaded es el campo sobre el que conviene poner una alerta: así detectamos la descarga atrasada que se describe más abajo.

No confíes en el antiguo endpoint de ping. Google anunció su retirada el 26 de junio de 2023: dejó de funcionar seis meses después y las peticiones devuelven 404. Los sitemaps se declaran con la línea Sitemap: en robots.txt o se envían por Search Console. La misma entrada dice que Google usa lastmod para programar rastreos solo si coincide de forma constante con la realidad.

#Sitemaps por tipo de contenido

En sitios grandes, divide los sitemaps:

  • sitemap-posts.xml: artículos del blog
  • sitemap-pages.xml: páginas estáticas
  • sitemap-products.xml: productos de WooCommerce

Un índice de sitemaps los agrupa y es el único archivo que tienes que enviar:

<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <sitemap><loc>https://tudominio.com/sitemap-posts.xml</loc></sitemap>
  <sitemap><loc>https://tudominio.com/sitemap-pages.xml</loc></sitemap>
  <sitemap><loc>https://tudominio.com/sitemap-products.xml</loc></sitemap>
</sitemapindex>

#Automatizar la indexación en Google con un pipeline CI/CD

En sitios estáticos hechos con Astro, Next.js o frameworks similares (como el stack de wppoland.com), integrar los avisos en el pipeline de build garantiza que cada despliegue envíe las notificaciones correctas.

#Ejemplo de hook post-build

Un script post-build lee el sitemap generado, detecta URLs nuevas o modificadas y las envía a IndexNow. Solo las URLs de ofertas de empleo y emisiones en directo van a la Google Indexing API:

const { readFileSync } = require('fs');
const { XMLParser } = require('fast-xml-parser');

async function postBuildIndex(sitemapPath) {
  const xml = readFileSync(sitemapPath, 'utf-8');
  const parser = new XMLParser();
  const sitemap = parser.parse(xml);

  const urls = sitemap.urlset.url
    .filter(entry => {
      const lastmod = new Date(entry.lastmod);
      const oneDayAgo = new Date(Date.now() - 86400000);
      return lastmod > oneDayAgo;
    })
    .map(entry => entry.loc);

  console.log(`Found ${urls.length} recently modified URLs`);
  await submitIndexNow(urls, process.env.INDEXNOW_KEY, 'wppoland.com');  // IndexNow
  const jobUrls = urls.filter(u => u.includes('/empleo/'));  // solo páginas JobPosting
  await submitBatch(jobUrls);  // Google Indexing API
}

#Integración en CI/CD

En GitHub Actions o GitLab CI, añade un paso después del despliegue:

- name: Notify search engines
  env:
    GOOGLE_INDEXING_CREDENTIALS: ${{ secrets.GOOGLE_INDEXING_CREDENTIALS }}
    INDEXNOW_KEY: ${{ secrets.INDEXNOW_KEY }}
  run: node scripts/post-build-index.js

#Cómo repartir la cuota

Con 200 solicitudes de publicación al día por defecto para todo el proyecto de Cloud, un portal de empleo tiene que priorizar:

  • Ofertas nuevas primero: una oferta que Google nunca ha visto va delante.
  • Ofertas caducadas después: envía URL_DELETED cuando se cubre un puesto, para que salga de los resultados en lugar de llevar candidatos a una página muerta.
  • Omite el contenido sin cambios: compara fechas lastmod o hashes del contenido para no gastar cuota en páginas que no han cambiado.
  • Pasa el excedente al día siguiente: si un despliegue supera la cuota, guarda las URLs restantes y procésalas al día siguiente con una tarea programada.

#Cuánto tardan realmente el rastreo, la indexación y el servicio

Mucho de lo que parece un fallo de indexación es solo reloj. Gary Illyes mostró en Search Central Live (Barcelona) los tiempos internos de Google, y Search Engine Roundtable publicó la tabla el 5 de octubre de 2026. Cada fila tiene un tiempo típico y uno máximo:

ProcesoTípicoMás lento
Descubrimiento de una URL nueva~20 horasSemanas o nunca
Refresco de una URL conocida~30 díasSemanas o nunca
Procesamiento del sitemap~24 horasHasta 14 días, o nunca (calidad)
RenderizadoSegundos en renderizar, horas en colaDías a semanas
Indexación de extremo a extremo~1,5 horasMeses o nunca (calidad)
Cambio de canonicalización1-3 semanasMeses (señales en conflicto)
Datos estructuradosHoras a 1-2 semanasSemanas o nunca (calidad)
Eliminación en Search Console (propietario)~2 horas24 horas
Actualización del título1-2 díasVarias semanas a meses
Retirada de una acción manual1-2 semanas4-6 semanas, o mucho más en sitios inactivos
Recuperación tras core update3-6 meses6 meses a 1 año (siguiente core update)
Efecto de un spam update1-2 semanas (continuo)Meses (refrescos por lotes)

La fuente avisa de que los procesos están encadenados: una página no se indexa antes de rastrearse y los retrasos se acumulan. Y el propio Gary dijo:

“ten en cuenta que esto fue un ejercicio para ver si el público podía identificarse con las cifras que extrajimos internamente y pusimos en esas diapositivas.”

Gary Illyes, Google, Search Engine Roundtable, traducción propia

Son órdenes de magnitud, no un SLA.

Conviene anotar un límite más al lado. La página de límites de la API de Search Console permite a la API de inspección de URLs 2000 consultas al día y 600 por minuto por sitio, así que un sitio con 6000 URLs necesita tres días para inspeccionarlas todas una vez.

#Ejemplos reales de retrasos de indexación en Search Console

  • Un sitemap sin refrescar escondió casi la mitad del corpus. GSC descargó por última vez nuestros seis sitemaps de ubicaciones el 1 de septiembre a las 10:08, con 2037 URLs. El corpus subió a 4071 y Google no volvió a descargarlos durante cinco días, aunque leía los sitemaps del blog a diario. Reenviarlos por API el 6 de septiembre funcionó el mismo día: las páginas con impresiones pasaron de 223 a 343 y las impresiones de 1570 a 4382, pero con 2 clics en 7 días. Se desbloqueó el descubrimiento, no la conversión.
  • Un veredicto es una foto del día del rastreo. El 17 de septiembre, 3609 de 6747 URLs del sitemap (53,5%) no tenían ni una impresión en 90 días. De 19 URLs inspeccionadas, 6 figuraban como “Excluded by noindex” mientras la página real servía index, follow. El 27 de septiembre, 3 de 20 seguían así, con último rastreo entre el 7 de mayo y el 20 de agosto. El noindex ya no estaba, Google simplemente no había vuelto.
  • IndexNow con URLs inventadas gasta la cuota. Nuestro script generó 2328 URLs a partir de nombres de archivo: ninguna estaba en el sitemap y todas respondían 301. Construye la lista desde el sitemap, no desde el sistema de archivos.

Antes de declarar débil una página, compara la fecha del veredicto con la de tu último cambio. Si el veredicto es anterior, estás midiendo el pasado.

#Por qué las páginas no se indexan después de enviarlas

Si las páginas siguen fuera del índice tras enviar un sitemap o solicitar la indexación, revisa estos cinco problemas antes de mirar la calidad del contenido.

#robots.txt bloquea recursos críticos

Un error habitual en WordPress es bloquear archivos CSS o JavaScript que Googlebot necesita para renderizar. Usa “Probar URL publicada” para ver lo que renderiza Googlebot. Si la página se ve rota, comprueba si tu robots.txt bloquea recursos necesarios. Deberías permitir siempre:

User-agent: Googlebot
Allow: /wp-content/themes/
Allow: /wp-content/plugins/
Allow: /wp-includes/

Bloquea también los bots de IA que consumen presupuesto de rastreo sin enviar tráfico:

User-agent: GPTBot
Disallow: /

User-agent: CCBot
Disallow: /

# Proteger áreas administrativas
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php

Sitemap: https://tudominio.com/sitemap_index.xml

Si WordPress genera el robots.txt virtual, puedes añadir esas reglas con el filtro robots_txt en lugar de subir un archivo:

// Personalizar robots.txt programáticamente
function personalizar_robots_txt($output, $public) {
    $output .= "\n# Bloquear scrapers de IA\n";
    $output .= "User-agent: GPTBot\nDisallow: /\n\n";
    $output .= "User-agent: CCBot\nDisallow: /\n\n";
    $output .= "Sitemap: " . home_url('/sitemap_index.xml') . "\n";

    return $output;
}
add_filter('robots_txt', 'personalizar_robots_txt', 10, 2);

#Conflictos de canónica

Si tu página tiene un <link rel="canonical"> que apunta a otra URL, Google indexará la destino. Pasa a menudo por la barra final, conflictos HTTP/HTTPS o www frente a sin www. Comprueba que los ajustes de WordPress, el CDN y el servidor coinciden en el formato canónico. En Yoast o RankMath, verifica que la canónica no se sobrescribe por página.

#Etiquetas y cabeceras noindex

Busca <meta name="robots" content="noindex"> en el código fuente. En WordPress puede fijarse por página (con plugins SEO), por categoría o de forma global en Ajustes > Lectura > “Pedir a los motores de búsqueda que no indexen este sitio”. Revisa también las cabeceras HTTP por si hay un X-Robots-Tag: noindex que algún plugin de seguridad o una configuración del CDN añade sin avisar.

#Problemas de renderizado con JavaScript

Si tu tema de WordPress carga el contenido con JavaScript (temas basados en React, paginación AJAX), Googlebot puede no ver todo. La herramienta de inspección muestra el HTML renderizado. Compáralo con el HTML de origen para ver qué solo se carga en el cliente. La solución definitiva es el renderizado en servidor o el pre-renderizado.

#Huecos en la indexación mobile-first

Google usa la versión móvil de tu página para indexar y posicionar. Si la versión móvil oculta contenido, usa otro marcado o carga otros datos estructurados que el escritorio, lo que se indexa es la versión móvil. La herramienta de inspección muestra en Disponibilidad de la página > Rastreo > Rastreada como qué rastreador descargó la página. Comprueba que indique smartphone y busca contenido ausente en el HTML renderizado. Mantén el mismo contenido en móvil y escritorio.

#Sitemap XML con imágenes AVIF y WebP en WordPress

Yoast y RankMath añaden las imágenes automáticamente, pero un stack propio o headless tiene que hacerlo él mismo. La documentación de Google sobre sitemaps de imágenes describe estas etiquetas como una forma de indicar a Google imágenes que quizá no encontraría de otro modo, como las que tu sitio carga con JavaScript. Un <img> normal en HTML renderizado en servidor se encuentra sin ellas.

<url>
  <loc>https://tudominio.com/mi-articulo/</loc>
  <image:image>
    <image:loc>https://tudominio.com/wp-content/uploads/imagen.avif</image:loc>
  </image:image>
</url>

Cada <url> admite hasta 1000 etiquetas <image:image>. Google retiró de su documentación <image:caption>, <image:title>, <image:geo_location> y <image:license>, así que los generadores que aún las emiten gastan bytes. Las imágenes en un dominio de CDN no son problema si ese dominio también está verificado en Search Console y robots.txt no lo bloquea.

#Cómo indexar una página nueva paso a paso

Este es el flujo que usamos en wppoland.com para cada contenido que publicamos o actualizamos:

  1. Publica o actualiza la página en WordPress o en tu CMS. Datos estructurados, metaetiquetas y enlaces internos listos antes de publicar.
  2. El sitemap se actualiza solo: tu sitemap XML se regenera (Yoast, RankMath o tu generador estático se encargan). Comprueba que lastmod refleja la fecha real.
  3. IndexNow: el script post-build o el hook de publicación envía la URL a IndexNow y avisa a Bing, Yandex y los demás participantes.
  4. Google Indexing API, solo empleo y directos: para una página con JobPosting o un BroadcastEvent dentro de un VideoObject, el mismo script envía URL_UPDATED. Las páginas normales se saltan este paso.
  5. Sitemap por API: si cambió el propio archivo de sitemap, vuelve a enviarlo con sitemaps.submit y revisa lastDownloaded al día siguiente. Para unas pocas páginas normales importantes, usa “Solicitar indexación” en la herramienta de inspección.
  6. Vigila en GSC: comprueba con la herramienta de inspección, o con la API de inspección dentro de su límite de 2000 al día, que la página se rastreó e indexó. La propia Google habla de días a semanas para el rastreo.
  7. Itera: si la página sigue sin indexarse, lee el motivo en el informe de indexación de páginas, corrige la causa y solo entonces pide un nuevo rastreo.

Este flujo mantiene cada cambio visible para Google sin forzar una API fuera de su alcance documentado. Tanto si gestionas un portal de empleo como una tienda con productos de temporada o los sitios de tus clientes, el orden es el mismo: sitemaps correctos primero, canales de envío donde están permitidos y datos de Search Console para comprobar el resultado.

Si quieres que revisemos la estrategia de indexación de tu sitio, el equipo de desarrollo WordPress puede hacerlo. Escríbenos.

Siguiente paso

Transforma el artículo en una implementación real

Este bloque refuerza el enlazado interno y lleva al lector al siguiente paso más útil dentro de la arquitectura del sitio.

¿Quieres implementar esto en tu sitio?

Si la visibilidad en Google y en sistemas de IA importa, puedo estructurar contenido, FAQ, schema y enlazado interno para SEO, GEO y AEO.

Cluster relacionado

Explora otros servicios WordPress y base de conocimiento

Refuerza tu negocio con soporte técnico profesional en áreas clave del ecosistema WordPress.

Preguntas frecuentes

Respuestas prácticas para aplicar el tema en la ejecución real.

¿Cuándo tiene sentido usar la API de Indexación de Google?#
Solo para las páginas que Google documenta como compatibles: ofertas de empleo (JobPosting) y vídeos en directo (BroadcastEvent dentro de VideoObject). El resto de páginas va por sitemaps y la herramienta de inspección de URLs.
¿Qué hay que preparar antes de automatizar la indexación desde WordPress?#
Una propiedad verificada en Search Console, una cuenta de servicio añadida como propietario delegado, control de la cuota por proyecto, registro de errores y una regla que limite los envíos a páginas con JobPosting o BroadcastEvent.
¿La API de Indexación garantiza que Google indexe una página?#
No. Google pasa todos los envíos por detección de spam y la herramienta de inspección solo confirma que una URL puede aparecer, no que vaya a aparecer. Calidad, ausencia de duplicados y enlaces internos siguen decidiendo.

¿Necesitas un FAQ adaptado a tu sector y mercado? Preparamos una versión alineada con tus objetivos de negocio.

Hablemos

Artículos Relacionados