Seo

Erstellen Sie Ihren eigenen Chatgpt-Agenten für On-Page-SEO-Audits

Chatgpt ist mehr als nur eine Aufforderungs- und Antwortplattform. Sie können Eingabeaufforderungen senden, um Hilfe bei der SEO zu bitten, aber es wird mächtiger, sobald Sie Ihren eigenen Agenten machen.

Ich führe viele SEO -Audits durch – es ist eine Notwendigkeit für eine Unternehmensseite – also suchte ich nach einer Möglichkeit, einige dieser Prozesse zu optimieren.

Wie habe ich das gemacht? Durch das Erstellen eines ChatGPT -Agenten, den ich mit Ihnen teilen werde, damit Sie ihn anpassen und ändern können, um Ihre Anforderungen zu erfüllen.

Ich werde die Dinge so „ungehortig wie möglich“ halten, aber nur den Anweisungen befolgen, und alles sollte funktionieren.

Ich werde die folgenden Schritte erklären. “

  1. Konfiguration Ihres eigenen Chatgpts.
  2. Erstellen Sie Ihren eigenen Cloudflare -Code, um die HTML -Daten einer Seite zu holen.
  3. Setzen Sie Ihre SEO -Audit -Agenten an.

Am Ende haben Sie einen Bot, der Ihnen Informationen liefert, z. B.:

Benutzerdefinierte Chatgpt für SEOBenutzerdefinierte Chatgpt für SEO (Bild vom Autor, Mai 2025)

Sie erhalten außerdem eine Liste mit umsetzbaren Schritten, um Ihre SEO auf der Grundlage der Ergebnisse des Agenten zu verbessern.

Erstellen eines Cloudflare -Seitenarbeiters für Ihren Agenten

CloudFlare -Seiten helfen Ihrem Agenten dabei, Informationen von der Website zu sammeln, die Sie analysieren und den aktuellen SEO -Stand der SEO anzeigen möchten.

Sie können ein kostenloses Konto verwenden, um loszulegen, und Sie können sich registrieren, indem Sie Folgendes durchführen:

  1. Gehen Sie zu http://pages.dev/
  2. Ein Konto erstellen

Ich habe Google verwendet, um sich anzumelden, weil es einfacher ist, aber die Methode, mit der Sie am besten vertraut sind. Sie werden auf einem Bildschirm landen, der ungefähr so ​​aussieht:

Cloudflare DashboardCloudflare Dashboard (Screenshot von Cloudfare, Mai 2025)

Navigieren zu Fügen Sie> Arbeiter hinzu.

Fügen Sie einen Cloudflare -Mitarbeiter hinzuFügen Sie einen CloudFlare -Mitarbeiter hinzu (Screenshot von Cloudfare, Mai 2025).

Sie können dann eine Vorlage auswählen, ein Repository importieren oder mit Hello World beginnen! Ich habe die Hello World -Option ausgewählt, da sie am einfachsten zu verwenden ist.

Wählen Sie CloudFlare WorkerWählen Sie CloudFlare Worker (Screenshot aus Cloudfare, Mai 2025)

Gehen Sie durch den nächsten Bildschirm und klicken Sie “Einsetzen. ““ Sie werden auf einem Bildschirm mit der Aufschrift „Erfolg! Ihr Projekt ist in Region eingesetzt: Erde. “

Klicken Sie nicht auf diese Seite.

Klicken Sie stattdessen auf “Code bearbeiten“Entfernen Sie den gesamten vorhandenen Code und geben Sie den folgenden Code in den Editor ein:

addEventListener ('fetch', event => {event.respectWith (Handlrequest (Event.Request));}); asynchrische Funktion Handlrequest (Request) {const {SearchParams} = new URL (request.url); const targeturl = searchParams.get ('url'); const userAgentName = searchParams.get ('user-Agent'); if (! targetUrl) {Neue Antwort zurückgeben (json.Stringify ({Fehler: "Fehlender 'url' Parameter" }), {Status: 400, Header: {'Content-Type': 'application/json'}}); } const userAgents = {GoogleBot: 'Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5x Build/mmb29p) AppleWebkit/537.36 (kHTML, wie Gecko) Chrome/121.0.67.184 Mobile Safari/537.36 (Vergleiche;  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 wie Mac OS X) Applewebkit/602.1.50 (khtml, wie Gecko) Version/10.0 Mobile/19A346 Safari/602.1 ', MSEDSE:' Mozilla/5,0 (Windows nt 10.0; Win64; x64) Apple, wie GLECKOT, APPLE) wie Chrome/42.0.2311.135 Safari/537.36 Rand/12.246 ', Safari:' Mozilla/5.0 (Macintosh; Intel mac os x 10_11_2) Applewebkit/601.3.9 (khtml, wie Gecko) Version/9.0.2 Safari/601.3. Applewebkit/537.36 (khtml, wie Gecko; kompatibel; Bingbot/2.0;  http: //www.bing.com/bingbot.htm) Chrom/', Chrom:' Mozilla/5,0 (Windows nt 10.0; Win64; x64) wie Geck und Glock, wie Gock und 537.36 (Khtml), wie Guck und 537.36 (khtml), wie GECKO, wie khtml, wie glock, wie khtml, wie glock, wie gack und wie khtml, wie khtml, wie glock, wie gartewe/537.36 (khtml, wie Chrome/129.0.0.0 Safari/537.36 ',}; const userAgent = useragents[userAgentName] || Benutzeragents.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', }; versuche {lass reutirectChain = lass []; Sei Currenturl = targetURl; lass finalResponse; // Weiterleitungen folgen, wobei (true) {const response = warte fetch (currentUrl, {header, redirect: 'manual'}); // Fügen Sie die aktuelle URL und den Status der Umleitungskette nur dann hinzu, wenn sie noch nicht hinzugefügt wird, wenn (! RedirectChain.length || recirectChain[redirectChain.length - 1].url! } // Überprüfen Sie, ob die Antwort eine Weiterleitung ist, wenn (Antwort.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*/ich); const title = Titlematch? Titlematch[1] : 'Kein Titel gefunden'; const metadadescriptionMatch = html.match (//ich); const metadadescription = metadadescriptionMatch? MetadescriptionMatch[1] : "Keine Metabeschreibung gefunden"; const CanonicalMatch = html.match (//ich); const Canonical = CanonicalMatch? CanonicalMatch[1] : 'Kein kanonisches Tag gefunden'; // Graph- und Twitter -Info const ogtags = {ogtitle: (html.match (//i) || [])[1] || 'No Open Graph Title', OgDescription: (html.match (//i) || [])[1] || 'Keine offene Grafik Beschreibung', Ogimage: (html.match (//i) || [])[1] || 'Kein offenes Diagrammbild',}; const twitterTags = {TwitterTitle: (html.match (//i) || [])[2] || 'Kein Twitter -Titel', TwitterDescription: (html.match (//i) || [])[2] || 'Keine Twitter -Beschreibung', TwitterImage: (html.match (//i) || [])[2] || 'Kein Twitter -Bild', TwitterCard: (html.match (//i) || [])[2] || 'Kein Twitter -Kartentyp', TwitterCreator: (html.match (//i) || [])[2] || 'No Twitter Creator', Twittersite: (html.match (//i) || [])[2] || 'Keine 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] || 'Keine Twitter -Konto -ID',}; // Überschriften const hokings = {H1:[htmlmatchall(/[htmlmatchAll(/]*> (. *?)/GIS)].MAP (Match => Match[1]), H2:[htmlmatchall(/[htmlmatchAll(/]*> (. *?)/GIS)].MAP (Match => Match[1]), H3:[htmlmatchall(/[htmlmatchAll(/]*> (. *?)/GIS)].MAP (Match => Match[1]),}; // Bilder const imagematches =[htmlmatchall(/[htmlmatchAll(/]*src ="(.*?)"[^>]*>/gi)]; const images = imagematches.map (img => img[1]); const images -withoutalt = Imagematches.Filter (img =>!/Alt =".*?"/i.test(img[0])).Länge; // links const linkMatches = [...html.matchAll(/]*href ="(.*?)"[^>]*>/gi)]; const links = {intern: linkMatches.filter (link => link[1].Startswith (Domain)). MAP (link => link[1]), extern: linkMatches.filter (link =>! Link[1].Startswith (Domain) && Link[1].Startswith ('http')). map (link => link[1]),}; // Schemas (json-ld) const schemajsonldmatches =[htmlmatchall(/[htmlmatchAll(//gis)]; const schemas = schemajsonldmatches.map (match => {try {return json.parse (Match[1].trimmen()); } catch {return {Fehler: "Ungültiges json-ld"RAW: Match[1].trim ()}; }}); // microdata const microdataMatches =[htmlmatchall(/[htmlmatchAll(/<[^>]*itemscope[^>]*>/gi)]; const microdata = microdataMatches.map (Scope => {const typematch = Scope[0].Match (/itemType =[["'](.*?)[["']/ich); Rückgabe {Typ: Typematch? Typematch[1] : 'Unbekannt', Raw: Scope[0],}; }); // Antwortheader const responseheaders = array.from (FinalResponse.Headers.entries ()); // Construct Final JSON Output Return Neue Antwort (JSON.Stringify ({Targeturl, RedirectChain, Sitemaps, Metadata: {Titel, Metadeskription, kanonisch}, Überschriften, Schemas, OpenGraph: Ogtags, TwitterCards: Twittertags, Bilder: {Total. microdata, RobotStxt, Antwortheaders, // rawhtml: html,}), {headers: {'content-type': 'application/json'}}); } catch (error) {Neue Antwort zurückgeben (json.stringify ({error: error.message}), {Status: 500, Header: {'Inhalts-Typ': 'application/json'}}); }}

