Google SheetsからSEOアンカーテキストを生成

上級

これはContent Creation, Multimodal AI分野の自動化ワークフローで、19個のノードを含みます。主にCode, Filter, GoogleSheets, SplitInBatches, Agentなどのノードを使用。 Claude 4 Sonnetを使ってGoogle SheetsからSEO锚文本を生成する

前提条件
  • Google Sheets API認証情報
  • Anthropic API Key
ワークフロープレビュー
ノード接続関係を可視化、ズームとパンをサポート
ワークフローをエクスポート
以下のJSON設定をn8nにインポートして、このワークフローを使用できます
{
  "meta": {
    "instanceId": "393ca9e36a1f81b0f643c72792946a5fe5e49eb4864181ba4032e5a408278263"
  },
  "nodes": [
    {
      "id": "8c2cca9f-cd91-4afc-8c2a-dbfb79b64b56",
      "name": "チャットメッセージ受信時",
      "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": "フィルター",
      "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": "アイテムをループ処理",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        -400,
        208
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "26244ced-732e-4e26-93d8-d6dbdf15e3a5",
      "name": "アンカー生成器",
      "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 Model",
      "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": "スプレッドシート更新",
      "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": "スプレッドシートをインポート",
      "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": "付箋",
      "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": "付箋1",
      "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": "付箋2",
      "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": "付箋3",
      "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": "スプレッドシートを取得",
      "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": "付箋4",
      "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": "付箋5",
      "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": "付箋6",
      "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": "付箋7",
      "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": "付箋8",
      "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": "付箋9",
      "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": "付箋13",
      "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
          }
        ]
      ]
    }
  }
}
よくある質問

このワークフローの使い方は?

上記のJSON設定コードをコピーし、n8nインスタンスで新しいワークフローを作成して「JSONからインポート」を選択、設定を貼り付けて認証情報を必要に応じて変更してください。

このワークフローはどんな場面に適していますか?

上級 - コンテンツ作成, マルチモーダルAI

有料ですか?

このワークフローは完全無料です。ただし、ワークフローで使用するサードパーティサービス(OpenAI APIなど)は別途料金が発生する場合があります。

関連ワークフロー

Claude AIおよび競合分析を使用したSEOコンテンツジェネレーター
Claude AIとApify製品分析でSEOコンテンツ生成
If
Code
Filter
+
If
Code
Filter
36 ノードGrowth AI
コンテンツ作成
Claude AI、競合分析、Supabase RAGを使用したSEOコンテンツジェネレーター
Claude AI、製品分析、Supabase RAGを使用してSEOコンテンツ生成
If
Code
Filter
+
If
Code
Filter
40 ノードGrowth AI
コンテンツ作成
Google SheetsからWordPressへのアクセシブル代替テキスト生成(Claude AI)
Claude AIでGoogle SheetsからWordPressへアクセシブルな代替テキストを生成
If
Code
Http Request
+
If
Code
Http Request
10 ノードGrowth AI
コンテンツ作成
OpenAI、RunwayML、ElevenLabsを使って無顔の短い動画を自動化
OpenAI、RunwayML、ElevenLabs を使ってアニメ顔の短い動画を自動化:スクリプトからソーシャルメディアへ
Set
Code
Wait
+
Set
Code
Wait
56 ノードLeeWei
コンテンツ作成
Gemini AI と Flux 画像生成で人気投稿分析から LinkedIn コンテンツを自動作成
人気の投稿分析を通じて Gemini AI と Flux 画像生成による LinkedIn コンテンツの自動作成
Code
Wait
Filter
+
Code
Wait
Filter
20 ノードRoshan Ramani
コンテンツ作成
WordPressブログの自動化プロフェッショナル版(先端研究)v2.1マーケットプラグイン
GPT-4o、Perplexity AI、そして多言語対応を使ったSEO最適化ブログ作成の自動化
If
Set
Xml
+
If
Set
Xml
125 ノードDaniel Ng
コンテンツ作成
ワークフロー情報
難易度
上級
ノード数19
カテゴリー2
ノードタイプ8
難易度説明

上級者向け、16ノード以上の複雑なワークフロー

外部リンク
n8n.ioで表示

このワークフローを共有

カテゴリー

カテゴリー: 34