{
  "name": "Smart google indexing: sitemap filter and url inspection",
  "nodes": [
    {
      "parameters": {
        "url": "={{ $('Configuration').item.json.sitemap_url }}",
        "options": {}
      },
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.3,
      "position": [
        448,
        0
      ],
      "id": "98a54b6b-b291-41a7-9606-f6caab843610",
      "name": "Read Sitemap"
    },
    {
      "parameters": {
        "options": {}
      },
      "type": "n8n-nodes-base.xml",
      "typeVersion": 1,
      "position": [
        672,
        0
      ],
      "id": "2de4a639-32e0-4574-8a1f-a1e0a9180582",
      "name": "Parse XML"
    },
    {
      "parameters": {
        "fieldToSplitOut": "urlset.url",
        "options": {}
      },
      "type": "n8n-nodes-base.splitOut",
      "typeVersion": 1,
      "position": [
        896,
        0
      ],
      "id": "229273f1-204b-42f1-89c5-83a3de0817aa",
      "name": "Split Out URLs"
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "c842ea3f-a4b1-43a5-b517-87573ef7f7eb",
              "name": "sitemap_url",
              "value": "https://example.com/sitemap.xml",
              "type": "string"
            },
            {
              "id": "fa030335-3323-47bc-ae4f-a5bdc06c0e53",
              "name": "modified_after",
              "value": "={{ $now.minus(1, 'week').toISO() }}",
              "type": "string"
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        224,
        0
      ],
      "id": "cccf0bfb-1aa8-4cb7-b79a-ec4e155ff526",
      "name": "Configuration"
    },
    {
      "parameters": {
        "method": "POST",
        "url": "https://searchconsole.googleapis.com/v1/urlInspection/index:inspect",
        "authentication": "predefinedCredentialType",
        "nodeCredentialType": "googleApi",
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "inspectionUrl",
              "value": "={{ $json.loc }}"
            },
            {
              "name": "siteUrl",
              "value": "=sc-domain:{{ $('Configuration').item.json.sitemap_url.extractDomain() }}"
            }
          ]
        },
        "options": {
          "batching": {
            "batch": {
              "batchSize": 1
            }
          }
        }
      },
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.3,
      "position": [
        1344,
        0
      ],
      "id": "54eeab98-1d4c-47d7-9364-48d9ca592943",
      "name": "Inspect URLs",
      "credentials": {
        "googleApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "method": "POST",
        "url": "https://indexing.googleapis.com/v3/urlNotifications:publish",
        "authentication": "predefinedCredentialType",
        "nodeCredentialType": "googleApi",
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "url",
              "value": "={{ $('Split Out URLs').item.json.loc }}"
            },
            {
              "name": "type",
              "value": "URL_UPDATED"
            }
          ]
        },
        "options": {
          "batching": {
            "batch": {
              "batchSize": 1
            }
          }
        }
      },
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.3,
      "position": [
        1792,
        0
      ],
      "id": "4c8b950b-4516-4258-8e4b-209c82bc4c14",
      "name": "Publish URLs",
      "credentials": {
        "googleApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "leftValue": "",
            "typeValidation": "strict",
            "version": 3
          },
          "conditions": [
            {
              "id": "17259208-b6ae-4299-89c1-a6d96a378bca",
              "leftValue": "={{ $json.inspectionResult.indexStatusResult.verdict }}",
              "rightValue": "NEUTRAL",
              "operator": {
                "type": "string",
                "operation": "equals"
              }
            }
          ],
          "combinator": "and"
        },
        "options": {}
      },
      "type": "n8n-nodes-base.filter",
      "typeVersion": 2.3,
      "position": [
        1568,
        0
      ],
      "id": "9448e217-6039-46e8-a95a-ada17d381372",
      "name": "Filter NEUTRAL Verdict"
    },
    {
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "leftValue": "",
            "typeValidation": "strict",
            "version": 3
          },
          "conditions": [
            {
              "id": "dffb9dd9-e69c-4302-872d-a257d649dda4",
              "leftValue": "={{ $json.lastmod }}",
              "rightValue": "={{ $('Configuration').item.json.modified_after }}",
              "operator": {
                "type": "dateTime",
                "operation": "after"
              }
            }
          ],
          "combinator": "and"
        },
        "options": {}
      },
      "type": "n8n-nodes-base.filter",
      "typeVersion": 2.3,
      "position": [
        1120,
        0
      ],
      "id": "a85f086f-ceb5-49fe-a197-c1c46382cea4",
      "name": "Filter Last Modified Pages"
    },
    {
      "parameters": {
        "rule": {
          "interval": [
            {}
          ]
        }
      },
      "type": "n8n-nodes-base.scheduleTrigger",
      "typeVersion": 1.3,
      "position": [
        0,
        0
      ],
      "id": "f6db303c-52dc-4bbd-9660-a024ba174944",
      "name": "Trigger Daily"
    },
    {
      "parameters": {
        "content": "### 0. Setup & Prerequisites\nThis workflow selectively indexes pages by filtering for recent updates and checking live status.\n\n**Preparation:**\n1. Enable Search Console & Indexing APIs in Google Cloud.\n2. Add Service Account JSON to n8n credentials.\n3. Verify Service Account email as 'Owner' in GSC.\n4. Set your sitemap URL in the 'Configuration' node.",
        "height": 416,
        "width": 432
      },
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -48,
        -256
      ],
      "typeVersion": 1,
      "id": "da99b4d2-0fac-473c-a426-015ac2b21b5e",
      "name": "Sticky Note"
    },
    {
      "parameters": {
        "content": "### 1. Sitemap Processing\nFetches the XML sitemap, parses it to JSON, and splits it into individual URL objects for item-by-item processing.",
        "height": 416,
        "width": 672,
        "color": 2
      },
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        384,
        -256
      ],
      "typeVersion": 1,
      "id": "47bfebf4-cc07-4c3b-a3de-c2312f2ce274",
      "name": "Sticky Note1"
    },
    {
      "parameters": {
        "content": "### 2. Efficiency Logic\n**Step A:** Filters for pages modified in the last 7 days.\n**Step B:** Inspects current status via GSC API. Only 'NEUTRAL' (not yet indexed or pending) pages proceed to save API quota.",
        "height": 416,
        "width": 672,
        "color": 3
      },
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1056,
        -256
      ],
      "typeVersion": 1,
      "id": "9bc87619-c5b1-4e49-a572-cf5f5ddea4da",
      "name": "Sticky Note2"
    },
    {
      "parameters": {
        "content": "### 3. Google Indexing API\nSends the final list of filtered URLs to Google for priority crawling. \n*Note: This signals Google to crawl, but doesn't guarantee instant indexing.*",
        "height": 416,
        "color": 4
      },
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1728,
        -256
      ],
      "typeVersion": 1,
      "id": "e3f7ef4e-9271-49c2-a5a7-d29c63fe119c",
      "name": "Sticky Note3"
    }
  ],
  "connections": {
    "Read Sitemap": {
      "main": [
        [
          {
            "node": "Parse XML",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Parse XML": {
      "main": [
        [
          {
            "node": "Split Out URLs",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Configuration": {
      "main": [
        [
          {
            "node": "Read Sitemap",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split Out URLs": {
      "main": [
        [
          {
            "node": "Filter Last Modified Pages",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Inspect URLs": {
      "main": [
        [
          {
            "node": "Filter NEUTRAL Verdict",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Filter NEUTRAL Verdict": {
      "main": [
        [
          {
            "node": "Publish URLs",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Filter Last Modified Pages": {
      "main": [
        [
          {
            "node": "Inspect URLs",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Trigger Daily": {
      "main": [
        [
          {
            "node": "Configuration",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "active": false,
  "settings": {
    "executionOrder": "v1",
    "binaryMode": "separate",
    "availableInMCP": false
  },
  "versionId": "89001494-5318-46f5-a1b0-e41eddbf5aa8",
  "id": "WS6NJkfgRr7MZHZA",
  "tags": []
}