Sie haben an diesem Punkt zwei Dinge zu tun:

  1. Kopieren Sie die URL zu Ihrem Arbeitnehmer.
  2. Starten Sie Ihren Arbeiter.

Dies ist die URL, die Sie im nächsten Abschnitt benötigen. Sie können es hier finden:

Cloudflare Worker VorschauCloudFlare Worker Preview (Screenshot von Cloudfare, Mai 2025)

Achten Sie darauf, zu treffen “EinsetzenVor dem Verlassen des Bildschirms. Wenn Sie die Basisausgabe in dieser Phase sehen möchten, können Sie es können.

Fügen Sie Ihre URL in Ihren Browser ein und fügen Sie nach dem /?url=https://www.searchenginejourn die folgenden hinzu al.com.

Ihre URL wird ungefähr so ​​aussehen: https://yoururl.workers.dev/?url=https://searchEnginejournal.com.

Tauschen Sie die URL auf eine Ihrer Entscheidungen aus, um dies zu testen. Es ist in dieser Phase nicht das „schönste“, daher ist es jetzt an der Zeit, sich zum lustigen Teil der Konfiguration Ihres eigenen GPT zu überlegen.

Notiz: Dieser Arbeiter arbeitet nicht mit JavaScript-renderierten Websites. Aber für alle anderen, die diesen Agenten benutzen, sollte es gut funktionieren. Fühlen Sie sich frei, es zu verbessern, um mit JavaScript -Rendering zu arbeiten.

Konfigurieren Sie Ihren eigenen GPT, um meinen Agenten nachzuahmen

Sie müssen zuerst Ihren GPT konfigurieren, und dies können dies tun, indem Sie Chatgpt öffnen und zu gehen.Erforschen Sie GPTs“Oder Sie können einfach diesem Link folgen.

Erforschen Sie GPTsErkunden Sie GPTs (Screenshot von Chatgpt, Mai 2025)

Du wirst dann gehen “ Erstellen„:

Benutzerdefinierte Chatgpt für SEOGPT erstellen (Screenshot von Chatgpt, Mai 2025)

Nun wird es “erstellen” und “Konfigurieren” sagen. Gehen zu Konfigurieren und setzen Sie Ihre Informationen an.

Sie können sich gerne ein wenig ändern, aber ich empfehle, alles zu folgen, was ich unten hinzufügt, um die Grundlage Ihres Prüfers aufzubauen.

Sie werden in diesem Abschnitt hinzufügen, was ich auflisten werde:

GPT konfigurierenKonfigurieren Sie GPT (Screenshot von Chatgpt, Mai 2025)
Name: OnPage SEO AuditDescription: 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 startersUser-Agent: Googlebot, URL: https://example.comAnalyze 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?CapabilitiesWeb SearchCode Interpreter & Data Analysis

Ihre Konfiguration an diesem Punkt sollte ungefähr so ​​aussehen:

GPT -Konfigurationen besiedeltGPT -Konfigurationen besiedelt (Screenshot von Chatgpt, Mai 2025)

Überprüfen Sie alle diese Felder und prüfen Sie, ob Sie jeweils richtig bevölkert haben, bevor Sie sich weiterentwickeln Neue Aktion erstellen.

Navigieren zu Authentifizierung und wählen Keiner.

GPT -AuthentifizierungGPT -Authentifizierung (Screenshot von Chatgpt, Mai 2025)

Fügen Sie dem Schemafeld die folgende ChatGPT -Aktionscodierung hinzu, ändern Sie jedoch unbedingt die Server> URL Feld zu Ihrer eigenen URL. Ich werde es “https://changetoyoururl.com/” nennen, damit es für Sie leicht zu finden ist.

{"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" }}}}}}}}}}}

Sie sollten es unter “verfügbaren Aktionen: Fetchandauditseodata” sehen.

Unter DatenschutzrichtlinieFügen Sie einen Link zu Ihrer eigenen Datenschutzrichtlinie hinzu.

Endlich tippen “ErstellenOben rechts und folgen Sie den Eingabeaufforderungen.

Sie können jetzt Ihren GPT anzeigen; Es wird diesem On-Page-SEO-Audit-GPT ähnlich sein.

Testen Sie Ihr GPT und vertraut mit Ihren Optionen vertraut

Sie haben einen langen Weg mit Ihrem eigenen GPT zurückgelegt und es ist Zeit, Dinge auszuprobieren.

Tippen Sie auf die zweite Kachel: “Analysieren Sie die SEO -Details.” Es wird standardmäßig bei example.com, aber Sie können sie auffordern, eine URL zu testen, die Sie mögen.

Versuchen wir: netflix.com, indem wir netflix.com als URL verwenden.

BeispielScreenshot von Chatgpt, Mai 2025

Sie können jetzt mit allen verfügbaren GPT -Optionen experimentieren, um zu sehen, wie alles zusammenarbeitet.

Das Anpassen Ihres GPT weiter anpassen

Möglicherweise möchten Sie Ihr GPT weiter anpassen, indem Sie dorthin zurückkehren, wo Sie sie erstellt haben und ein paar Dinge aktualisieren.

Aktualisieren Sie Ihre Konversationsstarter, um sich anzupassen:

  • Benutzer-Agents.
  • Bearbeiten Sie Anweisungen, um Ihre Bedürfnisse besser zu erfüllen, indem Sie Auslöser und Antworten hinzufügen.

Wenn Sie möchten, gehen Sie in die Codierung für Ihren Arbeiter und fügen Sie zu „const -Benutzeragenten“ hinzu, um der Liste weitere Benutzeragenten hinzuzufügen.

Sie können jetzt zu Ihrem benutzerdefinierten GPT -Agenten wechseln und es einfach fordern, auf welcher Seite zum nächsten Scannen.

Es ist einfach, dies zu tun, indem es so etwas auffordert: „Ändern Sie die URL in TheDesiedurl“, und Ihr Agent wird für Sie arbeiten.

Zusammenfassend

Dieser benutzerdefinierte GPT -Agent ist nur ein Beispiel dafür, wie die Kombination von ChatGPT mit Cloudflare -Mitarbeitern Kern -SEO -Aufgaben rationalisieren kann.

Experimentieren Sie mit dem Agenten und ändern Sie es für Ihre Bedürfnisse.

AI hat die Fähigkeit, bei vielen Aufgaben zu helfen, und es ist hier, um zu bleiben. Die Annahme dieser Technologie als Assistent und ein effektives Tool verfügt also über Möglichkeiten, SEOs zu helfen, effizienter im Maßstab zu sein.

Weitere Ressourcen:

  • Marketing an AI -Agenten ist die Zukunft – Forschung zeigt, warum
  • Agentic AI in SEO: AI -Agenten und Workflows für Ideen (Teil 1)
  • Nutzung generativer KI -Tools für SEO


Ausgewähltes Bild: ImageFlow/Shutterstock

Leave a Reply