AutomationFlowsWeb Scraping › IndexNow Sitemap Submission to Bing & Yandex

IndexNow Sitemap Submission to Bing & Yandex

Original n8n title: Index Your Website Using Indexnow and Your XML Sitemap

ByViktor Klepikovskyi @vklepikovskyi on n8n.io

Stop waiting for search engines to discover your content updates. This workflow automates the process of notifying search engines (Bing, Yandex, etc.) about new or updated pages using the IndexNow protocol.

Cron / scheduled trigger★★★★☆ complexity12 nodesHTTP RequestXML
Web Scraping Trigger: Cron / scheduled Nodes: 12 Complexity: ★★★★☆ Added:

This workflow corresponds to n8n.io template #13775 — we link there as the canonical source.

This workflow follows the HTTP Request → XML 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
{
  "id": "Sw8xHiqCCaMYwY5c1ejxb",
  "name": "Index your website using IndexNow and XML sitemap",
  "tags": [],
  "nodes": [
    {
      "id": "ebf4d0c8-33fb-408e-95bd-f9515094fb53",
      "name": "Read Sitemap",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        448,
        0
      ],
      "parameters": {
        "url": "={{ $('Configuration').item.json.sitemap_url }}",
        "options": {}
      },
      "typeVersion": 4.3
    },
    {
      "id": "5116fe05-5619-4cfd-9b2c-50dbd539aab2",
      "name": "Parse XML",
      "type": "n8n-nodes-base.xml",
      "position": [
        672,
        0
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 1
    },
    {
      "id": "5945d668-0608-4e87-b85d-3323f094b296",
      "name": "Split Out URLs",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        896,
        0
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "urlset.url"
      },
      "typeVersion": 1
    },
    {
      "id": "6917f50d-8471-4240-af25-c7ddfbc092ad",
      "name": "Filter Last Modified Pages",
      "type": "n8n-nodes-base.filter",
      "position": [
        1120,
        0
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 3,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "dffb9dd9-e69c-4302-872d-a257d649dda4",
              "operator": {
                "type": "dateTime",
                "operation": "after"
              },
              "leftValue": "={{ $json.lastmod }}",
              "rightValue": "={{ $('Configuration').item.json.modified_after }}"
            }
          ]
        }
      },
      "typeVersion": 2.3
    },
    {
      "id": "093a6adb-d208-4cf9-b255-595c8a4f9e2f",
      "name": "Aggregate URLs",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        1344,
        0
      ],
      "parameters": {
        "options": {},
        "fieldsToAggregate": {
          "fieldToAggregate": [
            {
              "renameField": true,
              "outputFieldName": "urlList",
              "fieldToAggregate": "loc"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "1c45c4f1-dcbc-42ab-9425-a68cb6207b92",
      "name": "Send URLs to IndexNow",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1568,
        0
      ],
      "parameters": {
        "url": "https://api.indexnow.org/indexnow",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "host",
              "value": "={{ $('Configuration').item.json.sitemap_url.extractDomain() }}"
            },
            {
              "name": "key",
              "value": "={{ $('Configuration').item.json.indexnow_key }}"
            },
            {
              "name": "keyLocation",
              "value": "=https://{{ $('Configuration').item.json.sitemap_url.extractDomain() }}/{{ $('Configuration').item.json.indexnow_key }}.txt"
            },
            {
              "name": "urlList",
              "value": "={{ $json.urlList }}"
            }
          ]
        }
      },
      "typeVersion": 4.3
    },
    {
      "id": "0f3a430b-fd33-42e2-b963-5eda88c55fd0",
      "name": "Configuration",
      "type": "n8n-nodes-base.set",
      "position": [
        224,
        0
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "c842ea3f-a4b1-43a5-b517-87573ef7f7eb",
              "name": "sitemap_url",
              "type": "string",
              "value": "https://example.com/sitemap.xml"
            },
            {
              "id": "fa030335-3323-47bc-ae4f-a5bdc06c0e53",
              "name": "modified_after",
              "type": "string",
              "value": "={{ $now.minus(1, 'week').toISO() }}"
            },
            {
              "id": "55ff9efe-e537-4bc9-bdd2-764495fbeb01",
              "name": "indexnow_key",
              "type": "string",
              "value": "4262631fe57245bd9bd1cef01d1c3fa4"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "e415a830-b8ec-4dd1-8e96-1ce54205862d",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -224,
        -640
      ],
      "parameters": {
        "width": 608,
        "height": 800,
        "content": "## Index your website using IndexNow and XML sitemap\n\nStop waiting for search engines to discover your content updates. This workflow automates the process of notifying search engines (Bing, Yandex, etc.) about new or updated pages using the IndexNow protocol.\n\nBy parsing your XML sitemap and filtering for pages modified within a specific timeframe (e.g., the last week), it ensures your crawl budget is used efficiently and your latest content appears in search results almost instantly.\n\n### Setup steps:\n\n1. **Host your Key:** Generate an IndexNow key and upload the `.txt` file to your website's root directory.\n2. **Setup Configuration Node:**\n   * Enter your `sitemap_url` (e.g., https://yoursite.com/sitemap.xml).\n   * Enter your `indexnow_key`.\n   * Set the `modified_after` variable to define your lookback window (e.g., -7d or a specific ISO date).\n3. **Schedule:** Adjust the Schedule Trigger to your preferred frequency (default is daily).\n4. **Activate:** Once configured, turn the workflow on to start proactive indexing.\n\n\nFor a deep dive into how this workflow works and why it's a game-changer for your SEO strategy, check out our full guide on n8nplaybook.com.\n[Read the full Playbook Article here](https://n8nplaybook.com/post/2026/02/automate-indexnow-seo-n8n-workflow/)"
      },
      "typeVersion": 1
    },
    {
      "id": "9b6fb884-d2f3-4664-922a-aabbd6222b3f",
      "name": "Run Daily Indexing",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        0,
        0
      ],
      "parameters": {
        "rule": {
          "interval": [
            {}
          ]
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "7d8532ce-8c6a-4b3e-83a5-d174cb43efb3",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        384,
        -112
      ],
      "parameters": {
        "color": 5,
        "width": 672,
        "height": 272,
        "content": "## Get URLs from website\nRead sitemap.xml, parse it and split out URLs from it"
      },
      "typeVersion": 1
    },
    {
      "id": "b386ea7e-d814-4760-9234-f6e558d5b558",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1056,
        -112
      ],
      "parameters": {
        "color": 4,
        "width": 448,
        "height": 272,
        "content": "## Prepare URLs from submission\nFilter last modified URLs and convert them into array"
      },
      "typeVersion": 1
    },
    {
      "id": "86baa662-9ba8-42cf-bf4e-174a40289794",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1504,
        -112
      ],
      "parameters": {
        "color": 2,
        "height": 272,
        "content": "## Submit"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "availableInMCP": false,
    "executionOrder": "v1"
  },
  "versionId": "9110280b-dcb7-488b-9f85-912a5dcd7035",
  "connections": {
    "Parse XML": {
      "main": [
        [
          {
            "node": "Split Out URLs",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Read Sitemap": {
      "main": [
        [
          {
            "node": "Parse XML",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Configuration": {
      "main": [
        [
          {
            "node": "Read Sitemap",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Aggregate URLs": {
      "main": [
        [
          {
            "node": "Send URLs to IndexNow",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split Out URLs": {
      "main": [
        [
          {
            "node": "Filter Last Modified Pages",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Run Daily Indexing": {
      "main": [
        [
          {
            "node": "Configuration",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Filter Last Modified Pages": {
      "main": [
        [
          {
            "node": "Aggregate URLs",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Pro

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

About this workflow

Stop waiting for search engines to discover your content updates. This workflow automates the process of notifying search engines (Bing, Yandex, etc.) about new or updated pages using the IndexNow protocol.

Source: https://n8n.io/workflows/13775/ — original creator credit. Request a take-down →

More Web Scraping workflows → · Browse all categories →

Related workflows

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

Web Scraping

This workflow is an improvement of this workflow by Greg Brzezinka.

HTTP Request, Email Send, XML +1
Web Scraping

This workflow automates the full cycle of fetching, processing, and storing Telr payment gateway reports — and then notifying your team by email. It runs on a schedule, calls the Telr API twice (once

Compression, Email Send, HTTP Request +2
Web Scraping

Automatically send beautifully formatted news digests from any RSS feed (e.g., Prothom Alo) directly to your Gmail inbox on a schedule using this n8n workflow. Ideal for news curators, bloggers, media

Gmail, XML, HTTP Request
Web Scraping

As n8n instances scale, teams often lose track of sub-workflows—who uses them, where they are referenced, and whether they can be safely updated. This leads to inefficiencies like unnecessary copies o

HTTP Request, n8n, N8N Trigger +1
Web Scraping

N8N-Workflow-Github-Manager. Uses github, httpRequest, n8n. Scheduled trigger; 38 nodes.

GitHub, HTTP Request, n8n