ChatGPT es más que una simple plataforma de solicitud y respuesta. Puede enviar indicaciones para pedir ayuda con SEO, pero se vuelve más poderoso en el momento en que usted hace su propio agente.
Realizo muchas auditorías de SEO, es una necesidad para un sitio empresarial, por lo que estaba buscando una forma de racionalizar algunos de estos procesos.
¿Cómo lo hice? Al crear un agente de chatgpt que voy a compartir con usted para que pueda personalizarlo y cambiarlo para satisfacer sus necesidades.
Mantendré las cosas lo más “poco técnicas” posible, pero solo seguiré las instrucciones y todo debería funcionar.
Voy a explicar los siguientes pasos “
- Configuración de su propio chatgpt.
- Creación de su propio código CloudFlare para obtener los datos HTML de una página.
- Poner a trabajar a sus agentes de auditoría de SEO.
Al final, tendrá un bot que le proporciona información, como:
También recibirá una lista de pasos procesables para mejorar su SEO en función de los hallazgos del agente.
Creación de un trabajador de páginas de Cloudflare para su agente
Los trabajadores de Cloudflare Pages ayudan a su agente a recopilar información del sitio web que está tratando de analizar y ver su estado actual de SEO.
Puede usar una cuenta gratuita para comenzar, y puede registrarse haciendo lo siguiente:
- Ir a http://pages.dev/
- Creando una cuenta
Utilicé Google para registrarse porque es más fácil, pero elija el método con el que se sienta más cómodo. Terminarás en una pantalla que se parece a esto:

Navegar por Agregar> trabajadores.

¡Luego puede seleccionar una plantilla, importar un repositorio o comenzar con Hello World! Elegí la opción Hello World, ya que es la más fácil de usar.

