Crie seu próprio agente de chatgpt para auditorias de SEO na página

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 ”

  1. Configuração do seu próprio chatgpt.
  2. Criando seu próprio código CloudFlare para buscar os dados HTML de uma página.
  3. Colocando seus agentes de auditoria de SEO para trabalhar.

No final, você terá um bot que fornece informações, como:

Chatgpt personalizado para SEOChatgpt personalizado para SEO (imagem do autor, maio de 2025)

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:

  1. Indo para http://pages.dev/
  2. 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:

Painel CloudflarePainel Cloudflare (Captura de tela do CloudFare, maio de 2025)

Navegar para Adicionar> trabalhadores.

Adicione um trabalhador de CloudFlareAdicione um CloudFlare Worker (Captura de tela do CloudFare, maio de 2025)

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.

Selecionando CloudFlare WorkerSelecionando CloudFlare Worker (Captura de tela da CloudFare, maio de 2025)

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(/<meta/>/i);
    const metaDescription = metaDescriptionMatch ? metaDescriptionMatch(1) : 'No Meta Description Found';

    const canonicalMatch = html.match(/<link/>/i);
    const canonical = canonicalMatch ? canonicalMatch(1) : 'No Canonical Tag Found';

    // Open Graph and Twitter Info
    const ogTags = {
      ogTitle: (html.match(/<meta/>/i) || ())(1) || 'No Open Graph Title',
      ogDescription: (html.match(/<meta/>/i) || ())(1) || 'No Open Graph Description',
      ogImage: (html.match(/<meta/>/i) || ())(1) || 'No Open Graph Image',
    };

    const twitterTags = {
      twitterTitle: (html.match(/<meta/>/i) || ())(2) || 'No Twitter Title',
      twitterDescription: (html.match(/<meta/>/i) || ())(2) || 'No Twitter Description',
      twitterImage: (html.match(/<meta/>/i) || ())(2) || 'No Twitter Image',
      twitterCard: (html.match(/<meta/>/i) || ())(2) || 'No Twitter Card Type',
      twitterCreator: (html.match(/<meta/>/i) || ())(2) || 'No Twitter Creator',
      twitterSite: (html.match(/<meta/>/i) || ())(2) || 'No Twitter Site',
      twitterLabel1: (html.match(/<meta/>/i) || ())(2) || 'No Twitter Label 1',
      twitterData1: (html.match(/<meta/>/i) || ())(2) || 'No Twitter Data 1',
      twitterLabel2: (html.match(/<meta/>/i) || ())(2) || 'No Twitter Label 2',
      twitterData2: (html.match(/<meta/>/i) || ())(2) || 'No Twitter Data 2',
      twitterAccountId: (html.match(/<meta/>/i) || ())(2) || 'No Twitter Account ID',
    };

    // Headings
    const headings = {
      h1: (...html.matchAll(/

Você tem duas coisas para fazer neste momento:

  1. Copie o URL para o seu trabalhador.
  2. Implantar seu trabalhador.

Este é o URL que você precisará na próxima seção. Você pode encontrá -lo aqui:

Pré -visualização do CloudFlare WorkerCloudflare Worker Visualize (captura de tela da CloudFare, maio de 2025)

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.

Explore GPTsExplore os GPTs (captura de tela do ChatGPT, maio de 2025)

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

Chatgpt personalizado para SEOCrie GPT (Screenshot a partir do ChatGPT, maio de 2025)

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:

Configure GPTConfigurar GPT (captura de tela do ChatGPT, maio de 2025)
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:

Configurações do GPT povoadasConfigurações do GPT povoadas (Captura de tela do ChatGPT, maio de 2025)

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.

Autenticação GPTAutenticação GPT (captura de tela do ChatGPT, maio de 2025)

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”.

ExemploCaptura de tela do ChatGpt, maio de 2025

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



Postagens Similares

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *