Mit diesem SEO KI Agenten rankst du bei Google auf Platz 1 - n8n Deutsch

In diesem Video erkläre ich dir ausführlich, wie du mithilfe von n8n einen SEO Agenten erstellen kannst, der dir dabei hilft, auf Platz 1 bei Google zu ranken, ohne eine teure SEO Agentur beauftragen zu müssen, da das System vollautomatisiert hochwertige Blogbeiträge erstellt.

Ressourcen:

{
  "name": "SEO Content Domination Agent",
  "nodes": [
    {
      "parameters": {
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.chatTrigger",
      "typeVersion": 1.1,
      "position": [
        0,
        0
      ],
      "id": "efcab613-2a52-4e38-9b5e-8ee7f0e02719",
      "name": "When chat message received",
      "webhookId": "ba7dba47-ac4c-4f2f-94a1-a494eedd20bb"
    },
    {
      "parameters": {
        "url": "https://google-search74.p.rapidapi.com/?",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "sendQuery": true,
        "queryParameters": {
          "parameters": [
            {
              "name": "query",
              "value": "={{ $json.chatInput }}"
            },
            {
              "name": "limit",
              "value": "3"
            }
          ]
        },
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "x-rapidapi-host",
              "value": "google-search74.p.rapidapi.com"
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        220,
        0
      ],
      "id": "7b7c701e-00e8-4bb9-8b8d-0a0a28cbde99",
      "name": "HTTP Request",
      "credentials": {
        "httpHeaderAuth": {
          "id": "UyXSQdegwQWZSfTV",
          "name": "Rapid API"
        }
      }
    },
    {
      "parameters": {
        "jsCode": "// Get the 'results' array from the HTTP Request Node output\nconst results = $json.results;\n\n// Extract the URLs from each result\nconst extractedUrls = results.map(result => ({\n    url: result.url,\n    title: result.title,\n    // Optional: Include title if needed for context\n    description: result.description,\n    // Optional: Include description if needed\n}));\n\n// Return structured output\nreturn extractedUrls;\n"
      },
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        440,
        0
      ],
      "id": "dcdea4f1-1644-4c23-aef1-44769e8ad9bf",
      "name": "Code"
    },
    {
      "parameters": {
        "options": {}
      },
      "type": "n8n-nodes-base.splitInBatches",
      "typeVersion": 3,
      "position": [
        660,
        0
      ],
      "id": "c54499d5-d9ab-4ec9-aba2-ba2496617097",
      "name": "Loop Over Items"
    },
    {
      "parameters": {
        "url": "={{ $json.url }}",
        "options": {}
      },
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        940,
        200
      ],
      "id": "93d12080-4d43-447c-af7e-6065aae2b2e0",
      "name": "Fetch content from URL"
    },
    {
      "parameters": {
        "options": {}
      },
      "type": "n8n-nodes-base.splitInBatches",
      "typeVersion": 3,
      "position": [
        1020,
        -100
      ],
      "id": "34d857fd-8247-4488-8cdb-d951b50a4b58",
      "name": "Loop Over Items1"
    },
    {
      "parameters": {
        "jsCode": "// Get the input HTML from json.data\nconst html = $json.data || \"\";\n\nif (!html) {\n    throw new Error(\"No HTML content provided in json.data. Ensure the input contains valid HTML.\");\n}\n\n// Function to extract and clean content from specified tags\nfunction extractAndCleanContent(html, tag) {\n    const regex = new RegExp(`<${tag}[^>]*>(.*?)<\\/${tag}>`, \"gis\");\n    const matches = [...html.matchAll(regex)];\n\n    // Remove nested HTML tags and return plain text\n    return matches.map(match => match[1].replace(/<[^>]*>/g, \"\").trim());\n}\n\n// Extract and clean body text (from <p> and <span> tags)\nconst bodyText = [\n    ...extractAndCleanContent(html, \"p\"),\n    ...extractAndCleanContent(html, \"span\")\n];\n\n// Return the clean text as an array\nreturn {\n    bodyText\n};\n"
      },
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        1280,
        40
      ],
      "id": "73282727-baf5-48e0-8fa8-3a670a0f05fc",
      "name": "Code1"
    },
    {
      "parameters": {
        "jsCode": "// Ensure we process multiple items from the input\nconst results = items.map(item => item.json.bodyText); // Collect `bodyText` from each iteration\n\n// Define a separator to distinguish pages\nconst separator = \"\\n\\n--- Page Break ---\\n\\n\";\n\n// Combine all body text into a single string\nconst combinedBodyText = results.join(separator);\n\n// Return the concatenated result\nreturn {\n    combinedBodyText\n};"
      },
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        1300,
        -140
      ],
      "id": "c5e6eba2-5167-46eb-8c6a-16bbc16054f4",
      "name": "Concatenate Body Text Code"
    },
    {
      "parameters": {
        "modelId": {
          "__rl": true,
          "value": "gpt-4o-mini",
          "mode": "list",
          "cachedResultName": "GPT-4O-MINI"
        },
        "messages": {
          "values": [
            {
              "content": "=Anweisungen\nAnalysiere den Haupttext aus drei gescrapten Webseiten und erstelle eine strukturierte, detaillierte Zusammenfassung der wichtigsten Informationen. Der Fokus liegt darauf, einzigartige, relevante und umsetzbare Erkenntnisse zu identifizieren, die zur Erstellung eines hochwertigen Blogbeitrags genutzt werden können.\n\nSchritte\nEingabeanalyse: Untersuche den kombinierten Haupttext aus den drei Webseiten: {{ $json.combinedBodyText }}.\n\nThemenidentifikation: Bestimme die übergeordneten Themen oder Schwerpunkte, die im kombinierten Text behandelt werden.\n\nInhalts-Extraktion: Extrahiere zentrale Details wie:\n\nWichtige Argumente oder Kernaussagen.\n\nUnterstützende Fakten, Statistiken oder Belege.\n\nEinzigartige Erkenntnisse oder Perspektiven.\n\nStrukturierte Zusammenfassung: Organisiere die Informationen in einem nutzerfreundlichen Format für den Blogautor. Nutze folgende Abschnitte:\n\nEinleitung/Überblick\n\nWichtige Erkenntnisse/Funde (Listenformat)\n\nBelege/Beispiele\n\nImplikationen oder mögliche Anwendungen\n\nKlarheit und Relevanz: Die Zusammenfassung sollte präzise, ohne unnötige Wiederholungen und direkt auf die Erstellung eines Blogbeitrags ausgerichtet sein.\n\nZiel\nEine kohärente und detaillierte Zusammenfassung zu erstellen, die alle wesentlichen Informationen aus dem Input-Text enthält. Diese Zusammenfassung dient als Grundlage für den anschließenden Blogbeitrag.\n\nFokus\nExtrahiere Inhalte mit Mehrwert für die Leser, z. B. einzigartige Datenpunkte, Expertenmeinungen oder praktische Anwendungen. Vermeide allgemeine Informationen und hebe stattdessen spezifische Inhalte hervor, die in den drei Webseiten einzigartig sind.\n\nBeispielhafte Ausgabe\nÜberblick\n[Kurzbeschreibung der Hauptthemen, die in den drei Webseiten behandelt werden.]\n\nWichtige Erkenntnisse/Funde\n[Erkenntnis 1]\n\n[Erkenntnis 2]\n\n[Erkenntnis 3]\n\nBelege/Beispiele\n[Fakt oder Beispiel aus Seite 1]\n\n[Fakt oder Beispiel aus Seite 2]\n\n[Fakt oder Beispiel aus Seite 3]\n\nImplikationen oder Anwendungen\n[Analyse, wie die Informationen genutzt oder welche weiterführenden Bedeutungen sie haben könnten.]"
            }
          ]
        },
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "typeVersion": 1.8,
      "position": [
        1520,
        -140
      ],
      "id": "008b5482-3539-4a29-ba46-5ad424c652ca",
      "name": "Data Extractor and Summarizer Agent",
      "credentials": {
        "openAiApi": {
          "id": "0Q8xjJ67POc85sJP",
          "name": "OpenAi account 3"
        }
      }
    },
    {
      "parameters": {
        "modelId": {
          "__rl": true,
          "value": "gpt-4o-mini",
          "mode": "list",
          "cachedResultName": "GPT-4O-MINI"
        },
        "messages": {
          "values": [
            {
              "content": "=Rolle:\nDu bist ein erfahrener SEO-Content-Autor mit Fachwissen in der Erstellung hochwertiger, suchmaschinenoptimierter Artikel. Du bist darauf spezialisiert, bestehende Top-Ergebnisse zu analysieren und überlegene Inhalte zu erstellen, die diese übertreffen.\n\nAnweisungen:\nDu erhältst eine Zusammenfassung: {{ $json.message.content }}, die die wichtigsten Inhalte aus den bestplatzierten SERP-Ergebnissen für das gegebene Thema enthält. Diese Fakten spiegeln wider, was bereits gut in den Suchergebnissen performt. Deine Aufgabe ist es, diese Inhalte zu analysieren und einen Blog-Artikel zu erstellen, der nicht nur informativ und ansprechend ist, sondern auch durch Mehrwert, Tiefe und Nutzererfahrung die Konkurrenz übertrifft.\n\nSchritte:\nInhaltsanalyse:\nÜberprüfe die Zusammenfassung gründlich, die die besten Informationen der Top-Ranking-Seiten enthält.\n\nIdentifiziere Bereiche, in denen bestehende Inhalte hinsichtlich Tiefe, Klarheit und Mehrwert verbessert werden können.\n\nAchte auf fehlende oder übersehene Punkte, die du zusätzlich abdecken kannst.\n\nStrukturierung des Artikels:\nOrganisiere den Inhalt in ein klares, gut strukturiertes Format mit einer einleitenden Übersicht, einem ansprechenden Hauptteil und einer starken Schlussfolgerung.\n\nOptimiere die Lesbarkeit durch logische Abschnitte mit aussagekräftigen Überschriften (H1, H2, H3) für eine einfache Navigation.\n\nZerlege komplexe Informationen in verständliche Abschnitte und nutze kurze Absätze, Bullet Points und nummerierte Listen.\n\nLesbarkeit verbessern:\nSchreibe in einem ansprechenden, leicht verständlichen Ton, während du Professionalität und Autorität beibehältst.\n\nVerwende eine natürliche Sprache, die die Leser anspricht und die Nutzerbindung fördert.\n\nOptimierungen:\nFalls möglich, füge multimediale Elemente wie Bilder, Diagramme oder Grafiken hinzu, um das Verständnis und die Interaktion zu verbessern.\n\nFinale Überprüfung:\nGrammatik, Rechtschreibung und Konsistenz prüfen.\n\nFakten auf Richtigkeit überprüfen.\n\nAktualität sicherstellen (die neuesten verfügbaren Informationen verwenden).\n\nTon und Lesbarkeit bewerten, um die Zielgruppe bestmöglich anzusprechen.\n\nSEO-Anforderungen und Nutzerfreundlichkeit in Einklang bringen.\n\nZiel:\nDas ultimative Ziel ist es, einen überlegenen, SEO-optimierten Blog-Artikel zu erstellen, der nicht nur die aktuellen Top-Konkurrenten übertrifft, sondern auch mehr Wert bietet, die Leser fesselt und leicht verständlich ist. Der Inhalt sollte autoritativ, gut recherchiert und darauf ausgelegt sein, Besucher in treue Leser oder Kunden zu verwandeln.\n\nFokus:\nStrikte Orientierung an den Fakten der bestplatzierten Seiten, jedoch mit Verbesserungen und Erweiterungen.\n\nKein Abschweifen auf irrelevante oder themenfremde Inhalte.\n\nSicherstellen, dass der Inhalt genau auf die Suchintention der Zielgruppe abgestimmt ist – diese sucht nach umsetzbaren, detaillierten und verlässlichen Informationen.\n\nKeine übermäßige Keyword-Nutzung – stattdessen ein natürlicher, leserfreundlicher Schreibstil."
            }
          ]
        },
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "typeVersion": 1.8,
      "position": [
        1580,
        100
      ],
      "id": "ed81d15a-39fa-41a2-aa5c-316091e5920e",
      "name": "SEO CONTENT WRITER AGENT",
      "credentials": {
        "openAiApi": {
          "id": "0Q8xjJ67POc85sJP",
          "name": "OpenAi account 3"
        }
      }
    },
    {
      "parameters": {
        "modelId": {
          "__rl": true,
          "value": "gpt-4o-mini",
          "mode": "list",
          "cachedResultName": "GPT-4O-MINI"
        },
        "messages": {
          "values": [
            {
              "content": "=Rolle:\nDu bist ein versierter, menschenähnlicher Schreibassistent, dessen Aufgabe es ist, Blog-Inhalte in einen fesselnden, einfühlsamen und dialogorientierten Schreibstil zu verwandeln – ohne die Fakten oder die Struktur zu verändern.\n\nAnweisungen:\nDu erhältst Inhalte vom Blog-Writer-Agenten: {{ $json.message.content }}. Deine Aufgabe ist es, den Ton, Stil und Lesefluss so zu verfeinern, dass der Text natürlicher, zugänglicher und ansprechender wirkt. Dabei gelten folgende Richtlinien:\n\nKernrichtlinien\nFaktentreue und Struktur beibehalten:\nDie ursprünglichen Fakten, die Struktur und die Organisation des Inhalts müssen erhalten bleiben.\n\nDie Anpassung erfolgt ausschließlich in Bezug auf Ton und Sprache.\n\nNatürlichere Wortwahl:\nErsetze formelle oder fachliche Begriffe durch alltagstaugliche Sprache. Beispielsweise:\n\n„Nutzen“ statt „Utilisieren“\n\n„Um zu“ statt „In Ordnung zu“\n\n„Was noch besser ist“ statt „Des Weiteren“\n\n„Aber“ statt „Jedoch“\n\n„Auch“ statt „Zusätzlich“\n\nVariiere die Absatzlängen, um die Leserbindung zu verbessern.\n\nMehr Wert für den Leser:\nKein überflüssiges Füllmaterial – jede Aussage soll wertvolle Informationen, Erkenntnisse oder emotionale Verbindung bieten.\n\nStilistische Verbesserungen:\nNutze, wo möglich, den aktiven Satzbau.\n\nVermeide abgedroschene Phrasen, Wiederholungen und ungeschickte Übergänge.\n\nBaue greifbare Beispiele oder kurze Anekdoten ein, um eine emotionale Verbindung zum Leser zu schaffen.\n\nVerbotene Begriffe & Einschränkungen\nBegrenzte Nutzung:\nDie Wörter „einzigartig“, „sicherstellen“ und „äußerst“ dürfen höchstens dreimal verwendet werden.\n\nVöllig vermeiden:\nDie folgenden Wörter dürfen nicht verwendet werden:\n\n„sorgfältig“\n\n„Komplexitäten“\n\n„maßgeschneidert“\n\n„individuell angepasst“\n\n„stützt sich auf“\n\n„unter anderem“\n\n„die Geheimnisse lüften“\n\n„die Geheimnisse enthüllen“\n\n„stabil“\n\nsowie ähnliche überstrapazierte oder übermäßig formelle Begriffe.\n\nPassivkonstruktionen vermeiden – stattdessen klare, lebendige und ansprechende Formulierungen nutzen.\n\nBeispiele für eine gelungene Umwandlung:\n❌ Vorher: „Dieses Tool kann Ihren Arbeitsablauf verbessern.“\n✅ Nachher: „Stell dir vor, deine Aufgaben erledigen sich fast wie von selbst – dank eines Tools, das dir die schwere Arbeit abnimmt.“\n\n❌ Vorher: „Es ist ratsam, alle Optionen zu prüfen, bevor eine Entscheidung getroffen wird.“\n✅ Nachher: „Nimm dir kurz Zeit, um deine Möglichkeiten abzuwägen – was passt am besten zu dir?“\n\nZiel:\nDer endgültige Text soll natürlich, mitreißend und menschlich klingen, ohne dass Fakten oder Struktur verändert werden. Ziel ist es, die Leser zu fesseln, ihr Interesse zu halten und eine echte Verbindung aufzubauen. Lesbarkeit, Nahbarkeit und emotionale Resonanz stehen an erster Stelle."
            }
          ]
        },
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "typeVersion": 1.8,
      "position": [
        1600,
        360
      ],
      "id": "85871c8c-5249-4721-97e6-e2e6794697aa",
      "name": "Humanize Agent",
      "credentials": {
        "openAiApi": {
          "id": "0Q8xjJ67POc85sJP",
          "name": "OpenAi account 3"
        }
      }
    },
    {
      "parameters": {
        "operation": "createFromText",
        "content": "={{ $('SEO CONTENT WRITER AGENT').item.json.message.content }}",
        "name": "=blog_post_from_{{ $now }}",
        "driveId": {
          "__rl": true,
          "mode": "list",
          "value": "My Drive"
        },
        "folderId": {
          "__rl": true,
          "value": "https://drive.google.com/drive/u/2/folders/1cW6sgyfK8lBg37D7gzcaRpKPa6IvGwwU",
          "mode": "url"
        },
        "options": {}
      },
      "type": "n8n-nodes-base.googleDrive",
      "typeVersion": 3,
      "position": [
        1960,
        360
      ],
      "id": "627ea252-a366-4126-b4cd-f4465af0957f",
      "name": "Google Drive",
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "MQg4gR2sZaznyCCq",
          "name": "Google Drive account 3"
        }
      }
    }
  ],
  "pinData": {},
  "connections": {
    "When chat message received": {
      "main": [
        [
          {
            "node": "HTTP Request",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "HTTP Request": {
      "main": [
        [
          {
            "node": "Code",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Code": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over Items": {
      "main": [
        [
          {
            "node": "Loop Over Items1",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Fetch content from URL",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Fetch content from URL": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over Items1": {
      "main": [
        [
          {
            "node": "Concatenate Body Text Code",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Code1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Code1": {
      "main": [
        [
          {
            "node": "Loop Over Items1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Concatenate Body Text Code": {
      "main": [
        [
          {
            "node": "Data Extractor and Summarizer Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Data Extractor and Summarizer Agent": {
      "main": [
        [
          {
            "node": "SEO CONTENT WRITER AGENT",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "SEO CONTENT WRITER AGENT": {
      "main": [
        [
          {
            "node": "Humanize Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Humanize Agent": {
      "main": [
        [
          {
            "node": "Google Drive",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "9069535f-229e-452e-9c18-bfbd5f10b53e",
  "meta": {
    "templateCredsSetupCompleted": true,
    "instanceId": "c4015987044746ece7ec1fa4a093d971fd09a368a13e934a29cf42d32d45a202"
  },
  "id": "JvncSSjIUXnEs6Hg",
  "tags": []
}

Reply

or to participate.