Skip to main content

Submit sitemap URLs from Oncrawl to Google Indexing API and IndexNow

Workflow preview

Workflow preview
100%
Submit sitemap URLs from Oncrawl to Google Indexing API and IndexNow preview
Open on n8n.io

Important notice

This workflow is provided as-is. Please review and test before using in production.

1. Workflow Overview

Summary This workflow enables the submission of business critical URLs via the Google Indexing API and IndexNow. Why is this important for SEO? If your objective is visibility within AI powered sea...

Best for

  • Market Research automation workflows
  • advanced n8n builders looking for reusable templates

Tools used

n8n-nodes-base.splitinbatches, n8n-nodes-base.wait, n8n-nodes-base.stickynote, n8n-nodes-base.httprequest, n8n-nodes-base.webhook, n8n-nodes-base.set, n8n-nodes-base.code, n8n-nodes-base.splitout

Source and attribution

This workflow is cataloged by N8N Workflows and links back to its original n8n.io source page by Philippe.

Original n8n.io source

1.1 Workflow description

Title
Submit sitemap URLs from Oncrawl to Google Indexing API and IndexNow
Workflow name
Submit sitemap URLs from Oncrawl to Google Indexing API and IndexNow

Summary

This workflow enables the submission of business-critical URLs via the Google Indexing API and IndexNow.

Why is this important for SEO?

  • If your objective is visibility within AI-powered search and answer engines (such as Copilot, Perplexity, or OpenAI tools), the IndexNow integration is particularly relevant. IndexNow accelerates URL discovery for Bing and Yandex, which are key retrieval sources for several LLM-based platforms.
  • In parallel, Google remains the dominant search engine, representing ~80% of global search traffic. Gemini is deeply integrated into Google’s ecosystem and, when grounding is enabled, can leverage Google Search as an external retrieval source. Ensuring fast and reliable indexation of critical URLs therefore remains a strategic foundation for both traditional SEO and AI-assisted search experiences.

Description

This workflow uses OnCrawl API endpoint to automatically discover your sitemaps.xml and submit their latest updates to both Google Indexing API and IndexNOW.

It includes two variations:

  • Index orphan pages detected in sitemap.xml and submit them to Google and IndexNow.
  • Index newly released pages by identifying indexable canonical URLs added between a pre-release crawl and a post-release crawl.

How it works

This workflow works for Oncrawl users with API access enabled in their plan.

if you are not an Oncrawl users, please refer to: https://n8n.io/workflows/8778-workflow-for-submitting-changed-sitemap-urls-using-google-indexing-api-and-bing-indexnow/

To get an API Key, just go in your User Account profile > tokens > + Add API access token:

  • Description: any name
  • Scope: select all checkboxes
  • Click in Create token. Keep your API secret safe

Discover & parse Sitemaps

  • Create your first crawl by: Clicking in Create configuration > choose a template > Automate > Webhook.

  • Webhook Node: In n8n, copy paste the Webhook callback URL into the Oncrawl Webhook section. At the end, Oncrawl sends a POST HTTP request to n8n containing: Workspace_ID, Project_ID, Crawl_ID. More details in Webhook Documentation: https://developer.oncrawl.com/#notification

  • Discover_sitemaps endpoint: documentation: https://developer.oncrawl.com/. This endpoint checks the Sitemaps declared in your robots.txt file. You can filter the output to avoid duplicate sitemaps

  • Config: It’s an initiation node that populate variables such as:

    Variables you can update depending on your specs:

    • DAYS_BACK: 7 by default.
    • BATCH_SIZE: 500 it's the default recommended by IndexNow
    • USE_GOOGLE, USE_INDEXNOW: by default it's true which means the process will run for both Google and IndexNow

Google Node

Check Status Node (OAuth Setup):

Google Index API:

  • Create a service account here https://console.cloud.google.com/iam-admin/serviceaccounts
    • Assign role: Owner
  • Generate a JSON key (contains email + private key)
  • For the two Google API nodes:
    • Authentication: Predefined credential type
    • Credential Type: Google Service Account API
  • Credential configuration:
  • Others Nodes
    • Gate: Google Is USE_GOOGLE = true from Cofig?
    • Check status: Useful to get the coverageState and lastCrawlTime of a given URL given by Google Search Console
    • Loop Over Items: Prevents rate-limiting
    • Switch:
      • Case: coverageState= “Submitted and indexed” -> Push to "isNew" node
      • Case: coverageState= “Crawled - currently not indexed” -> Push to "URL Updated" node
    • Is New: URLs from Sitemap with Last modification date AFTER the GoogleLast Crawl date
      • If true, we submit URLs to Index API
      • If false, no need to push that URL for indexation
    • URL Updates
    • Wait: Generates a random delay between 0.30 and 1.50 seconds, rounded to 2 decimals

⚠️ Google alternative to batch index URLs consists in using Premium Service to by pass the URL inspection tool: https://fr.speedyindex.com/

IndexNow auto-submitting

  • documentation: https://www.bing.com/indexnow/getstarted
  • Gate: IndexNow: Is USE_INDEXNOW is true from Config?
  • Split in Batches: split in batch of 500 URLs max to avoid rate Limiting issues
  • Build IndexNow payload: description in the node name
  • IndexNow Submit: Submit the URLs to indexNow

