SEO-Ankertexte aus Google Sheets generieren
Experte
Dies ist ein Content Creation, Multimodal AI-Bereich Automatisierungsworkflow mit 19 Nodes. Hauptsächlich werden Code, Filter, GoogleSheets, SplitInBatches, Agent und andere Nodes verwendet. SEO-Anchor-Texte aus Google Sheets mit Claude 4 Sonnet generieren
Voraussetzungen
- •Google Sheets API-Anmeldedaten
- •Anthropic API Key
Verwendete Nodes (19)
Kategorie
Workflow-Vorschau
Visualisierung der Node-Verbindungen, mit Zoom und Pan
Workflow exportieren
Kopieren Sie die folgende JSON-Konfiguration und importieren Sie sie in n8n
{
"meta": {
"instanceId": "393ca9e36a1f81b0f643c72792946a5fe5e49eb4864181ba4032e5a408278263"
},
"nodes": [
{
"id": "8c2cca9f-cd91-4afc-8c2a-dbfb79b64b56",
"name": "Bei Chat-Nachrichtenempfang",
"type": "@n8n/n8n-nodes-langchain.chatTrigger",
"position": [
-1792,
208
],
"webhookId": "181a1719-6394-4157-98ed-3a7a48b23a0a",
"parameters": {
"mode": "webhook",
"public": true,
"options": {
"responseMode": "responseNode"
}
},
"typeVersion": 1.3
},
{
"id": "6d70bc94-52aa-4ac6-b94e-aca33559f7d0",
"name": "Filter",
"type": "n8n-nodes-base.filter",
"position": [
-944,
208
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "4aa3c2d2-9383-4b0c-a8ee-8a691dcd8744",
"operator": {
"type": "string",
"operation": "notEmpty",
"singleValue": true
},
"leftValue": "={{ $json.URL }}",
"rightValue": ""
},
{
"id": "81017b55-ffb5-497c-8b05-5d2643e3fecd",
"operator": {
"type": "string",
"operation": "empty",
"singleValue": true
},
"leftValue": "={{ $json.Anchors }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.2
},
{
"id": "3b41fbd6-fdf0-43e7-b2ac-db6f49869370",
"name": "Elemente durchlaufen",
"type": "n8n-nodes-base.splitInBatches",
"position": [
-400,
208
],
"parameters": {
"options": {}
},
"typeVersion": 3
},
{
"id": "26244ced-732e-4e26-93d8-d6dbdf15e3a5",
"name": "Ankergenerator",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
96,
224
],
"parameters": {
"text": "=# Context\nYou are an SEO expert specialized in internal linking optimization. Your mission is to create optimized link anchors for natural referencing with all their linguistic variations.\n# Task\nBased on the provided information about a web page, generate 10 different SEO anchors with all linguistic variations that can be used to create internal links to this page from other pages of the site.\n# Input Data\n\nPage URL: {{ $json.URL }}\nPage Name/Title: {{ $json['Niv 0'] }}{{ $json['Niv 1'] }}{{ $json['Niv 2'] }}{{ $json['Niv 3'] }}\nContent Description: {{ $json['Description de la page'] }}\n\n# Instructions for Anchor Generation\n## SEO Criteria to Follow:\n\nSemantic relevance: The anchor must faithfully reflect the content of the target page\nStrategic keywords: Integrate the main keywords of the target page\nNaturalness: The anchor must integrate naturally into text\nDiversity: Vary formulations to avoid over-optimization\nOptimal length: Between 2 and 6 words for maximum efficiency\n\n## Types of Anchors to Create:\n\nExact anchors: Use the exact main keyword (2 variants)\nBrand/name anchors: Use the page or section name (2 variants)\nLong-tail anchors: Longer expressions including secondary keywords (3 variants)\nContextual anchors: Natural formulations for insertion in a paragraph (2 variants)\nCall-to-action anchors: Encourage action while describing content (1 variant)\n\n## Linguistic Variations to Generate for Each Anchor:\nFor each main anchor, systematically generate:\n\nSingular/plural variation (if applicable)\nGender variation: masculine/feminine (if applicable)\nTemporal variation: present/past/future (if applicable)\nFormal/informal variation: formal/casual register\nSynonymous variation: use of main synonyms\nStructural variation: word order inversion, addition/removal of articles\nPrepositional variation: with/without prepositions (to, of, for, on, etc.)\n\n# Desired Output Format\nmain anchor 1\nvariation 1\nvariation 2\nvariation 3\nvariation 4\nmain anchor 2\nvariation 1\nvariation 2\nvariation 3\nvariation 4\nmain anchor 3\nvariation 1\nvariation 2\nvariation 3\nvariation 4\nmain anchor 4\nvariation 1\nvariation 2\nvariation 3\nvariation 4\nmain anchor 5\nvariation 1\nvariation 2\nvariation 3\nvariation 4\nmain anchor 6\nvariation 1\nvariation 2\nvariation 3\nvariation 4\nmain anchor 7\nvariation 1\nvariation 2\nvariation 3\nvariation 4\nmain anchor 8\nvariation 1\nvariation 2\nvariation 3\nvariation 4\nmain anchor 9\nvariation 1\nvariation 2\nvariation 3\nvariation 4\nmain anchor 10\nvariation 1\nvariation 2\nvariation 3\nvariation 4\n# Additional Constraints\n\nAvoid generic anchors (\"click here\", \"learn more\", \"read more\")\nDon't repeat exactly the same formulation between main anchors and their variations\nAdapt the language register to the website's tone\nPrioritize added value for the user\nEnsure balanced distribution between different types of anchors\nGenerate 3-5 relevant variations per anchor (not necessarily 4 if certain variations don't apply)\nPrioritize quality of variations over quantity\n\nDon't make an introduction or conclusion to your response, simply return the list of anchors with their variations.\nGenerate now 10 optimized SEO anchors with all their linguistic variations for the described page.",
"options": {},
"promptType": "define"
},
"typeVersion": 2.2
},
{
"id": "a498c4b3-1a95-41cf-ac41-c9f5d6f37c61",
"name": "Anthropic Chat-Modell",
"type": "@n8n/n8n-nodes-langchain.lmChatAnthropic",
"position": [
80,
400
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "claude-sonnet-4-20250514",
"cachedResultName": "Claude 4 Sonnet"
},
"options": {}
},
"credentials": {
"anthropicApi": {
"id": "WXQf5QsxCs3AyxlW",
"name": "Anthropic account"
}
},
"typeVersion": 1.3
},
{
"id": "4296eb85-78a4-4c38-ad7d-a080d3b8b07a",
"name": "Sheets aktualisieren",
"type": "n8n-nodes-base.googleSheets",
"position": [
1312,
224
],
"parameters": {
"columns": {
"value": {},
"schema": [],
"mappingMode": "autoMapInputData",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "update",
"sheetName": {
"__rl": true,
"mode": "name",
"value": "Anchor"
},
"documentId": {
"__rl": true,
"mode": "url",
"value": "={{ $('When chat message received').item.json.chatInput }}"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "wBRLUCktxqXE6DVJ",
"name": "Google Sheets account"
}
},
"typeVersion": 4.5
},
{
"id": "a8c0d205-ff46-4cd9-89c2-11be32cd90f0",
"name": "Sheets importieren",
"type": "n8n-nodes-base.code",
"position": [
912,
224
],
"parameters": {
"jsCode": "// Code avec conservation de toutes les colonnes existantes\nconst items = [];\n\n// Récupérer les données de vos différents nodes \nconst loopItem = $('Loop Over Items').item.json;\nconst aiAgentOutput = $input.first().json.output;\n\n// Créer l'objet avec toutes les colonnes et le mapping des nouvelles valeurs\nconst transformedItem = {\n // Copier toutes les propriétés existantes\n ...loopItem,\n \n // Écraser/ajouter les nouvelles valeurs\n 'Ancre': aiAgentOutput\n};\n\n// Retourner l'item transformé\nitems.push(transformedItem);\nreturn items;"
},
"typeVersion": 2
},
{
"id": "eba6bb70-cd87-485b-8f91-dad6ef78c8dc",
"name": "Haftnotiz",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1824,
112
],
"parameters": {
"color": 4,
"width": 608,
"height": 288,
"content": "# Phase 1: Workflow Initialization"
},
"typeVersion": 1
},
{
"id": "7a2d141f-442b-475f-af20-69edd9111637",
"name": "Haftnotiz1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-64,
112
],
"parameters": {
"color": 3,
"width": 688,
"height": 432,
"content": "# Phase 4: AI-Powered Anchor Generation"
},
"typeVersion": 1
},
{
"id": "c088d3ac-bef8-4191-be23-a5084171ba55",
"name": "Haftnotiz2",
"type": "n8n-nodes-base.stickyNote",
"position": [
656,
112
],
"parameters": {
"width": 896,
"height": 304,
"content": "# Phase 5: Data Integration and Google Sheets Update"
},
"typeVersion": 1
},
{
"id": "3fd478d7-3082-4e37-9ef7-6b492d29b53a",
"name": "Haftnotiz3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1824,
448
],
"parameters": {
"color": 4,
"width": 608,
"height": 592,
"content": "###What you do:\n\nDuplicate this template: https://docs.google.com/spreadsheets/d/1VNl8xLYgRrNcKrmN9hCdfov1dMnwD44tAALJZAlagCo\nFill in your page information in the \"Anchor\" sheet with:\n\nPage: Name/title of your page\nURL: Complete URL of the page\nPage description: Brief description of the page content to help AI generate relevant anchors\n\n\nSend a chat message with your duplicated Google Sheets URL to trigger the workflow\n\n### What the system does:\n\nReceives the chat trigger and extracts the Google Sheets URL from your message\nConnects to Google Sheets using OAuth2 authentication\nRetrieves all data from the \"Anchor\" sheet of your specified document\nLoads your page information including names, URLs, and descriptions for anchor generation\n\n### Result:\n\n✅ Workflow activated and ready to process your SEO data\n✅ Secure connection established to your Google Sheets document\n✅ All page information loaded and available for AI processing\n✅ Foundation set for automated anchor generation based on your specific pages"
},
"typeVersion": 1
},
{
"id": "95720cff-a480-48e8-aa19-d1250c199b8f",
"name": "Sheets abrufen",
"type": "n8n-nodes-base.googleSheets",
"position": [
-1440,
208
],
"parameters": {
"options": {},
"sheetName": {
"__rl": true,
"mode": "name",
"value": "Anchor"
},
"documentId": {
"__rl": true,
"mode": "url",
"value": "={{ $('When chat message received').item.json.chatInput }}"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "wBRLUCktxqXE6DVJ",
"name": "Google Sheets account"
}
},
"typeVersion": 4.7
},
{
"id": "e5d907dc-e34c-431a-8f30-f8d95ada7daf",
"name": "Haftnotiz4",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1184,
112
],
"parameters": {
"width": 528,
"height": 288,
"content": "# Phase 2: Data Filtering and Validation"
},
"typeVersion": 1
},
{
"id": "0f5cec09-d540-4c79-8946-ac486a4d9e71",
"name": "Haftnotiz5",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1184,
448
],
"parameters": {
"width": 528,
"height": 304,
"content": "### What the system does:\n\nFilters the retrieved data to identify pages that need anchor text generation\nApplies specific criteria: pages must have a URL but no existing anchor text\nValidates data quality by checking for empty anchor fields\nPrepares clean dataset for the AI processing pipeline\n\n### Result:\n\n✅ Only relevant pages selected for anchor generation\n✅ Existing anchor texts preserved and protected\n✅ Clean, validated data ready for AI processing\n✅ Efficient workflow execution by avoiding unnecessary processing\n"
},
"typeVersion": 1
},
{
"id": "f16841d6-b2ba-4dab-b057-608030855427",
"name": "Haftnotiz6",
"type": "n8n-nodes-base.stickyNote",
"position": [
-624,
112
],
"parameters": {
"color": 7,
"width": 528,
"height": 288,
"content": "# Phase 3: Batch Processing Setup"
},
"typeVersion": 1
},
{
"id": "02cd635e-9b37-48e7-ac4e-5942745a1885",
"name": "Haftnotiz7",
"type": "n8n-nodes-base.stickyNote",
"position": [
-624,
448
],
"parameters": {
"color": 7,
"width": 528,
"height": 288,
"content": "### What the system does:\n\nOrganizes filtered data into manageable processing batches\nInitializes the loop mechanism to handle multiple pages sequentially\nPrepares each page item with all necessary context information\nSets up iterative processing to ensure all pages are handled individually\n\n### Result:\n\n✅ Systematic processing of all qualifying pages\n✅ Memory-efficient batch handling for large datasets\n✅ Individual attention to each page's unique characteristics\n✅ Reliable processing loop that handles interruptions gracefully"
},
"typeVersion": 1
},
{
"id": "b47f1ce3-a4bf-4da7-b0a4-10cde82ab188",
"name": "Haftnotiz8",
"type": "n8n-nodes-base.stickyNote",
"position": [
-64,
576
],
"parameters": {
"color": 3,
"width": 688,
"height": 400,
"content": "## What the system does:\n\nProcesses each page individually using Claude 4 Sonnet AI model\nAnalyzes page context including URL, title hierarchy (Niv 0-3), and content description\nGenerates 10 unique SEO anchors with 3-5 linguistic variations each (40-50 total variations)\nApplies advanced SEO criteria: semantic relevance, keyword optimization, natural language flow\nCreates diverse anchor types: exact match, brand anchors, long-tail, contextual, and call-to-action variants\nEnsures linguistic diversity with singular/plural, formal/informal, and synonym variations\n\n## Result:\n\n✅ Professional-quality anchor texts optimized for internal linking\n✅ Diverse anchor variations to avoid over-optimization penalties\n✅ SEO-compliant anchors that improve search engine rankings\n✅ Natural language anchors that enhance user experience\n✅ Comprehensive anchor library for flexible content integration\n"
},
"typeVersion": 1
},
{
"id": "7939bb48-faf1-4f4c-830e-84142302b900",
"name": "Haftnotiz9",
"type": "n8n-nodes-base.stickyNote",
"position": [
656,
448
],
"parameters": {
"width": 896,
"height": 416,
"content": "## What the system does:\n\nCombines AI-generated anchors with existing page data while preserving all original information\nTransforms data structure to match Google Sheets format requirements\nUpdates the original Google Sheets document with generated anchor texts in the \"Ancre\" column\nUses keyword matching to ensure accurate row updates without data corruption\nCompletes the processing loop and moves to the next page in the batch\nContinues iterative processing until all filtered pages have anchor texts generated\nMaintains real-time synchronization between the workflow and your spreadsheet\n\n## Result:\n\n✅ Generated anchors seamlessly integrated with existing data\n✅ Your Google Sheets document automatically updated with new anchor texts\n✅ Complete SEO anchor library available for immediate use in content\n✅ Batch processing completed efficiently for all qualifying pages\n✅ Ready-to-use internal linking strategy with professional anchor variations\n✅ Time saved compared to manual anchor text creation and researchRéessayer"
},
"typeVersion": 1
},
{
"id": "e1c3fd04-0438-4956-86d3-7a9810b06510",
"name": "Haftnotiz13",
"type": "n8n-nodes-base.stickyNote",
"position": [
-2816,
112
],
"parameters": {
"width": 816,
"height": 336,
"content": "## Need more advanced automation solutions? Contact us for custom enterprise workflows!\n\n# Growth-AI.fr\n\n## https://www.linkedin.com/in/allanvaccarizi/\n## https://www.linkedin.com/in/hugo-marinier-%F0%9F%A7%B2-6537b633/"
},
"typeVersion": 1
}
],
"pinData": {},
"connections": {
"6d70bc94-52aa-4ac6-b94e-aca33559f7d0": {
"main": [
[
{
"node": "3b41fbd6-fdf0-43e7-b2ac-db6f49869370",
"type": "main",
"index": 0
}
]
]
},
"95720cff-a480-48e8-aa19-d1250c199b8f": {
"main": [
[
{
"node": "6d70bc94-52aa-4ac6-b94e-aca33559f7d0",
"type": "main",
"index": 0
}
]
]
},
"a8c0d205-ff46-4cd9-89c2-11be32cd90f0": {
"main": [
[
{
"node": "4296eb85-78a4-4c38-ad7d-a080d3b8b07a",
"type": "main",
"index": 0
}
]
]
},
"4296eb85-78a4-4c38-ad7d-a080d3b8b07a": {
"main": [
[
{
"node": "3b41fbd6-fdf0-43e7-b2ac-db6f49869370",
"type": "main",
"index": 0
}
]
]
},
"3b41fbd6-fdf0-43e7-b2ac-db6f49869370": {
"main": [
[],
[
{
"node": "26244ced-732e-4e26-93d8-d6dbdf15e3a5",
"type": "main",
"index": 0
}
]
]
},
"a498c4b3-1a95-41cf-ac41-c9f5d6f37c61": {
"ai_languageModel": [
[
{
"node": "26244ced-732e-4e26-93d8-d6dbdf15e3a5",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"26244ced-732e-4e26-93d8-d6dbdf15e3a5": {
"main": [
[
{
"node": "a8c0d205-ff46-4cd9-89c2-11be32cd90f0",
"type": "main",
"index": 0
}
]
]
},
"8c2cca9f-cd91-4afc-8c2a-dbfb79b64b56": {
"main": [
[
{
"node": "95720cff-a480-48e8-aa19-d1250c199b8f",
"type": "main",
"index": 0
}
]
]
}
}
}Häufig gestellte Fragen
Wie verwende ich diesen Workflow?
Kopieren Sie den obigen JSON-Code, erstellen Sie einen neuen Workflow in Ihrer n8n-Instanz und wählen Sie "Aus JSON importieren". Fügen Sie die Konfiguration ein und passen Sie die Anmeldedaten nach Bedarf an.
Für welche Szenarien ist dieser Workflow geeignet?
Experte - Content-Erstellung, Multimodales KI
Ist es kostenpflichtig?
Dieser Workflow ist völlig kostenlos. Beachten Sie jedoch, dass Drittanbieterdienste (wie OpenAI API), die im Workflow verwendet werden, möglicherweise kostenpflichtig sind.
Verwandte Workflows
SEO-Inhalts-Generator mit Claude AI und Wettbewerbsanalyse
SEO-Inhalte mit Claude AI und Apify-Wettbewerbsanalyse generieren
If
Code
Filter
+
If
Code
Filter
36 NodesGrowth AI
Content-Erstellung
SEO-Inhalts-Generator mit Claude AI, Wettbewerbsanalyse und Supabase RAG
SEO-Inhalte mit Claude AI, Wettbewerbsanalyse und Supabase RAG generieren
If
Code
Filter
+
If
Code
Filter
40 NodesGrowth AI
Content-Erstellung
Generierung von barrierefreien Alternativtexten von Google Sheets nach WordPress mit Claude AI
Barrierefreie Alternativtexte von Google Sheets zu WordPress mit Claude AI generieren
If
Code
Http Request
+
If
Code
Http Request
10 NodesGrowth AI
Content-Erstellung
Automatisierung von Gesicht-videos mit OpenAI, RunwayML und ElevenLabs
Automatisierung von Gesichtsvideos ohne Gesicht mit OpenAI, RunwayML und ElevenLabs: Von Skript bis Social Media
Set
Code
Wait
+
Set
Code
Wait
56 NodesLeeWei
Content-Erstellung
Automatisierte Erstellung von LinkedIn-Inhalten durch Analyse von Beiträgen mit Gemini AI und Flux-Bildgenerierung
Automatisierte LinkedIn-Erstellung durch Popularitätsanalyse mit Gemini AI und Flux Bildgenerierung
Code
Wait
Filter
+
Code
Wait
Filter
20 NodesRoshan Ramani
Content-Erstellung
WordPress-Blog-Automatisierung Professional Edition (Deep Research) v2.1 Markt
Automatisierung der Erstellung von SEO-optimierten Blogs mit GPT-4o, Perplexity AI und mehrsprachiger Unterstützung
If
Set
Xml
+
If
Set
Xml
125 NodesDaniel Ng
Content-Erstellung
Workflow-Informationen
Schwierigkeitsgrad
Experte
Anzahl der Nodes19
Kategorie2
Node-Typen8
Autor
Growth AI
@growthaiExterne Links
Auf n8n.io ansehen →
Diesen Workflow teilen