¿Te gustaría saber cómo rastrear las palabras claves de tu web de forma gratuita y sin complicaciones? ¿Te gustaría usar una herramienta inteligente y potente que te ayude a mejorar tu SEO y a superar a tu competencia? Si la respuesta es sí, entonces estás en el lugar correcto. En este artículo te voy a enseñar cómo crear tu propio rank tracker con la ayuda de CHATGPT, Google Sheets y una API de búsqueda gratuita llamada Serpstack. Además, te voy a mostrar cómo usarlo para optimizar tu SEO y cómo analizar los resultados. Todo esto con un video tutorial paso a paso que podrás ver en mi canal de YouTube. ¿Te interesa? Pues sigue leyendo y descubre cómo hacerlo.
¿Qué es un rank tracker y para qué sirve?
Un rank tracker es una herramienta que te permite rastrear el posicionamiento de las palabras claves de tu web en los motores de búsqueda como Google. Es decir, te muestra en qué posición aparece tu web cuando alguien busca una palabra clave relacionada con tu nicho o tema. Por ejemplo, si tu web es sobre tutoriales de WordPress, WooCommerce e inteligencia artificial, querrás saber en qué posición aparece cuando alguien busca «cómo crear una tienda online con WooCommerce» o «cómo usar CHATGPT para generar contenido.
Saber el posicionamiento de tus palabras claves es muy importante para mejorar tu SEO y aumentar el tráfico a tu web. Así podrás saber qué palabras claves están funcionando mejor, cuáles necesitas optimizar o cambiar y cuáles son las oportunidades que puedes aprovechar para superar a tu competencia. Además, podrás medir el impacto de tus acciones de SEO y ver si estás logrando tus objetivos.

¿Qué es CHATGPT y cómo puede ayudarte con el rank tracker?
CHATGPT es una plataforma de inteligencia artificial que te permite generar contenido de forma automática y personalizada. Puedes usarla para crear textos, imágenes, vídeos, audios, código y mucho más. Solo tienes que escribir lo que quieres generar y CHATGPT te lo crea en segundos. Por ejemplo, puedes pedirle que te escriba un artículo, un poema, una canción, un tweet o lo que se te ocurra.
Pero CHATGPT no solo sirve para generar contenido, sino también para ayudarte con el rank tracker. ¿Cómo? Pues usando su función de cómo usar CHATGPT para seguir el posicionamiento de tu web. Esta función te permite introducir una palabra clave objetivo y obtener una lista de las posiciones que ocupa tu web en Google para esa palabra clave. Así podrás ver rápidamente cómo está tu web en relación con tu competencia y qué puedes hacer para mejorar tu SEO.
Pero eso no es todo. CHATGPT también te ofrece la posibilidad de generar un código que puedes usar para crear tu propio rank tracker con Google Sheets y Serpstack. Así podrás tener un control total sobre tus palabras claves y ver su evolución a lo largo del tiempo. ¿No te parece increíble? Pues sigue leyendo y te explico cómo hacerlo.
¿Qué es Google Sheets y cómo puede ayudarte con el rank tracker?
Google Sheets es una herramienta gratuita de Google que te permite crear y editar hojas de cálculo en línea. Puedes usarla para organizar y analizar datos, hacer cálculos, crear gráficos, tablas dinámicas y mucho más. Además, puedes compartir tus hojas de cálculo con otras personas y trabajar en ellas de forma colaborativa.
Google Sheets también puede ayudarte con el rank tracker, ya que te permite almacenar y visualizar los datos de tus palabras claves de forma sencilla y ordenada. Solo tienes que crear una hoja de cálculo con las columnas que quieras, como la palabra clave, el dominio, la posición, la fecha, el cambio, etc. Luego, puedes usar las funciones y fórmulas de Google Sheets para obtener y actualizar los datos automáticamente. Por ejemplo, puedes usar la función IMPORTXML para extraer los datos de una página web o la función GOOGLEFINANCE para obtener los datos del mercado financiero.