VariationA: Index orphan pages

  • API documentation: https://developer.oncrawl.com/#Data-API
  • OQL definition: Get orphan pages for both sitemaps & logs
  • Merge node: Merge Items that InnerJoin loc, url fields. This is useful to recover the lastmod from Orphan pages referenced into Sitemaps. This data can be shared into Google Node afterward. Input1 should be: "Assign mandatory sitemap fields" Node

Next nodes

  • change "Set Node" name in the script variables

VariationB: Index newly added pages between a Crawl 1 & a Crawl2

  • API documentation: https://developer.oncrawl.com/#Data-API
  • OQL definition: Returns indexable canonical pages added in Crawl 2
  • Merge node: Merge Items that match between loc, url fields. This is useful to recover the lastmod data for Google Node Input1 should be: "Assign mandatory sitemap fields" Node

Next nodes

  • change "Set Node" name in the script variables

1.2 Logical Blocks

This catalog entry is organized from the workflow JSON. The node-level section below shows the executable blocks available for review before importing the template.

2. Block-by-Block Analysis

Block 1 - Split In Batches (IndexNow ≤500)1

Type / Role
n8n-nodes-base.splitInBatches - splitInBatches
Config choices
Version 3

Block 2 - Wait (IndexNow jitter)1

Type / Role
n8n-nodes-base.wait - wait
Config choices
Version 1

Block 3 - Sticky Note8

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 4 - Get Orphan Pages

Type / Role
n8n-nodes-base.httpRequest - httpRequest
Config choices
Version 4.3

Block 5 - Sticky Note10

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 6 - Webhook

Type / Role
n8n-nodes-base.webhook - webhook
Config choices
Version 2.1

Block 7 - Post - Get Sitemaps

Type / Role
n8n-nodes-base.httpRequest - httpRequest
Config choices
Version 4.3

Block 8 - Config

Type / Role
n8n-nodes-base.set - set
Config choices
Version 3.3

Block 9 - Sticky Note

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 10 - Sticky Note7

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 11 - Assign mandatory sitemap fields

Type / Role
n8n-nodes-base.set - set
Config choices
Version 3.3

Block 12 - Filter: lastmod within DAYS_BACK

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 13 - Split Out

Type / Role
n8n-nodes-base.splitOut - splitOut
Config choices
Version 1

Block 14 - Get sitemap.xml

Type / Role
n8n-nodes-base.httpRequest - httpRequest
Config choices
Version 4.1

Block 15 - Convert sitemap to JSON

Type / Role
n8n-nodes-base.xml - xml
Config choices
Version 1

Block 16 - Get content-specific sitemaps

Type / Role
n8n-nodes-base.splitOut - splitOut
Config choices
Version 1

Block 17 - Get content of each sitemap

Type / Role
n8n-nodes-base.httpRequest - httpRequest
Config choices
Version 4.1

Block 18 - convert page data to JSON

Type / Role
n8n-nodes-base.xml - xml
Config choices
Version 1

Block 19 - Force urlset.url to array

Type / Role
n8n-nodes-base.set - set
Config choices
Version 3.3

Block 20 - Sort

Type / Role
n8n-nodes-base.sort - sort
Config choices
Version 1

Block 21 - Sticky Note9

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 22 - Sticky Note1

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 23 - Build IndexNow payload

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 24 - IndexNow Submit

Type / Role
n8n-nodes-base.httpRequest - httpRequest
Config choices
Version 4.1

Showing the first 24 of 43 workflow blocks. Download the JSON for the full node graph.

3. Summary Table

Workflow Submit sitemap URLs from Oncrawl to Google Indexing API and IndexNow
Complexity advanced
Nodes 43
Categories Market Research
Author Philippe
Published 19 Dec 2025

4. Reproducing the Workflow from Scratch

  1. 1. Download the workflow JSON

    Use the JSON export at /data/workflows/11948/11948.json as the source template for this automation.

  2. 2. Import the template into n8n

    Open n8n, import the downloaded JSON, and review each node before activating the workflow.

  3. 3. Configure credentials and variables

    Replace placeholder credentials, API keys, webhook URLs, account IDs, and environment-specific values with your own settings.

  4. 4. Test with sample data

    Run the workflow manually or in a staging workspace, inspect node output, and confirm downstream systems receive the expected data.

  5. 5. Activate and monitor

    Enable the workflow only after testing, then monitor executions, errors, and rate limits during the first production runs.

5. General Notes & Resources

Review imported nodes carefully before activation. This catalog entry is intended to help you inspect the workflow structure, understand required services, and find related templates faster.

Node names, credentials, schedules, webhook paths, and external service limits may need adjustment for your workspace.

Frequently asked questions

What does Submit sitemap URLs from Oncrawl to Google Indexing API and IndexNow do?

Summary This workflow enables the submission of business critical URLs via the Google Indexing API and IndexNow. Why is this important for SEO? If your objective is visibility within AI powered sea...

What do I need before importing this workflow?

Review the workflow JSON, configure any required credentials in n8n, and test the automation in a safe workspace before using it in production.

Can I customize this workflow?

Yes. Use the block-by-block analysis and the downloadable JSON to inspect each node, then adjust credentials, prompts, schedules, filters, or destinations for your Market Research use case.