Automatisation de l'indexation Google pour les sites web

Ce workflow n8n est conçu pour automatiser le processus d'indexation des URLs de votre site web sur Google. En extrayant les URLs depuis vos fichiers sitemap, il vérifie leur statut d'indexation et soumet les mises à jour nécessaires. Ce processus assure que vos contenus sont toujours à jour dans l'index de Google, augmentant ainsi la visibilité et le référencement de votre site. Cela permet de gagner un temps précieux en évitant la mise à jour manuelle et en garantissant une couverture maximale par les moteurs de recherche.

9,624 vues
3,640 copies
Automatisation

Documentation Complète

📋 Automatisation de l'indexation Google pour les sites web

💡 Description

Ce workflow n8n est conçu pour automatiser le processus d'indexation des URLs de votre site web sur Google. En extrayant les URLs depuis vos fichiers sitemap, il vérifie leur statut d'indexation et soumet les mises à jour nécessaires. Ce processus assure que vos contenus sont toujours à jour dans l'index de Google, augmentant ainsi la visibilité et le référencement de votre site. Cela permet de gagner un temps précieux en évitant la mise à jour manuelle et en garantissant une couverture maximale par les moteurs de recherche.

📈 Impact & ROI: Amélioration significative du SEO avec une réduction du temps passé sur la gestion manuelle des indexations.

🚀 Fonctionnalités Clés

  • ✅ Automatisation complète du processus d'indexation Google
  • ✅ Vérification proactive de l'état des URLs
  • ✅ Soumission automatique des mises à jour de contenu
  • ✅ Adaptable aux différents CMS

📊 Architecture Technique

21
Nodes
16
Connexions
3
Services

🔌 Services Intégrés

Google OAuth2 APIHTTP RequestXML Parsing

🔧 Composition du Workflow

NodeTypeDescription
When clicking "Test workflow"manualTriggerTraitement des données
Split OutsplitOutDivision des données en plusieurs branches
Check statushttpRequestRequête HTTP vers une API externe
Loop Over ItemssplitInBatchesDivision des données en plusieurs branches
WaitwaitTraitement des données
URL UpdatedhttpRequestRequête HTTP vers une API externe
Schedule TriggerscheduleTriggerTraitement des données
Sticky Note1stickyNoteTraitement des données
is new?ifCondition logique pour router le flux
Sticky Note2stickyNoteTraitement des données
Sticky Note3stickyNoteTraitement des données
Sticky NotestickyNoteTraitement des données
Get content-specific sitemapssplitOutDivision des données en plusieurs branches
Convert sitemap to JSONxmlTraitement des données
Force urlset.url to arraysetTraitement des données
Sticky Note4stickyNoteTraitement des données
Assign mandatiry sitemap fieldssetTraitement des données
convert page data to JSONxmlTraitement des données
Get sitemap.xmlhttpRequestRequête HTTP vers une API externe
Get content of each sitemaphttpRequestRequête HTTP vers une API externe
SortsortTraitement des données

📖 Guide d'Implémentation

  1. Import du workflow: Téléchargez le fichier JSON et importez-le dans votre instance n8n
  2. Configuration des credentials: Configurez les accès pour chaque service utilisé
  3. Personnalisation: Adaptez les paramètres selon vos besoins spécifiques
  4. Test: Exécutez le workflow en mode test pour vérifier le bon fonctionnement
  5. Activation: Activez le workflow pour une exécution automatique

🏷️ Tags

indexationGooglesitemapSEO

Structure JSON