¿Qué es Serpstack y cómo puede ayudarte con el rank tracker?
Serpstack es una API de búsqueda gratuita que te permite obtener los resultados de búsqueda de Google en formato JSON. Es decir, te devuelve los datos de los resultados de búsqueda de forma estructurada y fácil de usar. Puedes usarla para obtener información como el título, la descripción, el enlace, la posición, el número de resultados, etc. de cada resultado de búsqueda.
Serpstack puede ayudarte con el rank tracker, ya que te permite obtener los datos de posicionamiento de tus palabras claves en Google de forma rápida y precisa. Solo tienes que enviar una solicitud a la API con los parámetros que quieras, como la palabra clave, el dominio, el país, el idioma, etc. y recibirás una respuesta con los datos que necesitas. Por ejemplo, puedes enviar una solicitud como esta:
https://api.serpstack.com/search?access_key=TU_CLAVE_DE_ACCESO&query=TU_PALABRA_CLAVE&domain=TU_DOMINIO
Y recibirás una respuesta como esta:
DEL RESULTADO»,
{
"request": {
"search_engine": "google",
"query": "TU_PALABRA_CLAVE",
"domain": "TU_DOMINIO",
"page": 1,
"type": "web"
},
"pagination": {
"current": 1,
"next": "https://api.serpstack.com/search?access_key=TU_CLAVE_DE_ACCESO&query=TU_PALABRA_CLAVE&domain=TU_DOMINIO&page=2",
"last": 10
},
"results": [
{
"position": 1,
"title": "TÍTULO DEL RESULTADO",
"link": "ENLACE
«snippet»: «DESCRIPCIÓN DEL RESULTADO»
},
{
«position»: 2,
«title»: «TÍTULO DEL RESULTADO»,
«link»: «ENLACE DEL RESULTADO»,
«snippet»: «DESCRIPCIÓN DEL RESULTADO»
},
…
]
}
Así podrás obtener la posición de tu web para cada palabra clave que quieras rastrear y guardarla en tu hoja de cálculo de Google Sheets.