Pase por la siguiente pantalla y presione “Desplegar. ” Terminarás en una pantalla que diga: “¡éxito! Su proyecto se implementa en la región: la Tierra “.
No hagas clic en esta página.
En su lugar, haga clic en “Código de edición“Elimine todo el código existente e ingrese el siguiente código en el editor:
addEventListener('fetch', event => {
event.respondWith(handleRequest(event.request));
});
async function handleRequest(request) {
const { searchParams } = new URL(request.url);
const targetUrl = searchParams.get('url');
const userAgentName = searchParams.get('user-agent');
if (!targetUrl) {
return new Response(
JSON.stringify({ error: "Missing 'url' parameter" }),
{ status: 400, headers: { 'Content-Type': 'application/json' } }
);
}
const userAgents = {
googlebot: 'Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.6167.184 Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)',
samsung5g: 'Mozilla/5.0 (Linux; Android 13; SM-S901B) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Mobile Safari/537.36',
iphone13pmax: 'Mozilla/5.0 (iPhone14,3; U; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/602.1.50 (KHTML, like Gecko) Version/10.0 Mobile/19A346 Safari/602.1',
msedge: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.246',
safari: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_2) AppleWebKit/601.3.9 (KHTML, like Gecko) Version/9.0.2 Safari/601.3.9',
bingbot: 'Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm) Chrome/',
chrome: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36',
};
const userAgent = userAgents(userAgentName) || userAgents.chrome;
const headers = {
'User-Agent': userAgent,
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Encoding': 'gzip',
'Cache-Control': 'no-cache',
'Pragma': 'no-cache',
};
try {
let redirectChain = ();
let currentUrl = targetUrl;
let finalResponse;
// Follow redirects
while (true) {
const response = await fetch(currentUrl, { headers, redirect: 'manual' });
// Add the current URL and status to the redirect chain only if it's not already added
if (!redirectChain.length || redirectChain(redirectChain.length - 1).url !== currentUrl) {
redirectChain.push({ url: currentUrl, status: response.status });
}
// Check if the response is a redirect
if (response.status >= 300 && response.status sitemap.replace('Sitemap: ', '').trim());
// Metadata
const titleMatch = html.match(/)*>\s*(.*?)\s*/i);
const title = titleMatch ? titleMatch(1) : 'No Title Found';
const metaDescriptionMatch = html.match(//i);
const metaDescription = metaDescriptionMatch ? metaDescriptionMatch(1) : 'No Meta Description Found';
const canonicalMatch = html.match(//i);
const canonical = canonicalMatch ? canonicalMatch(1) : 'No Canonical Tag Found';
// Open Graph and Twitter Info
const ogTags = {
ogTitle: (html.match(//i) || ())(1) || 'No Open Graph Title',
ogDescription: (html.match(//i) || ())(1) || 'No Open Graph Description',
ogImage: (html.match(//i) || ())(1) || 'No Open Graph Image',
};
const twitterTags = {
twitterTitle: (html.match(//i) || ())(2) || 'No Twitter Title',
twitterDescription: (html.match(//i) || ())(2) || 'No Twitter Description',
twitterImage: (html.match(//i) || ())(2) || 'No Twitter Image',
twitterCard: (html.match(//i) || ())(2) || 'No Twitter Card Type',
twitterCreator: (html.match(//i) || ())(2) || 'No Twitter Creator',
twitterSite: (html.match(//i) || ())(2) || 'No Twitter Site',
twitterLabel1: (html.match(//i) || ())(2) || 'No Twitter Label 1',
twitterData1: (html.match(//i) || ())(2) || 'No Twitter Data 1',
twitterLabel2: (html.match(//i) || ())(2) || 'No Twitter Label 2',
twitterData2: (html.match(//i) || ())(2) || 'No Twitter Data 2',
twitterAccountId: (html.match(//i) || ())(2) || 'No Twitter Account ID',
};
// Headings
const headings = {
h1: (...html.matchAll(/
Tienes dos cosas que hacer en este momento:
- Copie la URL a su trabajador.
- Implemente a su trabajador.
Esta es la URL que necesitará en la siguiente sección. Puedes encontrarlo aquí:

Asegúrese de golpear “Desplegar“Antes de salir de la pantalla. Si desea ver la salida básica en esta etapa, puede.
Pegue su URL en su navegador y agregue lo siguiente después de /?url=https://www.searchenginejournal.com.
Su URL se verá así: https://yoururl.workers.dev/?url=https://searchenginejournal.com.
Cambie la URL a una de sus eligiendo probar esto. No es el “más bonito” en esta etapa, por lo que ahora es el momento de pasar a la parte divertida de configurar su propio GPT.
Nota: Este trabajador no está trabajando con sitios renderizados por JavaScript. Pero para todos los demás que usan este agente, debería funcionar bien. Siéntase libre de mejorarlo para trabajar con JavaScript Rendering.
Configuración de su propio GPT para imitar a mi agente
Primero debe configurar su GPT, y puede hacerlo abriendo chatgpt e ir a “Explorar GPTS“O simplemente puedes seguir este enlace.

Entonces irás a “+ Crear“:

Ahora, dirá “Crear” y “Configurar”. Ir a Configurar y comience a conectar su información.
Puede sentirse libre de cambiar un poco las cosas, pero recomiendo seguir todo lo que estoy agregando a continuación para construir la base de su auditor.
Agregarás lo que voy a enumerar en esta sección:

Name: OnPage SEO Audit
Description: Analyze SEO performance of any webpage using custom user-agents. Get detailed insights into metadata, redirect chains, Open Graph tags, Twitter Cards, sitemaps, and more. Perfect for SEO professionals and developers.
Instructions:
Trigger: When a user submits a URL (required) and an optional user-agent:
Instruction: Use the provided inputs to make an API request to retrieve SEO data. Default to the chrome user-agent if not provided.
Trigger: When the API returns valid data:
Instruction: Analyze the data and provide:
A summary of the page's SEO performance.
Actionable suggestions for improvement, categorized into metadata, technical SEO, and content.
Follow-up questions to clarify user priorities or goals, such as:
"Do you have specific goals for this page, such as improving search visibility, click-through rates, or user engagement?"
"Would you like me to focus on technical SEO or content-related improvements first?"
Example Response:
"The page's meta description is missing, which can impact click-through rates. Would you like me to suggest a draft description?"
Trigger: When the API returns HTTP 403:
Instruction:
Retry the request using the chrome user-agent.
If the issue persists:
Notify the user of the problem.
Suggest verifying the URL or user-agent compatibility.
Trigger: When the API returns a 400 error:
Instruction:
Clearly explain the error and provide actionable steps to resolve it (e.g., verify the URL format or ensure required parameters are provided).
Trigger: When data is incomplete or missing:
Instruction:
Request additional information from the user or permission to explore fallback data sources.
Example Follow-Up:
"The API response is missing a meta description for this page. Can you confirm if this was intentional, or should we explore other sources?"
Additional Guidelines:
Include:
A categorized summary of the page's SEO performance (e.g., metadata, technical SEO, content).
A prioritized list of recommended actions.
Visual examples or detailed explanations, when applicable.
Proactively address multiple detected issues with follow-up questions:
"The page has several critical issues, including missing Open Graph tags and a non-canonical URL. Would you like me to prioritize recommendations for social media or canonicalization first?"
Conversation starters
User-Agent: Googlebot, URL: https://example.com
Analyze the SEO details for https://example.com using Googlebot.
Analyze the page using the Samsung Galaxy S22 user-agent.
What metadata is available for https://example.com with Chrome?
Capabilities
Web Search
Code Interpreter & Data Analysis
Su configuración en este punto debería verse algo así:

Revise todos estos campos y vea si ha poblado cada uno correctamente antes de pasar a Crea una nueva acción.
Navegar por Autenticación y elegir Ninguno.

Agregue la siguiente codificación de acción de chatgpt al campo de esquema, pero asegúrese de cambiar el Servidores> URL campo a su propia url. Lo nombraré “https://changetoyoururl.com/” para que sea fácil de encontrar.
{
"openapi": "3.1.0",
"info": {
"title": "Enhanced SEO Analysis and Audit API",
"description": "Fetch SEO data for analysis. Use the returned data to generate actionable SEO recommendations using AI or experts.",
"version": "1.2.0"
},
"servers": (
{
"url": "https://CHANGETOYOURURL.com/",
"description": "Base URL for Enhanced SEO Analysis API"
}
),
"paths": {
"/": {
"get": {
"operationId": "fetchAndAuditSEOData",
"summary": "Fetch and Audit SEO Data",
"description": "Retrieve SEO analysis data using a user-agent and URL and perform a basic SEO audit.",
"parameters": (
{
"name": "user-agent",
"in": "query",
"description": "The user-agent for the request.",
"required": true,
"schema": {
"type": "string",
"enum": ("chrome", "googlebot", "iphone13pmax", "samsung5g")
}
},
{
"name": "url",
"in": "query",
"description": "The URL of the webpage to analyze.",
"required": true,
"schema": {
"type": "string",
"format": "uri"
}
}
),
"responses": {
"200": {
"description": "Successful response with audit results",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"metadata": {
"type": "object",
"properties": {
"title": { "type": "string" },
"metaDescription": { "type": "string" },
"canonical": { "type": "string" }
}
},
"redirectChain": {
"type": "array",
"items": {
"type": "object",
"properties": {
"url": { "type": "string" },
"status": { "type": "integer" }
}
}
},
"openGraph": {
"type": "object",
"properties": {
"ogTitle": { "type": "string" },
"ogDescription": { "type": "string" },
"ogImage": { "type": "string" }
}
},
"twitterCards": {
"type": "object",
"properties": {
"twitterTitle": { "type": "string" },
"twitterDescription": { "type": "string" },
"twitterImage": { "type": "string" }
}
},
"sitemaps": {
"type": "array",
"items": { "type": "string" }
},
"robotsTxt": {
"type": "string"
},
"audit": {
"type": "object",
"properties": {
"issues": {
"type": "array",
"items": { "type": "string" }
},
"recommendations": {
"type": "array",
"items": { "type": "string" }
}
}
},
"auditSummary": {
"type": "array",
"items": {
"type": "string"
}
},
"nextSteps": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": { "type": "string" }
}
}
}
}
}
}
}
}
}
}
Debería verlo en “Acciones disponibles: Fetchandauditseodata”.
Bajo política de privacidadagregue un enlace a su propia política de privacidad.
Finalmente, toque “Crear“En la parte superior derecha y sigue las indicaciones.
Ahora puede ver su GPT; Será similar a esta auditoría de SEO en la página GPT.
Probar su GPT y familiarizarse con sus opciones
Has recorrido un largo camino con tu propio GPT, y es hora de probar las cosas.
Toque el segundo mosaico, “Analice los detalles de SEO”. Es predeterminado a Ejemplo.com, pero puede solicitar que pruebe una URL que le guste.
Vamos a intentar: netflix.com solicitando: “Use netflix.com como URL”.

Ahora puede experimentar con cualquiera de las opciones de GPT disponibles para ver cómo todo funciona en conjunto.
Personalizando más a su GPT
Es posible que desee personalizar más su GPT volviendo a donde lo creó y actualizando algunas cosas.
Actualice sus iniciadores de conversación para ajustar:
- Agentes de usuario.
- Edite instrucciones para satisfacer mejor sus necesidades agregando desencadenantes y respuestas.
Si lo desea, ingrese a la codificación para su trabajador y agregue a “constante usuarios” para agregar más agentes de usuario a la lista.
Ahora puede ir a su agente GPT personalizado y simplemente solicitarlo en qué página escanear a continuación.
Es fácil hacer esto provocando algo como esto: “Cambie la URL a Thedesiredurl”, y su agente se pondrá a trabajar para usted.
En resumen
Este agente GPT personalizado es solo un ejemplo de cómo la combinación de chatGPT con los trabajadores de Cloudflare puede optimizar las tareas de SEO central.
Experimente con el agente y cámbielo para sus necesidades.
AI tiene la capacidad de ayudar con muchas tareas y está aquí para quedarse. Por lo tanto, adoptar esta tecnología para ser un asistente y una herramienta efectiva tiene posibilidades de ayudar a los SEO a ser más eficientes a escala.
Más recursos:
Imagen destacada: ImageFlow/Shutterstock
(Tagstotranslate) AI generativo