Voir le code JSON complet
{
    "id": "7i2RqqCYaKHUt4n3",
    "meta": {
        "instanceId": "fb924c73af8f703905bc09c9ee8076f48c17b596ed05b18c0ff86915ef8a7c4a"
    },
    "name": "Google Site Index - sitemap.xml example",
    "tags": [],
    "nodes": [
        {
            "id": "4da50fbf-7707-42ea-badc-6748c4ee30db",
            "name": "When clicking \"Test workflow\"",
            "type": "n8n-nodes-base.manualTrigger",
            "position": [
                -927,
                472
            ],
            "parameters": [],
            "typeVersion": 1
        },
        {
            "id": "9e5bd6c8-a056-462b-b746-60d86bfbe398",
            "name": "Split Out",
            "type": "n8n-nodes-base.splitOut",
            "position": [
                480,
                360
            ],
            "parameters": {
                "options": [],
                "fieldToSplitOut": "urlset.url"
            },
            "typeVersion": 1
        },
        {
            "id": "0d4acf98-31c5-4a0d-bb29-c1d045c0705c",
            "name": "Check status",
            "type": "n8n-nodes-base.httpRequest",
            "onError": "continueErrorOutput",
            "position": [
                1540,
                400
            ],
            "parameters": {
                "url": "=https:\/\/indexing.googleapis.com\/v3\/urlNotifications\/metadata?url={{ encodeURIComponent($json.loc) }}",
                "options": {
                    "response": {
                        "response": {
                            "fullResponse": true
                        }
                    }
                },
                "authentication": "predefinedCredentialType",
                "nodeCredentialType": "googleOAuth2Api"
            },
            "credentials": {
                "googleOAuth2Api": {
                    "id": "K8Cz9Dy3TR68udv2",
                    "name": "Google account"
                }
            },
            "retryOnFail": false,
            "typeVersion": 4.1
        },
        {
            "id": "eee0eba6-3aa3-4841-9d48-8407db1212e2",
            "name": "Loop Over Items",
            "type": "n8n-nodes-base.splitInBatches",
            "position": [
                1340,
                360
            ],
            "parameters": {
                "options": []
            },
            "typeVersion": 3
        },
        {
            "id": "47745d33-8358-45a8-a67d-60f9f0574bae",
            "name": "Wait",
            "type": "n8n-nodes-base.wait",
            "position": [
                2080,
                400
            ],
            "webhookId": "44364241-e54b-4b44-aaa1-0d8121a7f497",
            "parameters": {
                "unit": "seconds",
                "amount": "={{ Math.min(1.5,0.3+3*Math.random()).toFixed(2) }}"
            },
            "typeVersion": 1
        },
        {
            "id": "9f1bf72e-8ecd-4239-b96f-b77be4c86b18",
            "name": "URL Updated",
            "type": "n8n-nodes-base.httpRequest",
            "position": [
                1840,
                400
            ],
            "parameters": {
                "url": "=https:\/\/indexing.googleapis.com\/v3\/urlNotifications:publish",
                "method": "POST",
                "options": [],
                "sendBody": true,
                "authentication": "predefinedCredentialType",
                "bodyParameters": {
                    "parameters": [
                        {
                            "name": "url",
                            "value": "={{ $('Loop Over Items').item.json.loc }}"
                        },
                        {
                            "name": "type",
                            "value": "URL_UPDATED"
                        }
                    ]
                },
                "nodeCredentialType": "googleOAuth2Api"
            },
            "credentials": {
                "googleOAuth2Api": {
                    "id": "K8Cz9Dy3TR68udv2",
                    "name": "Google account"
                }
            },
            "typeVersion": 4.1
        },
        {
            "id": "629eaf34-ef3c-4e9c-9537-69a03310dd9c",
            "name": "Schedule Trigger",
            "type": "n8n-nodes-base.scheduleTrigger",
            "position": [
                -927,
                272
            ],
            "parameters": {
                "rule": {
                    "interval": [
                        {
                            "triggerAtHour": 2,
                            "triggerAtMinute": 5
                        }
                    ]
                }
            },
            "typeVersion": 1.1
        },
        {
            "id": "2f95065c-fdc9-4773-87b0-37007ae4f9a5",
            "name": "Sticky Note1",
            "type": "n8n-nodes-base.stickyNote",
            "position": [
                -87,
                192
            ],
            "parameters": {
                "width": 851.3475816949383,
                "height": 340.39627039627067,
                "content": "## Collect list of URLs\n\nThis part extracts all pages from all sitemaps and sorts by the last modified date `lastmod` (from newest to oldest)"
            },
            "typeVersion": 1
        },
        {
            "id": "33798da1-4fd3-43dc-9ff4-753bae798535",
            "name": "is new?",
            "type": "n8n-nodes-base.if",
            "position": [
                1700,
                280
            ],
            "parameters": {
                "options": {
                    "looseTypeValidation": true
                },
                "conditions": {
                    "options": {
                        "leftValue": "",
                        "caseSensitive": true,
                        "typeValidation": "loose"
                    },
                    "combinator": "and",
                    "conditions": [
                        {
                            "id": "c8566fc4-57cf-4272-841e-014bb354a37d",
                            "operator": {
                                "type": "dateTime",
                                "operation": "after"
                            },
                            "leftValue": "={{ $('Loop Over Items').item.json.lastmod }}",
                            "rightValue": "={{ $json.body.latestUpdate.notifyTime }}"
                        }
                    ]
                }
            },
            "typeVersion": 2
        },
        {
            "id": "b5d538ec-d7bc-40ac-9b9e-e5ead9378387",
            "name": "Sticky Note2",
            "type": "n8n-nodes-base.stickyNote",
            "position": [
                1500,
                121.07782938758908
            ],
            "parameters": {
                "width": 504.2424242424241,
                "height": 431.1089918072487,
                "content": "## Check URL metadata and update, if:\n* Google returns error (404 error means that this URL was not previously added)\n* Date of article update is after the date of last request to re-index"
            },
            "typeVersion": 1
        },
        {
            "id": "2cc0b088-b09f-4dc2-8027-9e0ff442576b",
            "name": "Sticky Note3",
            "type": "n8n-nodes-base.stickyNote",
            "position": [
                -640,
                196.4335593220339
            ],
            "parameters": {
                "width": 515.8058994999984,
                "height": 335.72259887005646,
                "content": "## Get sitemap.xml\nVarious CMS systems often have multiple sitemaps for different content (posts, tags, pages etc). Need to fetch all sitemaps first and then extract all pages from all sitemaps.\n### Remember to update the real sitemap URL!"
            },
            "typeVersion": 1
        },
        {
            "id": "d8dc3b65-0d47-49a7-9042-33dbc5a2e245",
            "name": "Sticky Note",
            "type": "n8n-nodes-base.stickyNote",
            "position": [
                -662.5490981963931,
                120.2098305084748
            ],
            "parameters": {
                "color": 6,
                "width": 1458.468937875752,
                "height": 453.3292476478371,
                "content": "## Feel free to adapt this part depending on your website CMS\n"
            },
            "typeVersion": 1
        },
        {
            "id": "a763f582-500c-4cc8-b780-672ebc3d0845",
            "name": "Get content-specific sitemaps",
            "type": "n8n-nodes-base.splitOut",
            "position": [
                -260,
                360
            ],
            "parameters": {
                "options": [],
                "fieldToSplitOut": "sitemapindex.sitemap"
            },
            "typeVersion": 1
        },
        {
            "id": "e7aa9728-eb9b-454d-a710-561d76841d7a",
            "name": "Convert sitemap to JSON",
            "type": "n8n-nodes-base.xml",
            "position": [
                -440,
                360
            ],
            "parameters": {
                "options": []
            },
            "typeVersion": 1
        },
        {
            "id": "496366d7-0d4e-401c-a375-8ca8882e8a32",
            "name": "Force urlset.url to array",
            "type": "n8n-nodes-base.set",
            "position": [
                320,
                360
            ],
            "parameters": {
                "options": [],
                "assignments": {
                    "assignments": [
                        {
                            "id": "8d16114b-1d1a-4522-a550-6c799a44538a",
                            "name": "=urlset.url",
                            "type": "array",
                            "value": "={{ $json.urlset.url[0] ? $json.urlset.url : [$json.urlset.url] }}"
                        }
                    ]
                }
            },
            "typeVersion": 3.3
        },
        {
            "id": "3a8e00a6-2fa4-4903-943d-890e0078181e",
            "name": "Sticky Note4",
            "type": "n8n-nodes-base.stickyNote",
            "position": [
                820,
                120
            ],
            "parameters": {
                "color": 3,
                "width": 459.2224448897797,
                "height": 451.39712985292624,
                "content": "## Update the `lastmod` and `loc` fields\nThese are pre-defined fields according to [the XML schema for the Sitemap protocol](https:\/\/www.sitemaps.org\/protocol.html).\n\nIf your CMS system has different field names, please rename them here:\n* the last modified field `lastmod`\n* URL of the page in `loc` field"
            },
            "typeVersion": 1
        },
        {
            "id": "9d841026-ede6-4396-a67b-e1787ffe9a17",
            "name": "Assign mandatiry sitemap fields",
            "type": "n8n-nodes-base.set",
            "position": [
                1000,
                360
            ],
            "parameters": {
                "options": [],
                "assignments": {
                    "assignments": [
                        {
                            "id": "bb0e1337-6fda-4a22-9963-d0b1271fc2a6",
                            "name": "lastmod",
                            "type": "string",
                            "value": "={{ $json.lastmod }}"
                        },
                        {
                            "id": "e7517c23-f989-4d75-9078-d82c75e51c65",
                            "name": "loc",
                            "type": "string",
                            "value": "={{ $json.loc }}"
                        }
                    ]
                }
            },
            "typeVersion": 3.3
        },
        {
            "id": "99787654-f554-4650-afc0-c4fa65392c2b",
            "name": "convert page data to JSON",
            "type": "n8n-nodes-base.xml",
            "position": [
                120,
                360
            ],
            "parameters": {
                "options": {
                    "explicitArray": false
                }
            },
            "typeVersion": 1
        },
        {
            "id": "f5cc1725-955c-4eb2-a66f-93153ebf35d1",
            "name": "Get sitemap.xml",
            "type": "n8n-nodes-base.httpRequest",
            "position": [
                -620,
                360
            ],
            "parameters": {
                "url": "https:\/\/wordpress.org\/sitemap.xml",
                "options": []
            },
            "typeVersion": 4.1
        },
        {
            "id": "789076f0-4aa1-469b-afac-af717c0b03c3",
            "name": "Get content of each sitemap",
            "type": "n8n-nodes-base.httpRequest",
            "position": [
                -60,
                360
            ],
            "parameters": {
                "url": "={{ $json.loc }}",
                "options": {
                    "batching": {
                        "batch": {
                            "batchSize": 1,
                            "batchInterval": 150
                        }
                    }
                }
            },
            "typeVersion": 4.1
        },
        {
            "id": "b0bdc6d6-1306-4c0c-bec2-7e59d587db69",
            "name": "Sort",
            "type": "n8n-nodes-base.sort",
            "position": [
                640,
                360
            ],
            "parameters": {
                "options": [],
                "sortFieldsUi": {
                    "sortField": [
                        {
                            "order": "descending",
                            "fieldName": "lastmod"
                        }
                    ]
                }
            },
            "typeVersion": 1
        }
    ],
    "active": false,
    "pinData": [],
    "settings": {
        "callerPolicy": "workflowsFromSameOwner",
        "errorWorkflow": "6",
        "executionOrder": "v1",
        "saveManualExecutions": true,
        "saveDataSuccessExecution": "all"
    },
    "versionId": "5c21ebb6-67df-4bde-9aea-6cc9a7621fc0",
    "connections": {
        "Sort": {
            "main": [
                [
                    {
                        "node": "Assign mandatiry sitemap fields",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Wait": {
            "main": [
                [
                    {
                        "node": "Loop Over Items",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "is new?": {
            "main": [
                [
                    {
                        "node": "URL Updated",
                        "type": "main",
                        "index": 0
                    }
                ],
                [
                    {
                        "node": "Wait",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Split Out": {
            "main": [
                [
                    {
                        "node": "Sort",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "URL Updated": {
            "main": [
                [
                    {
                        "node": "Wait",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Check status": {
            "main": [
                [
                    {
                        "node": "is new?",
                        "type": "main",
                        "index": 0
                    }
                ],
                [
                    {
                        "node": "URL Updated",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Get sitemap.xml": {
            "main": [
                [
                    {
                        "node": "Convert sitemap to JSON",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Loop Over Items": {
            "main": [
                [],
                [
                    {
                        "node": "Check status",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Schedule Trigger": {
            "main": [
                [
                    {
                        "node": "Get sitemap.xml",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Convert sitemap to JSON": {
            "main": [
                [
                    {
                        "node": "Get content-specific sitemaps",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Force urlset.url to array": {
            "main": [
                [
                    {
                        "node": "Split Out",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "convert page data to JSON": {
            "main": [
                [
                    {
                        "node": "Force urlset.url to array",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Get content of each sitemap": {
            "main": [
                [
                    {
                        "node": "convert page data to JSON",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Get content-specific sitemaps": {
            "main": [
                [
                    {
                        "node": "Get content of each sitemap",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "When clicking \"Test workflow\"": {
            "main": [
                [
                    {
                        "node": "Get sitemap.xml",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Assign mandatiry sitemap fields": {
            "main": [
                [
                    {
                        "node": "Loop Over Items",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        }
    }
}
                                

Workflows Similaires

Automatisez le Résumé de Vos Emails avec A.I. et Messagerie

Ce workflow n8n vous permet d'automatiser la gestion de vos emails en utilisant l'intelligence artificielle pour résume...

Automatisation de gestion des réunions Zoom et communication

Ce workflow est conçu pour automatiser le processus de planification et de gestion des réunions Zoom tout en assurant ...

Automatisez vos Tweets d'images humoristiques à 17h

Ce workflow n8n est conçu pour les professionnels des réseaux sociaux cherchant à automatiser leur contenu humoristiq...