¿Cómo crear tu propio rank tracker con CHATGPT, Google Sheets y Serpstack?
Ahora que ya sabes qué es un rank tracker y qué herramientas puedes usar para crearlo, te voy a explicar cómo hacerlo paso a paso. Es muy fácil y rápido, solo tienes que seguir estos pasos:
- Regístrate en CHATGPT y obtén tu clave de acceso gratuita.
- Regístrate en Serpstack y obtén tu clave de acceso gratuita.
- Crea una hoja de cálculo en Google Sheets y ponle el nombre que quieras.
- Añade las columnas que quieras para tus datos, como palabra clave, dominio, posición, fecha, cambio, etc.
- Escribe las palabras claves que quieras rastrear en la columna de palabra clave.
- Escribe tu dominio en la columna de dominio.
- Copia el código que te genera CHATGPT y pégalo en el editor de código de Google Sheets.
- Modifica el código según tus necesidades, como cambiar las claves de acceso, las columnas, los parámetros, etc.
- Ejecuta el código y espera a que se actualicen los datos en tu hoja de cálculo.
- Repite el proceso cada vez que quieras actualizar los datos o añadir nuevas palabras claves.
Y listo, ya tienes tu propio rank tracker con CHATGPT, Google Sheets y Serpstack. Así podrás ver el posicionamiento de tus palabras claves en Google y analizar los resultados. También podrás crear gráficos, tablas dinámicas o informes para visualizar mejor los datos y tomar mejores decisiones para tu SEO.
¿Quieres ver un video tutorial paso a paso?
Si quieres ver un video tutorial paso a paso de cómo crear tu propio rank tracker con CHATGPT, Google Sheets y Serpstack, te invito a que visites mi canal de YouTube. Allí encontrarás un video donde te explico todo lo que te he contado en este artículo y mucho más. Además, podrás ver cómo funciona el rank tracker en vivo y cómo lo uso para optimizar mi SEO. Te aseguro que te va a encantar y que vas a aprender mucho. Así que no esperes más y haz clic en el botón de abajo para ir al video. Y si te gusta, no olvides suscribirte a mi canal para no perderte ningún otro video sobre tutoriales de WordPress, WooCommerce e inteligencia artificial. Te espero allí.
Conclusión
Crear tu propio rank tracker con CHATGPT, Google Sheets y Serpstack es una forma muy fácil y económica de seguir el posicionamiento de tu web en Google. Así podrás ver cómo está tu web en relación con tu competencia y qué puedes hacer para mejorar tu SEO. Además, podrás personalizar tu rank tracker según tus necesidades y tener un control total sobre tus datos. Y lo mejor de todo es que solo necesitas unas pocas herramientas gratuitas y un poco de código que te genera CHATGPT.
Espero que te haya gustado este artículo y que te haya servido para aprender algo nuevo. Si tienes alguna duda o comentario, no dudes en dejármelo abajo. Y si quieres ver más tutoriales como este, suscríbete a mi newsletter y te enviaré cada semana los mejores contenidos sobre WordPress, WooCommerce e inteligencia artificial. ¡Hasta la próxima!.
Descargar rank tracker con columnas diarias
function searchKeywords() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var lastRow = sheet.getLastRow();
var dataRange = sheet.getRange(2, 1, lastRow - 1, 3);
var dataValues = dataRange.getValues();
var apiKey = "TU API KEY AQUI";
var currentDate = new Date();
// Obtener la última columna usada
var lastColumn = sheet.getLastColumn();
// Crear una nueva columna después de la última utilizada
var newColumn = lastColumn + 1;
sheet.insertColumnAfter(lastColumn);
// Escribir la fecha en la primera celda de la nueva columna
sheet.getRange(1, newColumn).setValue(currentDate);
for (var i = 0; i < dataValues.length; i++) {
var keyword = dataValues[i][0];
var website = dataValues[i][1];
var country = dataValues[i][2];
var apiUrl = "http://api.serpstack.com/search" +
"?access_key=" + apiKey +
"&query=" + encodeURIComponent(keyword) +
"&engine=google" +
"&type=web" +
"&device=desktop" +
"&location=" + encodeURIComponent(country) +
"&google_domain=google.com" +
"&gl=US" +
"&hl=en" +
"&num=100" +
"&output=json";
var response = UrlFetchApp.fetch(apiUrl);
var responseData = JSON.parse(response.getContentText());
var newPosition = getKeywordPosition(responseData, website);
// Escribir la nueva posición en la celda correspondiente de la nueva columna
sheet.getRange(i + 2, newColumn).setValue(newPosition);
}
}
function getKeywordPosition(responseData, website) {
var results = responseData.organic_results;
for (var i = 0; i < results.length; i++) {
if (results[i].url.includes(website)) {
return i + 1;
}
}
return "No encontrado";
}
Código descargar rank tracker con columna de cambios
function searchKeywords() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var lastRow = sheet.getLastRow();
var dataRange = sheet.getRange(2, 1, lastRow - 1, 3); // Suponiendo que los datos comienzan en la fila 2
var dataValues = dataRange.getValues();
var apiKey = "TU API KEY AQUI"; // Reemplaza con tu clave de API
for (var i = 0; i < dataValues.length; i++) {
var keyword = dataValues[i][0];
var website = dataValues[i][1];
var country = dataValues[i][2];
var apiUrl = "http://api.serpstack.com/search" +
"?access_key=" + apiKey +
"&query=" + encodeURIComponent(keyword) +
"&engine=google" +
"&type=web" +
"&device=desktop" +
"&location=" + encodeURIComponent(country) +
"&google_domain=google.hu" +
"&gl=hu" +
"&hl=hu" +
"&num=100" + // Solicitar 100 resultados
"&output=json";
var response = UrlFetchApp.fetch(apiUrl);
var responseData = JSON.parse(response.getContentText());
var newPosition = getKeywordPosition(responseData, website);
var currentPosition = sheet.getRange(i + 2, 4).getValue();
sheet.getRange(i + 2, 4).setValue(newPosition); // Escribir la nueva posición en la columna D
// Calcular los cambios y actualizar la columna "Changes"
var changes = calculateChanges(newPosition, currentPosition);
sheet.getRange(i + 2, 5).setValue(changes).setFontColor(getChangeColor(changes)); // Escribir los cambios en la columna E y establecer el color de fuente
}
}
function getKeywordPosition(responseData, website) {
var results = responseData.organic_results;
for (var i = 0; i < results.length; i++) {
if (results[i].url.includes(website)) {
return i + 1; // Devolver la posición basada en 1 (en lugar de 0)
}
}
return "No encontrado"; // Si el sitio web no está en los resultados
}
function calculateChanges(newPosition, currentPosition) {
if (currentPosition === "No encontrado") {
return "Nuevo";
} else if (newPosition < currentPosition) {
return "↑ " + (currentPosition - newPosition);
} else if (newPosition > currentPosition) {
return "↓ " + (newPosition - currentPosition);
} else {
return "-";
}
}
function getChangeColor(changeText) {
if (changeText.startsWith("↑")) {
return "#00FF00"; // Verde para flecha hacia arriba
} else if (changeText.startsWith("↓")) {
return "#FF0000"; // Rojo para flecha hacia abajo
} else {
return "#000000"; // Negro para otros casos (sin cambio)
}
}
Códigos de idioma y localización
País | Código de Idioma (hl) | Código de Localización (gl) |
Afganistán | ps, uz | AF |
Albania | sq | AL |
Alemania | de | DE |
Andorra | ca | AD |
Angola | pt | AO |
Antigua y Barbuda | en | AG |
Arabia Saudita | ar | SA |
Argelia | ar | DZ |
Argentina | es | AR |
Armenia | hy | AM |
Australia | en | AU |
Austria | de | AT |
Azerbaiyán | az | AZ |
Bahamas | en | BS |
Bangladés | bn | BD |
Barbados | en | BB |
Baréin | ar | BH |
Bélgica | nl, fr, de | BE |
Belice | en | BZ |
Benín | fr | BJ |
Bielorrusia | be, ru | BY |
Birmania (Myanmar) | my | MM |
Bolivia | es | BO |
Bosnia y Herzegovina | bs | BA |
Botsuana | en | BW |
Brasil | pt | BR |
Brunéi | ms | BN |
Bulgaria | bg | BG |
Burkina Faso | fr | BF |
Burundi | rn | BI |
Bután | dz | BT |
Cabo Verde | pt | CV |
Camboya | km | KH |
Camerún | fr, en | CM |
Canadá | en, fr | CA |
Catar | ar | QA |
Chad | fr, ar | TD |
Chile | es | CL |
China | zh | CN |
Chipre | el, tr | CY |
Colombia | es | CO |
Comoras | ar, fr | KM |
Congo (Brazzaville) | fr | CG |
Congo (Kinshasa) | fr | CD |
Corea del Norte | ko | KP |
Corea del Sur | ko | KR |
Costa de Marfil | fr | CI |
Costa Rica | es | CR |
Croacia | hr | HR |
Cuba | es | CU |
Dinamarca | da | DK |
Dominica | en | DM |
Ecuador | es | EC |
Egipto | ar | EG |
El Salvador | es | SV |
Emiratos Árabes Unidos | ar | AE |
Eritrea | ti, en | ER |
Eslovaquia | sk | SK |
Eslovenia | sl | SI |
España | es | ES |
Estados Unidos | en | US |
Estonia | et | EE |
Etiopía | am, en | ET |
Filipinas | tl | PH |
Finlandia | fi, sv | FI |
Fiyi | en, fj | FJ |
Francia | fr | FR |
Gabón | fr | GA |
Gambia | en | GM |
Georgia | ka | GE |
Ghana | en | GH |
Granada | en | GD |
Grecia | el | GR |
Guatemala | es | GT |
Guinea | fr | GN |
Guinea Ecuatorial | es, fr | GQ |
Guinea-Bisáu | pt | GW |
Guyana | en | GY |
Haití | ht | HT |
Honduras | es | HN |
Hungría | hu | HU |
India | en | IN |
Indonesia | id | ID |
Irak | ar, ku | IQ |
Irán | fa | IR |
Irlanda | en, ga | IE |
Islandia | is | IS |
Islas Marshall | en, mh | MH |
Islas Salomón | en | SB |
Israel | he | IL |
Italia | it | IT |
Jamaica | en | JM |
Japón | ja | JP |
Jordania | ar | JO |
Kazajistán | kk, ru | KZ |
Kenia | en, sw | KE |
Kirguistán | ky, ru, uz | KG |
Kiribati | en | KI |
Kuwait | ar | KW |
Laos | lo | LA |
Lesoto | en | LS |
Letonia | lv | LV |
Líbano | ar | LB |
Liberia | en | LR |
Libia | ar | LY |
Liechtenstein | de | LI |
Lituania | lt | LT |
Luxemburgo | lb, de, fr | LU |
Macedonia del Norte | mk | MK |
Madagascar | mg, fr, en | MG |
Malasia | ms | MY |
Malaui | en, ny | MW |
Maldivas | dv | MV |
Malí | fr | ML |
Malta | mt, en | MT |
Marruecos | ar | MA |
Mauricio | en, fr | MU |
Mauritania | ar | MR |
México | es | MX |
Micronesia | en | FM |
Moldavia | ro | MD |
Mónaco | fr | MC |
Mongolia | mn | MN |
Montenegro | sr | ME |
Mozambique | pt | MZ |
Namibia | en | NA |
Nauru | na, en | NR |
Nepal | ne | NP |
Nicaragua | es | NI |
Níger | fr | NE |
Nigeria | en | NG |
Noruega | no | NO |
Nueva Zelanda | en, mi | NZ |
Omán | ar | OM |
Países Bajos | nl | NL |
Pakistán | ur | PK |
Palaos | en | PW |
Panamá | es | PA |
Papúa Nueva Guinea | en, ho | PG |
Paraguay | es, gn | PY |
Perú | es | PE |
Polonia | pl | PL |
Portugal | pt | PT |
Reino Unido | en | GB |
República Centroafricana | fr, sg | CF |
República Checa | cs | CZ |
República Dominicana | es | DO |
Ruanda | rw, en, fr | RW |
Rumania | ro | RO |
Rusia | ru | RU |
Samoa | sm | WS |
San Cristóbal y Nieves | en | KN |
San Marino | it | SM |
Santa Lucía | en | LC |
Santo Tomé y Príncipe | pt | ST |
San Vicente y las Granadinas | en | VC |
Senegal | fr | SN |
Serbia | sr | RS |
Seychelles | fr, en, crs | SC |
Sierra Leona | en | SL |
Singapur | en, ms, ta, zh | SG |
Siria | ar | SY |
Somalia | so | SO |
Sri Lanka | si, ta | LK |
Sudáfrica | zu, xh, af, en, tn | ZA |
Sudán | ar, en | SD |
Sudán del Sur | en, ar | SS |
Suecia | sv | SE |
Suiza | de, fr, it, rm | CH |
Surinam | nl | SR |
Swazilandia | ss, en | SZ |
Tailandia | th | TH |
Taiwán | zh | TW |
Tanzania | sw, en | TZ |
Tayikistán | tg, ru | TJ |
Timor Oriental | pt | TL |
Togo | fr | TG |
Tonga | to, en | TO |
Trinidad y Tobago | en | TT |
Túnez | ar | TN |
Turkmenistán | tk | TM |
Turquía | tr | TR |
Tuvalu | tv | TV |
Ucrania | uk | UA |
Uganda | en, sw | UG |
Uruguay | es | UY |
Uzbekistán | uz | UZ |
Vanuatu | bi, en, fr | VU |
Vaticano | it, la | VA |
Venezuela | es | VE |
Vietnam | vi | VN |
Yemen | ar | YE |
Yibuti | fr, ar, so | DJ |
Zambia | en | ZM |
Zimbabue | en, sn, nd | ZW |
Más Tutoriales
- Cómo Crear Tablas y Gráficos Dinámicos con el Plugin wpDataTables
- Mega Menu WordPress para principiantes
- AIPRM extensión para Chrome, Edge que te permite acceder a más de 1300 Prompts Gratis