AutomationFlowsAI & RAG › SEO

SEO

seo. Uses formTrigger, httpRequest, agent, lmChatGoogleGemini. Event-driven trigger; 12 nodes.

Event trigger★★★★☆ complexityAI-powered12 nodesForm TriggerHTTP RequestAgentGoogle Gemini ChatSlack
AI & RAG Trigger: Event Nodes: 12 Complexity: ★★★★☆ AI nodes: yes Added:

This workflow follows the Agent → Form Trigger recipe pattern — see all workflows that pair these two integrations.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "createdAt": "2025-04-15T05:03:47.422Z",
  "updatedAt": "2025-08-27T08:08:53.000Z",
  "id": "vFZ6gbosb99GN8yq",
  "name": "seo",
  "active": false,
  "isArchived": true,
  "nodes": [
    {
      "parameters": {
        "formTitle": "Conversion Rate Optimizer",
        "formDescription": "Your Landing Page is Leaking Sales\u2014Fix It Now",
        "formFields": {
          "values": [
            {
              "fieldLabel": "Landing Page Url",
              "placeholder": "https://clousor.com/",
              "requiredField": true
            }
          ]
        },
        "options": {}
      },
      "id": "e532d065-54ac-4337-b21e-bdeb3ae4203a",
      "name": "Landing Page Url",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        1000,
        1240
      ],
      "typeVersion": 2.2
    },
    {
      "parameters": {
        "url": "=https://www.clousor.com/",
        "options": {}
      },
      "id": "b2b4e096-2c42-455b-8d29-d016e27a5b1e",
      "name": "Scrape Website",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1200,
        1240
      ],
      "typeVersion": 4.2
    },
    {
      "parameters": {
        "promptType": "define",
        "text": "=You are the best SEO Manager in the country\u2014a world-class expert in optimizing websites to rank on Google.\n\nIn this task, you will analyze the content of the webpage and perform a detailed and structured SEO Content Audit.\n\nAudit Structure\nYou will divide your audit in 2 parts:\n- The first part is the Analysis\n- The second is the Recommendations\n\nIn the Analysis, you will include:\n- Content Quality Assessment \u2013 Evaluate the content's overall quality, accuracy, and relevance to the target audience.\n- Keyword Research and Analysis \u2013 Identify primary and secondary keywords, keyword density, and keyword placement strategies.\n- Readability Analysis \u2013 Assess the content's readability score using metrics such as Flesch-Kincaid Grade Level, Flesch Reading Ease, and Gunning-Fog Index.\n\nIn the Recommendations, you will present your recommendations and actionable suggestions in clear, organized bullet points. Recommendations must improve the rankings in Google but also the user engagement. \n\nEnsure the output is properly formatted, clean, and highly readable. Do not include any introductory or explanatory text\u2014only the audit findings.\n\nHere is the content of my landing page: {{ $json.data }}",
        "options": {}
      },
      "id": "fb608b54-57ca-48ef-8dad-5f6f3cedd9f4",
      "name": "Content Audit",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        1560,
        1440
      ],
      "typeVersion": 1.7
    },
    {
      "parameters": {
        "promptType": "define",
        "text": "=You are the best SEO Manager in the country\u2014a world-class expert in optimizing websites to rank on Google.\nIn this task, you will analyze the HTML code of a webpage and perform a detailed and structured On-Page Technical SEO Audit.\n\nAudit Structure\nYou will review all technical SEO aspects of the page. Once completed, you will present your findings and recommendations in clear, organized bullet points, categorized into three sections:\n- Critical Issues \u2013 Must be fixed immediately.\n- Quick Wins \u2013 Easy fixes with a big impact.\n- Opportunities for Improvement \u2013 Require more effort but offer potential benefits.\n\nEnsure the output is properly formatted, clean, and highly readable. Do not include any introductory or explanatory text\u2014only the audit findings.\n\nHere is the content of my landing page: {{ $json.data }}",
        "options": {}
      },
      "id": "730a74c2-c85a-4a06-9af9-e0eeeaecba35",
      "name": "Technical Audit",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        1560,
        1040
      ],
      "typeVersion": 1.7
    },
    {
      "parameters": {},
      "id": "9c18f60e-110c-4262-a302-1bb292c903fd",
      "name": "Merge",
      "type": "n8n-nodes-base.merge",
      "position": [
        2060,
        1240
      ],
      "typeVersion": 3,
      "alwaysOutputData": true
    },
    {
      "parameters": {
        "fieldsToAggregate": {
          "fieldToAggregate": [
            {
              "fieldToAggregate": "output"
            }
          ]
        },
        "options": {}
      },
      "id": "fa6af581-9d82-4eff-bb68-2089ff35a077",
      "name": "Aggregate",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        2260,
        1240
      ],
      "typeVersion": 1
    },
    {
      "parameters": {
        "mode": "markdownToHtml",
        "markdown": "=# On-Page Technical Audit\n{{ $json.output[0] }}\n\n# On-Page SEO Content Audit\n{{ $json.output[1] }}",
        "options": {}
      },
      "id": "e8a03803-9b72-433c-ab82-66377faebdbe",
      "name": "Markdown",
      "type": "n8n-nodes-base.markdown",
      "position": [
        2460,
        1240
      ],
      "typeVersion": 1
    },
    {
      "parameters": {
        "content": "## Send Email \nConnect your credentials & Easily send emails from a Gmail address. ",
        "height": 100,
        "width": 360,
        "color": 3
      },
      "id": "0763550c-9bf2-42ca-b739-e9dcee2365e4",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2540,
        1080
      ],
      "typeVersion": 1
    },
    {
      "parameters": {
        "content": "## Open AI Setup\n- Add your credentials\n- Select o1 model for (way) better results. \n- One run = one page audit = around $0.3 with o1",
        "height": 140,
        "width": 420,
        "color": 3
      },
      "id": "5b4e1fbc-e30c-46da-a29e-2db25e5adf81",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1500,
        860
      ],
      "typeVersion": 1
    },
    {
      "parameters": {
        "modelName": "models/gemini-1.5-pro",
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "typeVersion": 1,
      "position": [
        1540,
        1260
      ],
      "id": "35807b21-6486-4638-b2c8-b4de4c214119",
      "name": "Google Gemini Chat Model",
      "credentials": {
        "googlePalmApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "modelName": "models/gemini-1.5-pro",
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "typeVersion": 1,
      "position": [
        1600,
        1660
      ],
      "id": "c6f8bf66-b62f-493e-b47a-e1b2f602087d",
      "name": "Google Gemini Chat Model1",
      "credentials": {
        "googlePalmApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "select": "channel",
        "channelId": {
          "__rl": true,
          "value": "C08M07QTQ77",
          "mode": "list",
          "cachedResultName": "test"
        },
        "text": "={{ $json.output }}",
        "otherOptions": {}
      },
      "type": "n8n-nodes-base.slack",
      "typeVersion": 2.3,
      "position": [
        2680,
        1240
      ],
      "id": "e68e3928-a7ca-47b0-b7ba-13e229ed4de7",
      "name": "Slack",
      "credentials": {
        "slackApi": {
          "name": "<your credential>"
        }
      }
    }
  ],
  "connections": {
    "Merge": {
      "main": [
        [
          {
            "node": "Aggregate",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Markdown": {
      "main": [
        [
          {
            "node": "Slack",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Aggregate": {
      "main": [
        [
          {
            "node": "Markdown",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Content Audit": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Scrape Website": {
      "main": [
        [
          {
            "node": "Content Audit",
            "type": "main",
            "index": 0
          },
          {
            "node": "Technical Audit",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Technical Audit": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Landing Page Url": {
      "main": [
        [
          {
            "node": "Scrape Website",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Gemini Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Technical Audit",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Google Gemini Chat Model1": {
      "ai_languageModel": [
        [
          {
            "node": "Content Audit",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    }
  },
  "settings": {
    "executionOrder": "v1"
  },
  "staticData": null,
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "versionId": "f1a7976a-51dd-4f3b-8d5b-1adb4fa366c7",
  "triggerCount": 0,
  "shared": [
    {
      "createdAt": "2025-04-15T05:03:47.430Z",
      "updatedAt": "2025-04-15T05:03:47.430Z",
      "role": "workflow:owner",
      "workflowId": "vFZ6gbosb99GN8yq",
      "projectId": "ZX30KUrzrE1L7qmM"
    }
  ],
  "tags": []
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

seo. Uses formTrigger, httpRequest, agent, lmChatGoogleGemini. Event-driven trigger; 12 nodes.

Source: https://github.com/dhimankamal/n8n/blob/426b44630cdd24b54d337cafedd2e4eed9263ecd/workflows/seo.json — original creator credit. Request a take-down →

More AI & RAG workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

AI & RAG

This workflow analyzes any npm package and delivers a data-driven recommendation using Firecrawl + APIs + AI reasoning.

Google Gemini Chat, @Mendable/N8N Nodes Firecrawl, OpenAI Chat +6
AI & RAG

How it works: This end-to-end workflow automates your personal or brand content strategy by: 🧠 Using Google Gemini or OpenAI to generate engaging LinkedIn/X content from a title or trending posts. 🗓️

Google Gemini Chat, Form Trigger, Agent +8
AI & RAG

Content - Newsletter Agent. Uses formTrigger, chainLlm, outputParserStructured, httpRequest. Event-driven trigger; 91 nodes.

Form Trigger, Chain Llm, Output Parser Structured +8
AI & RAG

Content - Newsletter Agent. Uses formTrigger, chainLlm, outputParserStructured, httpRequest. Event-driven trigger; 87 nodes.

Form Trigger, Chain Llm, Output Parser Structured +7
AI & RAG

How it Works

Memory Buffer Window, Agent, Output Parser Structured +9