Crie seu próprio agente de chatgpt para auditorias de SEO na página
O ChatGPT é mais do que apenas uma plataforma de solicitação e resposta. Você pode enviar prompts para pedir ajuda com SEO, mas isso se torna mais poderoso no momento em que você faz seu próprio agente.
Eu conduzo muitas auditorias de SEO – é uma necessidade para um site corporativo – então eu estava procurando uma maneira de otimizar alguns desses processos.
Como eu fiz isso? Ao criar um agente ChatGPT que vou compartilhar com você para que você possa personalizá -lo e alterá -lo para atender às suas necessidades.
Vou manter as coisas o mais “não técnicas” possível, mas apenas siga as instruções, e tudo deve funcionar.
Vou explicar as seguintes etapas ”
- Configuração do seu próprio chatgpt.
- Criando seu próprio código CloudFlare para buscar os dados HTML de uma página.
- Colocando seus agentes de auditoria de SEO para trabalhar.
No final, você terá um bot que fornece informações, como:

Você também receberá uma lista de etapas acionáveis a serem tomadas para melhorar seu SEO com base nas descobertas do agente.
Criando um trabalhador de páginas CloudFlare para seu agente
Páginas Cloudflare Os trabalhadores ajudam seu agente a coletar informações do site que você está tentando analisar e visualizar seu estado atual de SEO.
Você pode usar uma conta gratuita para começar e pode se registrar fazendo o seguinte:
- Indo para http://pages.dev/
- Criando uma conta
Eu usei o Google para me inscrever porque é mais fácil, mas escolha o método com o qual você está mais confortável. Você acabará em uma tela que se parece mais disso:

Navegar para Adicionar> trabalhadores.

Você pode selecionar um modelo, importar um repositório ou começar com o Hello World! Eu escolhi a opção Hello World, pois é a mais fácil de usar.

Passe pela próxima tela e pressione “Implantar. ” Você acabará em uma tela que diz: “Sucesso! Seu projeto é implantado na região: Terra. ”
Não clique nesta página.
Em vez disso, clique em “Código de edição”Remova todo o código existente e insira o código a seguir no 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 < 400 && response.headers.get('location')) { const redirectUrl = new URL(response.headers.get('location'), currentUrl).href; currentUrl = redirectUrl; // Follow the redirect } else { // No more redirects; capture the final response finalResponse = response; break; } } if (!finalResponse.ok) { throw new Error(`Request to ${targetUrl} failed with status code: ${finalResponse.status}`); } const html = await finalResponse.text(); // Robots.txt const domain = new URL(targetUrl).origin; const robotsTxtResponse = await fetch(`${domain}/robots.txt`, { headers }); const robotsTxt = robotsTxtResponse.ok ? await robotsTxtResponse.text() : 'robots.txt not found'; const sitemapMatches = robotsTxt.match(/Sitemap:\s*(https?:\/\/(^\s)+)/gi) || (); const sitemaps = sitemapMatches.map(sitemap => sitemap.replace('Sitemap: ', '').trim());
// Metadata
const titleMatch = html.match(/)*>\s*(.*?)\s*<\/title>/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(/
Você tem duas coisas para fazer neste momento:
- Copie o URL para o seu trabalhador.
- Implantar seu trabalhador.
Este é o URL que você precisará na próxima seção. Você pode encontrá -lo aqui:

Certifique -se de bater “ImplantarAntes de sair da tela. Se você deseja ver a saída básica nesta fase, pode.
Cole o seu URL no seu navegador e adicione o seguinte após o /?url=https://www.searchenginejournal.com.
Seu URL ficará assim: https://yoururl.workers.dev/?url=https://searchenginejournal.com.
Troque o URL por uma de suas opções para testar isso. Não é o “mais bonito” nesta fase, então agora é hora de passar para a parte divertida de configurar seu próprio GPT.
Observação: Este trabalhador não está trabalhando com sites renderizados por JavaScript. Mas para todos os outros que usam esse agente, deve funcionar bem. Sinta -se à vontade para melhorá -lo para trabalhar com a renderização JavaScript.
Configurando seu próprio GPT para imitar meu agente
Você precisa primeiro configurar seu GPT, e pode fazer isso abrindo o ChatGPT e indo para “Explore GPTs”Ou você pode simplesmente seguir este link.

Você então irá para “+ Crie“:

Agora, ele dirá “Criar” e “Configurar”. Vá para Configure e comece a conectar suas informações.
Você pode se sentir à vontade para mudar um pouco as coisas, mas eu recomendo seguir tudo o que estou adicionando abaixo para construir a base do seu auditor.
Você adicionará o que vou listar nesta seção:

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
Sua configuração neste momento deve parecer algo assim:

Revise todos esses campos e veja se você preencheu corretamente antes de passar para Crie nova ação.
Navegar para Autenticação e escolha Nenhum.

Adicione a seguinte codificação de ação do ChatGPT ao campo do esquema, mas certifique -se de alterar o Servidores> URL campo para seu próprio URL. Vou citar “https://changetoyoururl.com/” para que seja fácil 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" }
}
}
}
}
}
}
}
}
}
}
Você deve vê -lo em “Ações disponíveis: Fetchandauditseodata”.
Sob política de Privacidadeadicione um link à sua própria política de privacidade.
Finalmente, toque “Criar”No canto superior direito e siga as instruções.
Agora você pode ver seu GPT; Será semelhante a este GPT de auditoria de SEO na página.
Testando seu GPT e familiarizando -se com suas opções
Você percorreu um longo caminho com seu próprio GPT e é hora de testar as coisas.
Toque no segundo azulejo, “Analise os detalhes do SEO”. Ele padrão é o exemplo.com, mas você pode solicitar que ele teste um URL que desejar.
Vamos tentar: netflix.com solicitando: “Use o netflix.com como o URL”.

Agora você pode experimentar qualquer uma das opções GPT disponível para ver como tudo funciona junto.
Personalizando seu GPT ainda mais
Você pode querer personalizar ainda mais o seu GPT, voltando para onde você o criou e atualizando algumas coisas.
Atualize seus iniciantes de conversa para ajustar:
- Agentes do usuário.
- Edite instruções para melhor atender às suas necessidades adicionando gatilhos e respostas.
Se quiser, vá para a codificação do seu trabalhador e adicione aos “usuários constantes” para adicionar mais agentes de usuário à lista.
Agora você pode ir ao seu agente GPT personalizado e simplesmente solicitá -lo em qual página digitalizar a seguir.
É fácil fazer isso solicitando algo assim: “Altere o URL para o TheDesiredUrl”, e seu agente começará a trabalhar para você.
Resumindo
Este agente GPT personalizado é apenas um exemplo de como combinar o ChatGPT com os funcionários do CloudFlare pode otimizar as tarefas principais de SEO.
Experimente o agente e altere -o para suas necessidades.
A IA tem a capacidade de ajudar com muitas tarefas e está aqui para ficar. Portanto, abraçar essa tecnologia para ser um assistente e uma ferramenta eficaz tem possibilidades de ajudar os SEOs a serem mais eficientes em escala.
Mais recursos:
Imagem em destaque: ImageFlow/Shutterstock