Workflow-Vorlage für Domain-Analyse

Fortgeschritten

Dies ist ein Market Research-Bereich Automatisierungsworkflow mit 12 Nodes. Hauptsächlich werden Code, McpClient, GoogleSheets, ManualTrigger, SplitInBatches und andere Nodes verwendet. Automatisierung der mehrdomänen-SEO-Analyse mit Ahrefs und Google Sheets

Voraussetzungen
  • Google Sheets API-Anmeldedaten
Workflow-Vorschau
Visualisierung der Node-Verbindungen, mit Zoom und Pan
Workflow exportieren
Kopieren Sie die folgende JSON-Konfiguration und importieren Sie sie in n8n
{
  "id": "62lxnDVx4b47ql6P",
  "meta": {
    "instanceId": "3d4f6f82ad714311bb383a0cddf651da8753530e5575f46d078b9a29d27557e0"
  },
  "name": "Domain Analyzer Workflow Template",
  "nodes": [
    {
      "id": "d4d19da7-a633-4090-8449-0d51556b6f36",
      "name": "Bei Klick auf 'Workflow ausführen'",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -1024,
        144
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "6297f8b6-b592-48e0-80ea-799e7ba02e95",
      "name": "Über Elemente iterieren",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        -560,
        144
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "8e2c22fa-bd52-4ef2-b998-f88b073eab71",
      "name": "Parse JSON",
      "type": "n8n-nodes-base.code",
      "position": [
        -160,
        -240
      ],
      "parameters": {
        "jsCode": "// Input: Stringified JSON with escaped characters like \\n, \\\", etc.\nconst inputString = $input.first().json.result.content[0].text\n\n// Parse the string into a real object\nconst parsedJson = JSON.parse(inputString);\n\nreturn [\n  {\n    json: parsedJson\n  }\n];"
      },
      "typeVersion": 2
    },
    {
      "id": "5c3fa80f-a116-4d1c-8b3f-872dab147dba",
      "name": "Verkehrsdaten zu Sheet hinzufügen",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        16,
        -240
      ],
      "parameters": {
        "columns": {
          "value": {
            "Domain": "={{ $('Get Domains in sheet').item.json.Domain }}",
            "top_pages": "={{ $json.top_pages }}",
            "top_keywords": "={{ $json.top_keywords }}",
            "costMontlyAvg": "={{ $json.traffic.costMontlyAvg }}",
            "top_countries": "={{ $json.top_countries }}",
            "traffic_history": "={{ $json.traffic_history }}",
            "trafficMonthlyAvg": "={{ $json.traffic.trafficMonthlyAvg }}"
          },
          "schema": [
            {
              "id": "Domain",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Domain",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "trafficMonthlyAvg",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "trafficMonthlyAvg",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "costMontlyAvg",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "costMontlyAvg",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "traffic_history",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "traffic_history",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "top_pages",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "top_pages",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "top_keywords",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "top_keywords",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "top_countries",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "top_countries",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "domainRating",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "domainRating",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "urlRating",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "urlRating",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "backlinksCount",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "backlinksCount",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "referringDomains",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "referringDomains",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "dofollowBacklinksPercentage",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "dofollowBacklinksPercentage",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "dofollowRefdomainsPercentage",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "dofollowRefdomainsPercentage",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "row_number",
              "type": "number",
              "display": true,
              "removed": true,
              "readOnly": true,
              "required": false,
              "displayName": "row_number",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "Domain"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "update",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1hqDbgAfqxH7y79TO1Brt8lIXupGkQ7WSf1mnQiiw7Oo/edit#gid=0",
          "cachedResultName": "Domains"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1oBQqboIT9ubDmMIvvZveAneUHpuNV60egXsIU3hyuy0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1oBQqboIT9ubDmMIvvZveAneUHpuNV60egXsIU3hyuy0/edit?usp=drivesdk",
          "cachedResultName": "Example: Domain Analyzer Workflow"
        },
        "authentication": "serviceAccount"
      },
      "credentials": {
        "googleApi": {
          "id": "CEWCuoGMaP93jgCn",
          "name": "GCP Service account"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "67be72c9-3fb1-43a5-a720-5cdb42c87129",
      "name": "JSON1 parsen",
      "type": "n8n-nodes-base.code",
      "position": [
        -176,
        416
      ],
      "parameters": {
        "jsCode": "// Input: Stringified JSON with escaped characters like \\n, \\\", etc.\nconst inputString = $input.first().json.result.content[0].text\n\n// Parse the string into a real object\nconst parsedJson = JSON.parse(inputString);\n\nreturn [\n  {\n    json: parsedJson\n  }\n];"
      },
      "typeVersion": 2
    },
    {
      "id": "ee24bf73-35c9-4f29-b577-6f2901ddf70d",
      "name": "Domain-SEO-Daten zu Sheet hinzufügen",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        0,
        416
      ],
      "parameters": {
        "columns": {
          "value": {
            "Domain": "={{ $('Get Domains in sheet').item.json.Domain }}",
            "urlRating": "={{ $json.overview.urlRating }}",
            "domainRating": "={{ $json.overview.domainRating }}",
            "backlinksCount": "={{ $json.overview.backlinks }}",
            "referringDomains": "={{ $json.overview.refdomains }}",
            "dofollowBacklinksPercentage": "={{ $json.overview.dofollowBacklinks }}",
            "dofollowRefdomainsPercentage": "={{ $json.overview.dofollowRefdomains }}"
          },
          "schema": [
            {
              "id": "Domain",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Domain",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "trafficMonthlyAvg",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "trafficMonthlyAvg",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "costMontlyAvg",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "costMontlyAvg",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "traffic_history",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "traffic_history",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "top_pages",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "top_pages",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "top_keywords",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "top_keywords",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "top_countries",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "top_countries",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "domainRating",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "domainRating",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "urlRating",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "urlRating",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "backlinksCount",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "backlinksCount",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "referringDomains",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "referringDomains",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "dofollowBacklinksPercentage",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "dofollowBacklinksPercentage",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "dofollowRefdomainsPercentage",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "dofollowRefdomainsPercentage",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "row_number",
              "type": "number",
              "display": true,
              "removed": true,
              "readOnly": true,
              "required": false,
              "displayName": "row_number",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "Domain"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "update",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1hqDbgAfqxH7y79TO1Brt8lIXupGkQ7WSf1mnQiiw7Oo/edit#gid=0",
          "cachedResultName": "Domains"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1oBQqboIT9ubDmMIvvZveAneUHpuNV60egXsIU3hyuy0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1oBQqboIT9ubDmMIvvZveAneUHpuNV60egXsIU3hyuy0/edit?usp=drivesdk",
          "cachedResultName": "Example: Domain Analyzer Workflow"
        },
        "authentication": "serviceAccount"
      },
      "credentials": {
        "googleApi": {
          "id": "CEWCuoGMaP93jgCn",
          "name": "GCP Service account"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "53a605a3-dbca-43f9-9dca-ab3e3aa46fd0",
      "name": "Domains in Sheet abrufen",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -800,
        144
      ],
      "parameters": {
        "options": {},
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1oBQqboIT9ubDmMIvvZveAneUHpuNV60egXsIU3hyuy0/edit#gid=0",
          "cachedResultName": "Domains"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1oBQqboIT9ubDmMIvvZveAneUHpuNV60egXsIU3hyuy0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1oBQqboIT9ubDmMIvvZveAneUHpuNV60egXsIU3hyuy0/edit?usp=drivesdk",
          "cachedResultName": "Example: Domain Analyzer Workflow"
        },
        "authentication": "serviceAccount"
      },
      "credentials": {
        "googleApi": {
          "id": "CEWCuoGMaP93jgCn",
          "name": "GCP Service account"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "56dea17f-3c6d-4cd3-9aa8-87462ff28786",
      "name": "SEO-Statistiken abrufen",
      "type": "n8n-nodes-mcp.mcpClient",
      "position": [
        -352,
        416
      ],
      "parameters": {
        "toolName": "get_backlinks_list",
        "operation": "executeTool",
        "toolParameters": "={\n  \"domain\": \"{{ $json.Domain }}\"\n}"
      },
      "credentials": {
        "mcpClientApi": {
          "id": "IHt3R0V5d8rgP6MK",
          "name": "SEO-MCP Client (STDIO)"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "f160163e-c900-47d5-b60e-0bbe6029e28a",
      "name": "Verkehrsdaten abrufen",
      "type": "n8n-nodes-mcp.mcpClient",
      "position": [
        -336,
        -240
      ],
      "parameters": {
        "toolName": "get_traffic",
        "operation": "executeTool",
        "toolParameters": "={\n  \"domain_or_url\": \"{{ $json.Domain }}\"\n}"
      },
      "credentials": {
        "mcpClientApi": {
          "id": "IHt3R0V5d8rgP6MK",
          "name": "SEO-MCP Client (STDIO)"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "248f15ae-bbab-476c-9956-cafc2c0029e1",
      "name": "Haftnotiz6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -400,
        -400
      ],
      "parameters": {
        "color": 7,
        "width": 680,
        "height": 460,
        "content": "## 1. Get Domain Traffic information\n\nRetrieve traffic, top pages and keyword information from ahrefs.com for each domain"
      },
      "typeVersion": 1
    },
    {
      "id": "223ef12a-7cb6-4c66-8cf0-88d8554b86f5",
      "name": "Haftnotiz",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -400,
        288
      ],
      "parameters": {
        "color": 7,
        "width": 680,
        "height": 460,
        "content": "## 2. Get Domain SEO information\n\nRetrieve ranking and backlink information from ahrefs.com for each domain"
      },
      "typeVersion": 1
    },
    {
      "id": "1277a143-0010-4e82-8a0e-e34eacbe9424",
      "name": "Haftnotiz7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1584,
        -112
      ],
      "parameters": {
        "width": 460,
        "height": 752,
        "content": "## Domain Analyzer Workflow\n### This n8n template fetches SEO and traffic information from ahref for a list of domains in a Google Sheet. This is great for marketing research and SEO workflow optimizations and saves tons of time.\n\n### How it works\n* We'll import domains from the Google sheet\n* We use an SEO MCP server to fetch data from ahref free tooling\n* The fetched data is stored in the Google sheet\n\n### How to use\n* Make a copy of [this](https://docs.google.com/spreadsheets/d/1oBQqboIT9ubDmMIvvZveAneUHpuNV60egXsIU3hyuy0/edit?gid=456214435#gid=456214435) Google Sheet and add it in all Google Sheet nodes\n* Make sure that n8n has read & write permissions for your Google sheet. For my self-hosted n8n instance I was using a [Google Service Account](https://docs.n8n.io/integrations/builtin/credentials/google/service-account/)\n* Add your list of domains in the first column in the Domain sheet\n* Add MCP credentials for [seo-mcp](https://github.com/cnych/seo-mcp). Make sure you set the environments correctly:\n```json\n\"command\": \"uvx\",\n\"args\": [\"--python\", \"3.10\", \"seo-mcp\"],\n\"env\": {\n  \"CAPSOLVER_API_KEY\": \"CAP-xxxxxx\"\n}\n```\n* Execute workflow :)\n\n### Requirements\n* CapSolver account and API key ([register here](https://dashboard.capsolver.com/passport/register?inviteCode=p-4Y_DjQymvt)) to use [seo-mcp](https://github.com/cnych/seo-mcp)\n* Google Drive account"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "86b5106a-5d48-43f0-bf5b-b684b68d05a4",
  "connections": {
    "8e2c22fa-bd52-4ef2-b998-f88b073eab71": {
      "main": [
        [
          {
            "node": "5c3fa80f-a116-4d1c-8b3f-872dab147dba",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "f160163e-c900-47d5-b60e-0bbe6029e28a": {
      "main": [
        [
          {
            "node": "8e2c22fa-bd52-4ef2-b998-f88b073eab71",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "67be72c9-3fb1-43a5-a720-5cdb42c87129": {
      "main": [
        [
          {
            "node": "ee24bf73-35c9-4f29-b577-6f2901ddf70d",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "56dea17f-3c6d-4cd3-9aa8-87462ff28786": {
      "main": [
        [
          {
            "node": "67be72c9-3fb1-43a5-a720-5cdb42c87129",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "6297f8b6-b592-48e0-80ea-799e7ba02e95": {
      "main": [
        [],
        [
          {
            "node": "56dea17f-3c6d-4cd3-9aa8-87462ff28786",
            "type": "main",
            "index": 0
          },
          {
            "node": "f160163e-c900-47d5-b60e-0bbe6029e28a",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "53a605a3-dbca-43f9-9dca-ab3e3aa46fd0": {
      "main": [
        [
          {
            "node": "6297f8b6-b592-48e0-80ea-799e7ba02e95",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "5c3fa80f-a116-4d1c-8b3f-872dab147dba": {
      "main": [
        [
          {
            "node": "6297f8b6-b592-48e0-80ea-799e7ba02e95",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ee24bf73-35c9-4f29-b577-6f2901ddf70d": {
      "main": [
        [
          {
            "node": "6297f8b6-b592-48e0-80ea-799e7ba02e95",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "d4d19da7-a633-4090-8449-0d51556b6f36": {
      "main": [
        [
          {
            "node": "53a605a3-dbca-43f9-9dca-ab3e3aa46fd0",
            "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?

Fortgeschritten - Marktforschung

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.

Workflow-Informationen
Schwierigkeitsgrad
Fortgeschritten
Anzahl der Nodes12
Kategorie1
Node-Typen6
Schwierigkeitsbeschreibung

Für erfahrene Benutzer, mittelkomplexe Workflows mit 6-15 Nodes

Externe Links
Auf n8n.io ansehen

Diesen Workflow teilen

Kategorien

Kategorien: 34