n8n工作流自动提取网站地图元数据并同步Google Sheets | SEO数据收集
n8n工作流,网站地图提取,SEO元数据,Google Sheets同步,数据自动化,HTTP请求,代码节点,批量处理

## 工作流概述

这个n8n工作流能够自动从网站地图中提取每个页面的标题和元描述,并将这些SEO关键数据同步到Google Sheets电子表格中。

## 主要功能

– **自动提取网站地图**:从指定的sitemap.xml文件中获取所有URL
– **批量处理页面**:逐个访问每个URL并提取HTML元数据
– **智能数据解析**:使用代码节点解析标签和内容<br /> – **数据同步**:将提取的URL、标题和元描述自动写入Google Sheets<br /> – **速率控制**:内置等待节点防止服务器过载</p> <p>## 工作流节点详解</p> <p>### 核心节点<br /> 1. **HTTP Request** – 获取网站地图XML文件<br /> 2. **Code** – 解析XML并提取URL列表<br /> 3. **SplitInBatches** – 批量处理每个URL<br /> 4. **HTTP Request** – 获取单个页面的HTML内容<br /> 5. **Code** – 从HTML中提取标题和元描述<br /> 6. **Merge** – 合并URL、标题和描述数据<br /> 7. **Google Sheets** – 将数据写入电子表格<br /> 8. **Wait** – 添加延迟防止服务器限制</p> <p>### 配置节点<br /> – **Sticky Note** – 提供工作流说明和配置指导<br /> – **Manual Trigger** – 手动触发工作流执行</p> <p>## 应用场景</p> <p>– **SEO审计**:快速获取网站所有页面的SEO元数据<br /> – **内容清单**:创建完整的网站内容目录<br /> – **迁移规划**:为网站重构或迁移准备数据<br /> – **质量检查**:检查标题和描述的完整性和质量</p> <p>## 配置要求</p> <p>– 有效的网站地图URL<br /> – Google Sheets OAuth2凭据<br /> – 包含URL、Title、meta description列的Google Sheets表格</p> <p>## 安全特性</p> <p>– 内置速率限制防止服务器过载<br /> – 错误处理机制<br /> – 数据验证和清理</p> <div class="entry-copyright"> <i class="fas fa-info-circle me-1"></i>声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。</div> </article> <div class="entry-tags"> <i class="fas fa-tags me-1"></i> <a href="https://www.xmtup.com/tag/code" rel="tag">Code</a> <a href="https://www.xmtup.com/tag/google-sheets" rel="tag">Google Sheets</a> <a href="https://www.xmtup.com/tag/http-request" rel="tag">HTTP Request</a> <a href="https://www.xmtup.com/tag/manual-trigger" rel="tag">Manual Trigger</a> <a href="https://www.xmtup.com/tag/merge" rel="tag">Merge</a> <a href="https://www.xmtup.com/tag/splitinbatches" rel="tag">SplitInBatches</a> <a href="https://www.xmtup.com/tag/sticky-note" rel="tag">Sticky Note</a> <a href="https://www.xmtup.com/tag/wait" rel="tag">Wait</a> <a href="https://www.xmtup.com/tag/%e6%95%b0%e6%8d%ae%e5%a4%84%e7%90%86" rel="tag">数据处理</a> <a href="https://www.xmtup.com/tag/data_extraction" rel="tag">数据提取</a> <a href="https://www.xmtup.com/tag/%e8%87%aa%e5%8a%a8%e5%8c%96" rel="tag">自动化</a> </div> <div class="entry-social"> <div class="row mt-2 mt-lg-3"> <div class="col"> <a class="share-author" href="https://www.xmtup.com/author/cbd01a227a0af083"> <div class="avatar me-1"><img class="avatar-img rounded-circle border border-white border-3 shadow lazyload" data-src="//www.xmtup.com/wp-content/themes/ripro-v5/assets/img/avatar.png" alt="" src="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==" style="--smush-placeholder-width: 100px; --smush-placeholder-aspect-ratio: 100/100;"> </div>booby </a> </div> <div class="col-auto"> <a class="btn btn-sm btn-info-soft post-share-btn" href="javascript:void(0);"><i class="fas fa-share-alt me-1"></i>分享</a> <a class="btn btn-sm btn-success-soft post-fav-btn" href="javascript:void(0);" data-is="1"><i class="far fa-star me-1"></i></i>收藏</a> <a class="btn btn-sm btn-danger-soft post-like-btn" href="javascript:void(0);" data-text="已点赞"><i class="far fa-heart me-1"></i>点赞(<span class="count">0</span>)</a> </div> </div> </div> </div> <div class="tab-pane fade" id="pills-faq" role="tabpanel" aria-labelledby="pills-faq-tab"> <ol class="list-group list-group-numbered"> <li class="list-group-item list-group-item-info d-flex justify-content-between align-items-start"> <div class="ms-2 me-auto"> <div class="fw-bold">免费下载或者VIP会员资源能否直接商用?</div> <div class="text-muted">本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。</div> </div> </li> <li class="list-group-item list-group-item-info d-flex justify-content-between align-items-start"> <div class="ms-2 me-auto"> <div class="fw-bold">提示下载完但解压或打开不了?</div> <div class="text-muted">最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。 若排除这种情况,可在对应资源底部留言,或联络我们。</div> </div> </li> <li class="list-group-item list-group-item-info d-flex justify-content-between align-items-start"> <div class="ms-2 me-auto"> <div class="fw-bold">找不到素材资源介绍文章里的示例图片?</div> <div class="text-muted">对于会员专享、整站源码、程序插件、网站模板、网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。</div> </div> </li> <li class="list-group-item list-group-item-info d-flex justify-content-between align-items-start"> <div class="ms-2 me-auto"> <div class="fw-bold">付款后无法显示下载地址或者无法查看内容?</div> <div class="text-muted">如果您已经成功付款但是网站没有弹出成功提示,请联系站长提供付款信息为您处理</div> </div> </li> <li class="list-group-item list-group-item-info d-flex justify-content-between align-items-start"> <div class="ms-2 me-auto"> <div class="fw-bold">购买该资源后,可以退款吗?</div> <div class="text-muted">源码素材属于虚拟商品,具有可复制性,可传播性,一旦授予,不接受任何形式的退款、换货要求。请您在购买获取之前确认好 是您所需要的资源</div> </div> </li> </ol> </div> <div class="tab-pane fade" id="pills-comments" role="tabpanel" aria-labelledby="pills-comments-tab"> <div id="comments" class="entry-comments"> <h2 class="comments-title"><i class="fas fa-comment-dots me-1"></i>评论(0)</h2> <div id="respond" class="comment-respond"> <h3 id="reply-title" class="comment-reply-title">提示:请文明发言 <small><a rel="nofollow" id="cancel-comment-reply-link" href="/n8n-workflows/8644-create-high-quality-ugc-images-with-nano-banana-cheaper-and-faster.html#respond" style="display:none;">取消回复</a></small></h3><div class="d-flex align-content-center justify-content-center"><a rel="nofollow noopener noreferrer" href="https://www.xmtup.com/login?redirect_to=https%3A%2F%2Fwww.xmtup.com%2Fn8n-workflows%2F8644-create-high-quality-ugc-images-with-nano-banana-cheaper-and-faster.html" class="login-btn btn btn-sm btn-dark px-4 rounded-pill mb-5"><i class="far fa-user me-1"></i>登录后评论</a></div> </div><!-- #respond --> </div> </div> </div> </div> <div class="entry-navigation"> <div class="row g-3"> <div class="col-lg-6 col-12"> <a class="entry-page-prev" href="https://www.xmtup.com/n8n-workflows/8643-sync-azure-devops-work-items-to-github-issues-with-google-sheets-tracking.html" title="使用AI和Google Sheets跟踪将Azure DevOps工作项同步到GitHub问题的自动化流程改进"> <div class="entry-page-icon"><i class="fas fa-arrow-left"></i></div> <div class="entry-page-info"> <span class="d-block rnav">上一篇</span> <div class="title">使用AI和Google Sheets跟踪将Azure DevOps工作项同步到GitHub问题的自动化流程改进</div> </div> </a> </div> <div class="col-lg-6 col-12"> <a class="entry-page-next" href="https://www.xmtup.com/n8n-workflows/8645-summarize-google-docs-and-pdfs-with-gpt-4-and-send-to-slack-or-email.html" title="新闻摘要与社交媒体自动发布工作流"> <div class="entry-page-info"> <span class="d-block rnav">下一篇</span> <div class="title">新闻摘要与社交媒体自动发布工作流</div> </div> <div class="entry-page-icon"><i class="fas fa-arrow-right"></i></div> </a> </div> </div> </div> <div class="related-posts"> <h2 class="related-posts-title"><i class="fab fa-hive me-1"></i>相关文章</h2> <div class="row g-2 g-md-3 row-cols-2 row-cols-md-3 row-cols-lg-4"> <div class="col"> <article class="post-item item-grid"> <div class="tips-badge position-absolute top-0 start-0 z-1 m-2"> </div> <div class="entry-media ratio ratio-3x2"> <a target="" class="media-img lazy bg-cover bg-center" href="https://www.xmtup.com/n8n-workflows/7605-resume-reviewer-with-gpt-4o-mini-and-human-validation-via-gotohuman.html" title="使用Google Sheets和OpenAI GPT-5 Mini构建智能数据分析聊天机器人" data-bg="https://www.xmtup.com/wp-content/uploads/2025/202507/7605-resume-reviewer-with-gpt-4o-mini-and-human-validation-via-gotohuman.png"> <!-- 音视频缩略图 --> </a> </div> <div class="entry-wrapper"> <div class="entry-cat-dot"><a href="https://www.xmtup.com/category/n8n-workflows">n8n 工作流</a></div> <h2 class="entry-title"> <a target="" href="https://www.xmtup.com/n8n-workflows/7605-resume-reviewer-with-gpt-4o-mini-and-human-validation-via-gotohuman.html" title="使用Google Sheets和OpenAI GPT-5 Mini构建智能数据分析聊天机器人">使用Google Sheets和OpenAI GPT-5 Mini构建智能数据分析聊天机器人</a> </h2> <div class="entry-desc">这是一个基于n8n的智能数据分析工作流,通过集成Google Sheets和Op...</div> <div class="entry-meta"> <span class="meta-date"><i class="far fa-clock me-1"></i><time class="pub-date" datetime="2025-11-17T00:49:41+08:00">3 周前</time></span> <span class="meta-likes d-none d-md-inline-block"><i class="far fa-heart me-1"></i>0</span> <span class="meta-fav d-none d-md-inline-block"><i class="far fa-star me-1"></i>0</span> <span class="meta-views"><i class="far fa-eye me-1"></i>0</span> <span class="meta-price"><i class="fas fa-coins me-1"></i>0</span> </div> </div> </article> </div> <div class="col"> <article class="post-item item-grid"> <div class="tips-badge position-absolute top-0 start-0 z-1 m-2"> </div> <div class="entry-media ratio ratio-3x2"> <a target="" class="media-img lazy bg-cover bg-center" href="https://www.xmtup.com/n8n-workflows/8721-categorize-seo-keywords-and-create-content-strategy-with-ai-and-airtable.html" title="AI驱动的知识库文章自动生成工作流" data-bg="https://www.xmtup.com/wp-content/uploads/2025/202508/8721-categorize-seo-keywords-and-create-content-strategy-with-ai-and-airtable.png"> <!-- 音视频缩略图 --> </a> </div> <div class="entry-wrapper"> <div class="entry-cat-dot"><a href="https://www.xmtup.com/category/n8n-workflows">n8n 工作流</a></div> <h2 class="entry-title"> <a target="" href="https://www.xmtup.com/n8n-workflows/8721-categorize-seo-keywords-and-create-content-strategy-with-ai-and-airtable.html" title="AI驱动的知识库文章自动生成工作流">AI驱动的知识库文章自动生成工作流</a> </h2> <div class="entry-desc">该工作流通过AI技术将文章主题分解为研究问题,自动查询知识库获取答案,并基于验证...</div> <div class="entry-meta"> <span class="meta-date"><i class="far fa-clock me-1"></i><time class="pub-date" datetime="2025-11-17T05:22:07+08:00">3 周前</time></span> <span class="meta-likes d-none d-md-inline-block"><i class="far fa-heart me-1"></i>0</span> <span class="meta-fav d-none d-md-inline-block"><i class="far fa-star me-1"></i>0</span> <span class="meta-views"><i class="far fa-eye me-1"></i>0</span> <span class="meta-price"><i class="fas fa-coins me-1"></i>0</span> </div> </div> </article> </div> <div class="col"> <article class="post-item item-grid"> <div class="tips-badge position-absolute top-0 start-0 z-1 m-2"> </div> <div class="entry-media ratio ratio-3x2"> <a target="" class="media-img lazy bg-cover bg-center" href="https://www.xmtup.com/n8n-workflows/2978-analyze-reddit-posts-with-ai-to-identify-business-opportunities-2.html" title="PG&E每日能源成本追踪器 – 自动化能源监控解决方案" data-bg="https://www.xmtup.com/wp-content/uploads/2024/202409/2978-analyze-reddit-posts-with-ai-to-identify-business-opportunities.png"> <!-- 音视频缩略图 --> </a> </div> <div class="entry-wrapper"> <div class="entry-cat-dot"><a href="https://www.xmtup.com/category/n8n-workflows">n8n 工作流</a></div> <h2 class="entry-title"> <a target="" href="https://www.xmtup.com/n8n-workflows/2978-analyze-reddit-posts-with-ai-to-identify-business-opportunities-2.html" title="PG&E每日能源成本追踪器 – 自动化能源监控解决方案">PG&E每日能源成本追踪器 – 自动化能源监控解决方案</a> </h2> <div class="entry-desc">这是一个基于n8n和Airtop的自动化工作流,专门用于监控PG&E能源...</div> <div class="entry-meta"> <span class="meta-date"><i class="far fa-clock me-1"></i><time class="pub-date" datetime="2025-11-13T11:58:51+08:00">3 周前</time></span> <span class="meta-likes d-none d-md-inline-block"><i class="far fa-heart me-1"></i>0</span> <span class="meta-fav d-none d-md-inline-block"><i class="far fa-star me-1"></i>0</span> <span class="meta-views"><i class="far fa-eye me-1"></i>0</span> <span class="meta-price"><i class="fas fa-coins me-1"></i>0</span> </div> </div> </article> </div> <div class="col"> <article class="post-item item-grid"> <div class="tips-badge position-absolute top-0 start-0 z-1 m-2"> </div> <div class="entry-media ratio ratio-3x2"> <a target="" class="media-img lazy bg-cover bg-center" href="https://www.xmtup.com/n8n-workflows/2548-convert-url-encoded-webhook-data-from-amocrm-to-structured-array.html" title="从Notion自动添加新客户到Clockify" data-bg="https://www.xmtup.com/wp-content/uploads/2024/202407/2548-convert-url-encoded-webhook-data-from-amocrm-to-structured-array.png"> <!-- 音视频缩略图 --> </a> </div> <div class="entry-wrapper"> <div class="entry-cat-dot"><a href="https://www.xmtup.com/category/n8n-workflows">n8n 工作流</a></div> <h2 class="entry-title"> <a target="" href="https://www.xmtup.com/n8n-workflows/2548-convert-url-encoded-webhook-data-from-amocrm-to-structured-array.html" title="从Notion自动添加新客户到Clockify">从Notion自动添加新客户到Clockify</a> </h2> <div class="entry-desc">这个工作流实现了Notion和Clockify之间的自动数据同步。它通过Noti...</div> <div class="entry-meta"> <span class="meta-date"><i class="far fa-clock me-1"></i><time class="pub-date" datetime="2025-11-11T02:03:40+08:00">4 周前</time></span> <span class="meta-likes d-none d-md-inline-block"><i class="far fa-heart me-1"></i>0</span> <span class="meta-fav d-none d-md-inline-block"><i class="far fa-star me-1"></i>0</span> <span class="meta-views"><i class="far fa-eye me-1"></i>1</span> <span class="meta-price"><i class="fas fa-coins me-1"></i>0</span> </div> </div> </article> </div> </div> </div> </div> <div class="sidebar-wrapper col-md-12 col-lg-3 h-100" data-sticky> <div class="sidebar"> <div id="ri_post_pay_widget-2" class="widget post-buy-widget"> <div class="ri-down-warp" data-resize="bottom"> <span class="down-msg">下载</span> <div class="down-buy-warp"> <div class="buy-title"><i class="fas fa-unlock me-1"></i>免费下载</div> <div class="d-grid gap-2 mt-3"> <div class="btn-group"> <a target="_blank" href="https://www.xmtup.com/goto?down=WXg1R1ZwRkQ3MDYxMllEaVZ1bTBLQnNmOFBlTE1KSVA" class="btn btn-success" rel="nofollow noopener noreferrer"><i class="fas fa-cloud-download-alt me-1"></i>点右边→</a> <button type="button" class="user-select-all copy-pwd btn btn-success opacity-75" data-pwd="{ "meta": { "instanceId": "a6566740aec87c72f5c480f70b9db7e54a30eed99165e991cfd6834f8c7d1e9a" }, "nodes": [ { "id": "a34c9e89-88bc-4b65-8fb0-906d96623f24", "name": "Append or update row in sheet", "type": "n8n-nodes-base.googleSheets", "position": [ 1632, 128 ], "parameters": { "columns": { "value": { "URL": "={{ $json.loc }}", "Title": "={{ $json.title }}", "meta description": "={{ $json.description }}" }, "schema": [ { "id": "Title", "type": "string", "display": true, "required": false, "displayName": "Title", "defaultMatch": false, "canBeUsedToMatch": true }, { "id": "meta description", "type": "string", "display": true, "required": false, "displayName": "meta description", "defaultMatch": false, "canBeUsedToMatch": true }, { "id": "URL", "type": "string", "display": true, "removed": false, "required": false, "displayName": "URL", "defaultMatch": false, "canBeUsedToMatch": true } ], "mappingMode": "defineBelow", "matchingColumns": [ "URL" ], "attemptToConvertTypes": false, "convertFieldsToString": false }, "options": {}, "operation": "appendOrUpdate", "sheetName": { "__rl": true, "mode": "list", "value": 1784271309, "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1M3A5XS7kASYmFAhRWRIuH5bgdU711cYCiGkxrEgiJsQ/edit#gid=1784271309", "cachedResultName": "Sheet4" }, "documentId": { "__rl": true, "mode": "list", "value": "1M3A5XS7kASYmFAhRWRIuH5bgdU711cYCiGkxrEgiJsQ", "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1M3A5XS7kASYmFAhRWRIuH5bgdU711cYCiGkxrEgiJsQ/edit?usp=drivesdk", "cachedResultName": "WP Adminify site data before sep 7" } }, "credentials": { "googleSheetsOAuth2Api": { "id": "BHZiTn38wGOGTK86", "name": "Google Sheets account" } }, "typeVersion": 4.7 }, { "id": "465ed5f1-6a24-454f-8e15-b536eb5f0654", "name": "Loop Over Items", "type": "n8n-nodes-base.splitInBatches", "position": [ 736, 192 ], "parameters": { "options": {} }, "typeVersion": 3 }, { "id": "81163f56-f0b3-4b82-8535-e9c86f17e9af", "name": "When clicking ‘Execute workflow’", "type": "n8n-nodes-base.manualTrigger", "position": [ 64, 192 ], "parameters": {}, "typeVersion": 1 }, { "id": "e79ea547-93d8-4325-ad23-5a5b58ef266e", "name": "Get Sitemap XML", "type": "n8n-nodes-base.httpRequest", "position": [ 288, 192 ], "parameters": { "url": "https://example.com/sitemap.xml", "options": {} }, "typeVersion": 4.2 }, { "id": "2e18cc0f-d3bd-4267-9beb-c790491c121f", "name": "Split the title and url", "type": "n8n-nodes-base.code", "position": [ 512, 192 ], "parameters": { "jsCode": "// 1. Grab the raw XML string (adjust \"body\" vs \"data\" if needed)\nconst xml = items[0].json.body || items[0].json.data;\n\n// 2. Use a global regex to capture all <loc>…</loc> values\nconst urls = Array.from(\n xml.matchAll(/<loc>(.*?)<\\/loc>/g),\n match => match[1]\n);\n\n// 3. Emit one item per URL\nreturn urls.map(u => ({ json: { loc: u } }));\n" }, "typeVersion": 2 }, { "id": "5e8cc53a-07d9-4f36-9136-e316262d0afd", "name": "Get specific link html", "type": "n8n-nodes-base.httpRequest", "position": [ 960, 48 ], "parameters": { "url": "={{ $json.loc }}", "options": {} }, "typeVersion": 4.2 }, { "id": "25dcfa97-0ea6-42e0-b0de-ebba4d549bc2", "name": "Get the meta description", "type": "n8n-nodes-base.code", "position": [ 1184, 48 ], "parameters": { "jsCode": "// 1. Read raw HTML from the HTTP Request node\nconst html = items[0].json.body || items[0].json.data;\n\n// 2. Extract <title>…</title>\nconst titleMatch = html.match(/<title>([\\s\\S]*?)<\\/title>/i);\nconst title = titleMatch ? titleMatch[1].trim() : '';\n\n// 3. Extract <meta name=\"description\" content=\"…\"/>\nconst descMatch = html.match(\n /<meta\\b[^>]*\\bname=[\"']description[\"'][^>]*\\bcontent=[\"']([\\s\\S]*?)[\"']/i\n);\nconst description = descMatch ? descMatch[1].trim() : '';\n\n// 4. Return a single item with both fields\nreturn [\n {\n json: { title, description }\n }\n];\n" }, "typeVersion": 2 }, { "id": "cb0dccd4-1a14-4392-9b47-673086a584db", "name": "Sticky Note", "type": "n8n-nodes-base.stickyNote", "position": [ 96, -400 ], "parameters": { "width": 528, "height": 464, "content": "# 🔍 Sitemap Metadata Exporter\n\n**Purpose:** Automatically extracts the `<title>` and meta description from every URL in your sitemap and sends the data to Google Sheets.\n\n**Perfect for:** SEO audits, content inventories, and migration planning.\n\n---\n**How to Start:**\n1. Configure the `sitemap_url` in the HTTP Request node.\n2. Set up your Google Sheets credentials and node.\n3. Click **Execute Workflow**." }, "typeVersion": 1 }, { "id": "232e416e-ba6d-488e-9805-95e51602beb4", "name": "Sticky Note1", "type": "n8n-nodes-base.stickyNote", "position": [ 864, -512 ], "parameters": { "width": 624, "height": 464, "content": "# ⚙️ Configuration Required\n\n**Replace the Sitemap URL!**\n\n**Current Value:** `https://example.com/sitemap.xml`\n\n**Action:** Double-click this node and replace the URL with your actual, live sitemap URL (e.g., `https://yourwebsite.com/sitemap.xml`).\n\n\n**Connect your Google Sheet.**\n\n**Steps:**\n1. **Credentials:** Ensure you have Google Sheets OAuth2 credentials set up in n8n.\n2. **Document ID:** Paste your Google Sheet's ID here.\n3. **Sheet Name:** Select the correct sheet/tab from your spreadsheet.\n4. **Columns:** This node expects your sheet to have columns named:\n - `URL`\n - `Title`\n - `meta description`" }, "typeVersion": 1 }, { "id": "28eb6dfd-2bc3-48ab-a9ac-e325062d8913", "name": "Sticky Note3", "type": "n8n-nodes-base.stickyNote", "position": [ 1792, -224 ], "parameters": { "width": 400, "height": 336, "content": "# ⏸️ Rate Limiting\n\nThis wait node adds a pause between page fetches to avoid getting blocked by the server.\n\n**Default:** 2 seconds.\n\n**If you see `429 Too Many Requests` errors,** increase the wait time in this node's parameters." }, "typeVersion": 1 }, { "id": "54d6ad61-aa54-433a-8fba-2824168d9c05", "name": "Wait", "type": "n8n-nodes-base.wait", "position": [ 1856, 192 ], "webhookId": "6de7240c-a5e9-40ac-a371-f63db7cd90a3", "parameters": { "amount": 2 }, "typeVersion": 1.1 }, { "id": "7a23c4c2-06d7-45d9-b4d2-99310fe67915", "name": "Merge Meta Description with Title and URL", "type": "n8n-nodes-base.merge", "position": [ 1408, 128 ], "parameters": { "mode": "combine", "options": {}, "combineBy": "combineByPosition" }, "typeVersion": 3.2 } ], "pinData": {}, "connections": { "Wait": { "main": [ [ { "node": "Loop Over Items", "type": "main", "index": 0 } ] ] }, "Get Sitemap XML": { "main": [ [ { "node": "Split the title and url", "type": "main", "index": 0 } ] ] }, "Loop Over Items": { "main": [ [], [ { "node": "Get specific link html", "type": "main", "index": 0 }, { "node": "Merge Meta Description with Title and URL", "type": "main", "index": 1 } ] ] }, "Get specific link html": { "main": [ [ { "node": "Get the meta description", "type": "main", "index": 0 } ] ] }, "Split the title and url": { "main": [ [ { "node": "Loop Over Items", "type": "main", "index": 0 } ] ] }, "Get the meta description": { "main": [ [ { "node": "Merge Meta Description with Title and URL", "type": "main", "index": 0 } ] ] }, "Append or update row in sheet": { "main": [ [ { "node": "Wait", "type": "main", "index": 0 } ] ] }, "When clicking ‘Execute workflow’": { "main": [ [ { "node": "Get Sitemap XML", "type": "main", "index": 0 } ] ] }, "Merge Meta Description with Title and URL": { "main": [ [ { "node": "Append or update row in sheet", "type": "main", "index": 0 } ] ] } } }" title="{ "meta": { "instanceId": "a6566740aec87c72f5c480f70b9db7e54a30eed99165e991cfd6834f8c7d1e9a" }, "nodes": [ { "id": "a34c9e89-88bc-4b65-8fb0-906d96623f24", "name": "Append or update row in sheet", "type": "n8n-nodes-base.googleSheets", "position": [ 1632, 128 ], "parameters": { "columns": { "value": { "URL": "={{ $json.loc }}", "Title": "={{ $json.title }}", "meta description": "={{ $json.description }}" }, "schema": [ { "id": "Title", "type": "string", "display": true, "required": false, "displayName": "Title", "defaultMatch": false, "canBeUsedToMatch": true }, { "id": "meta description", "type": "string", "display": true, "required": false, "displayName": "meta description", "defaultMatch": false, "canBeUsedToMatch": true }, { "id": "URL", "type": "string", "display": true, "removed": false, "required": false, "displayName": "URL", "defaultMatch": false, "canBeUsedToMatch": true } ], "mappingMode": "defineBelow", "matchingColumns": [ "URL" ], "attemptToConvertTypes": false, "convertFieldsToString": false }, "options": {}, "operation": "appendOrUpdate", "sheetName": { "__rl": true, "mode": "list", "value": 1784271309, "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1M3A5XS7kASYmFAhRWRIuH5bgdU711cYCiGkxrEgiJsQ/edit#gid=1784271309", "cachedResultName": "Sheet4" }, "documentId": { "__rl": true, "mode": "list", "value": "1M3A5XS7kASYmFAhRWRIuH5bgdU711cYCiGkxrEgiJsQ", "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1M3A5XS7kASYmFAhRWRIuH5bgdU711cYCiGkxrEgiJsQ/edit?usp=drivesdk", "cachedResultName": "WP Adminify site data before sep 7" } }, "credentials": { "googleSheetsOAuth2Api": { "id": "BHZiTn38wGOGTK86", "name": "Google Sheets account" } }, "typeVersion": 4.7 }, { "id": "465ed5f1-6a24-454f-8e15-b536eb5f0654", "name": "Loop Over Items", "type": "n8n-nodes-base.splitInBatches", "position": [ 736, 192 ], "parameters": { "options": {} }, "typeVersion": 3 }, { "id": "81163f56-f0b3-4b82-8535-e9c86f17e9af", "name": "When clicking ‘Execute workflow’", "type": "n8n-nodes-base.manualTrigger", "position": [ 64, 192 ], "parameters": {}, "typeVersion": 1 }, { "id": "e79ea547-93d8-4325-ad23-5a5b58ef266e", "name": "Get Sitemap XML", "type": "n8n-nodes-base.httpRequest", "position": [ 288, 192 ], "parameters": { "url": "https://example.com/sitemap.xml", "options": {} }, "typeVersion": 4.2 }, { "id": "2e18cc0f-d3bd-4267-9beb-c790491c121f", "name": "Split the title and url", "type": "n8n-nodes-base.code", "position": [ 512, 192 ], "parameters": { "jsCode": "// 1. Grab the raw XML string (adjust \"body\" vs \"data\" if needed)\nconst xml = items[0].json.body || items[0].json.data;\n\n// 2. Use a global regex to capture all <loc>…</loc> values\nconst urls = Array.from(\n xml.matchAll(/<loc>(.*?)<\\/loc>/g),\n match => match[1]\n);\n\n// 3. Emit one item per URL\nreturn urls.map(u => ({ json: { loc: u } }));\n" }, "typeVersion": 2 }, { "id": "5e8cc53a-07d9-4f36-9136-e316262d0afd", "name": "Get specific link html", "type": "n8n-nodes-base.httpRequest", "position": [ 960, 48 ], "parameters": { "url": "={{ $json.loc }}", "options": {} }, "typeVersion": 4.2 }, { "id": "25dcfa97-0ea6-42e0-b0de-ebba4d549bc2", "name": "Get the meta description", "type": "n8n-nodes-base.code", "position": [ 1184, 48 ], "parameters": { "jsCode": "// 1. Read raw HTML from the HTTP Request node\nconst html = items[0].json.body || items[0].json.data;\n\n// 2. Extract <title>…</title>\nconst titleMatch = html.match(/<title>([\\s\\S]*?)<\\/title>/i);\nconst title = titleMatch ? titleMatch[1].trim() : '';\n\n// 3. Extract <meta name=\"description\" content=\"…\"/>\nconst descMatch = html.match(\n /<meta\\b[^>]*\\bname=[\"']description[\"'][^>]*\\bcontent=[\"']([\\s\\S]*?)[\"']/i\n);\nconst description = descMatch ? descMatch[1].trim() : '';\n\n// 4. Return a single item with both fields\nreturn [\n {\n json: { title, description }\n }\n];\n" }, "typeVersion": 2 }, { "id": "cb0dccd4-1a14-4392-9b47-673086a584db", "name": "Sticky Note", "type": "n8n-nodes-base.stickyNote", "position": [ 96, -400 ], "parameters": { "width": 528, "height": 464, "content": "# 🔍 Sitemap Metadata Exporter\n\n**Purpose:** Automatically extracts the `<title>` and meta description from every URL in your sitemap and sends the data to Google Sheets.\n\n**Perfect for:** SEO audits, content inventories, and migration planning.\n\n---\n**How to Start:**\n1. Configure the `sitemap_url` in the HTTP Request node.\n2. Set up your Google Sheets credentials and node.\n3. Click **Execute Workflow**." }, "typeVersion": 1 }, { "id": "232e416e-ba6d-488e-9805-95e51602beb4", "name": "Sticky Note1", "type": "n8n-nodes-base.stickyNote", "position": [ 864, -512 ], "parameters": { "width": 624, "height": 464, "content": "# ⚙️ Configuration Required\n\n**Replace the Sitemap URL!**\n\n**Current Value:** `https://example.com/sitemap.xml`\n\n**Action:** Double-click this node and replace the URL with your actual, live sitemap URL (e.g., `https://yourwebsite.com/sitemap.xml`).\n\n\n**Connect your Google Sheet.**\n\n**Steps:**\n1. **Credentials:** Ensure you have Google Sheets OAuth2 credentials set up in n8n.\n2. **Document ID:** Paste your Google Sheet's ID here.\n3. **Sheet Name:** Select the correct sheet/tab from your spreadsheet.\n4. **Columns:** This node expects your sheet to have columns named:\n - `URL`\n - `Title`\n - `meta description`" }, "typeVersion": 1 }, { "id": "28eb6dfd-2bc3-48ab-a9ac-e325062d8913", "name": "Sticky Note3", "type": "n8n-nodes-base.stickyNote", "position": [ 1792, -224 ], "parameters": { "width": 400, "height": 336, "content": "# ⏸️ Rate Limiting\n\nThis wait node adds a pause between page fetches to avoid getting blocked by the server.\n\n**Default:** 2 seconds.\n\n**If you see `429 Too Many Requests` errors,** increase the wait time in this node's parameters." }, "typeVersion": 1 }, { "id": "54d6ad61-aa54-433a-8fba-2824168d9c05", "name": "Wait", "type": "n8n-nodes-base.wait", "position": [ 1856, 192 ], "webhookId": "6de7240c-a5e9-40ac-a371-f63db7cd90a3", "parameters": { "amount": 2 }, "typeVersion": 1.1 }, { "id": "7a23c4c2-06d7-45d9-b4d2-99310fe67915", "name": "Merge Meta Description with Title and URL", "type": "n8n-nodes-base.merge", "position": [ 1408, 128 ], "parameters": { "mode": "combine", "options": {}, "combineBy": "combineByPosition" }, "typeVersion": 3.2 } ], "pinData": {}, "connections": { "Wait": { "main": [ [ { "node": "Loop Over Items", "type": "main", "index": 0 } ] ] }, "Get Sitemap XML": { "main": [ [ { "node": "Split the title and url", "type": "main", "index": 0 } ] ] }, "Loop Over Items": { "main": [ [], [ { "node": "Get specific link html", "type": "main", "index": 0 }, { "node": "Merge Meta Description with Title and URL", "type": "main", "index": 1 } ] ] }, "Get specific link html": { "main": [ [ { "node": "Get the meta description", "type": "main", "index": 0 } ] ] }, "Split the title and url": { "main": [ [ { "node": "Loop Over Items", "type": "main", "index": 0 } ] ] }, "Get the meta description": { "main": [ [ { "node": "Merge Meta Description with Title and URL", "type": "main", "index": 0 } ] ] }, "Append or update row in sheet": { "main": [ [ { "node": "Wait", "type": "main", "index": 0 } ] ] }, "When clicking ‘Execute workflow’": { "main": [ [ { "node": "Get Sitemap XML", "type": "main", "index": 0 } ] ] }, "Merge Meta Description with Title and URL": { "main": [ [ { "node": "Append or update row in sheet", "type": "main", "index": 0 } ] ] } } }">密码<i class="far fa-copy ms-1"></i></button> </div> </div> </div> <div class="down-buy-info"> <ul class="list-group list-group-flush mt-3"> <li class="small text-muted list-group-item bg-white"><span>包含资源: </span> <span>(1个)</span></li> <li class="small text-muted list-group-item bg-white"><span>最近更新: </span> <span>2025-11-17</span></li> <li class="small text-muted list-group-item bg-white"><span>累计销量: </span> <span>81</span></li> <li class="small text-muted list-group-item bg-white"><span>节点: </span> <span>Manual Trigger, HTTP Request, Code, SplitInBatches, Merge, Google Sheets, Wait, Sticky Note</span></li> <li class="small text-muted list-group-item bg-white"><span>整理: </span> <span>AI自动化</span></li> </ul> <p class="text-muted mb-0 mt-3 small">用法说明:点击下载,工作流存入剪切板 进入自己的n8n新建工作流页面,粘贴即可。</p> </div> </div> </div><div id="block-2" class="widget widget_block widget_search"><form role="search" method="get" action="https://www.xmtup.com/" class="wp-block-search__button-outside wp-block-search__text-button wp-block-search" ><label class="wp-block-search__label" for="wp-block-search__input-1" >搜索</label><div class="wp-block-search__inside-wrapper" ><input class="wp-block-search__input" id="wp-block-search__input-1" placeholder="" value="" type="search" name="s" required /><button aria-label="搜索" class="wp-block-search__button wp-element-button" type="submit" >搜索</button></div></form></div><div id="block-3" class="widget widget_block"><div class="wp-block-group"><h2 class="wp-block-heading">近期文章</h2><ul class="wp-block-latest-posts__list wp-block-latest-posts"><li><a class="wp-block-latest-posts__post-title" href="https://www.xmtup.com/n8n-workflows/9644-automated-meeting-minutes-from-audio-using-openai-transcription-and-google-docs.html">AI会议摘要与邮件自动化工作流</a></li> <li><a class="wp-block-latest-posts__post-title" href="https://www.xmtup.com/n8n-workflows/9643-extract-business-card-data-and-generate-follow-ups-with-google-vision-ocr-and-gpt-4-mini.html">使用Jotform和Xero自动生成发票并发送客户提醒</a></li> <li><a class="wp-block-latest-posts__post-title" href="https://www.xmtup.com/n8n-workflows/9642-generate-invoices-for-customers-with-jotform-and-quickbooks.html">AI网站Logo生成器:基于URL自动创建品牌标识</a></li> <li><a class="wp-block-latest-posts__post-title" href="https://www.xmtup.com/n8n-workflows/9641-youtube-competitor-video-analytics-to-google-sheets.html">使用Jotform、Xero和Gmail为客户自动生成发票</a></li> <li><a class="wp-block-latest-posts__post-title" href="https://www.xmtup.com/n8n-workflows/9638-automated-email-digest-from-gmail-to-slack-with-gpt-4o-summary.html">LinkedIn和Twitter高级设计师职位自动搜索与Notion数据库保存工作流</a></li> </ul></div></div><div id="block-4" class="widget widget_block"><div class="wp-block-group"><h2 class="wp-block-heading">近期评论</h2><div class="no-comments wp-block-latest-comments">您尚未收到任何评论。</div></div></div> </div> </div> </div> </div> </main> <!-- **************** MAIN CONTENT END **************** --> <!-- ======================= Footer START --> <footer class="site-footer py-md-4 py-2 mt-2 mt-md-4"> <div class="container"> <div class="row d-none d-lg-flex mb-3"> <div class="col-md-4"> <div class="logo-wrapper"> </div> <div class="logo-wrapper"> <a rel="nofollow noopener noreferrer" href="https://www.xmtup.com/"><img class="logo regular lazyload" data-light="https://www.xmtup.com/wp-content/themes/ripro-v5/assets/img/logo.png" data-dark="https://www.xmtup.com/wp-content/themes/ripro-v5/assets/img/logo-dark.png" data-src="https://www.xmtup.com/wp-content/themes/ripro-v5/assets/img/logo.png" alt="AI自动化工作流与技术分享平台|n8n · Dify · Coze 高效整合与实战教程" src="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==" style="--smush-placeholder-width: 800px; --smush-placeholder-aspect-ratio: 800/380;"></a></div> <p class="small mb-0">探索 AI 与自动化的无限可能!本网站专注于 n8n、Dify、Coze 等低代码工作流平台的实战部署与集成教程,提供高效的 AI 应用方案、API 整合技巧与自动化思维分享,帮助开发者和团队快速构建智能化工作流。</p> </div> <div class="col-md-2"> <h4 class="widget-title">快速导航</h4> <ul class="list-unstyled widget-links"> <li><a href="https://www.xmtup.com/user">个人中心</a></li><li><a href="https://www.xmtup.com/tags">标签云</a></li><li><a href="https://www.xmtup.com/links">网址导航</a></li> </ul> </div> <div class="col-md-2"> <h4 class="widget-title">关于本站</h4> <ul class="list-unstyled widget-links"> <li><a href="https://www.xmtup.com/vip-prices">VIP介绍</a></li><li><a href="https://www.xmtup.com/user/ticket">客服咨询</a></li><li><a href="https://www.xmtup.com/user/aff">推广计划</a></li> </ul> </div> <div class="col-md-4"> <h4 class="widget-title">联系我们</h4> <div class=""><img width="80" height="80" data-src="https://www.xmtup.com/wp-content/themes/ripro-v5/assets/img/xmtup-qr.png" style="--smush-placeholder-width: 80px; --smush-placeholder-aspect-ratio: 80/80;float: left;" title="二维码" src="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==" class="lazyload"><img width="80" height="80" data-src="https://www.xmtup.com/wp-content/themes/ripro-v5/assets/img/xmtup-qr.png" style="--smush-placeholder-width: 80px; --smush-placeholder-aspect-ratio: 80/80;float: left;" title="二维码" src="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==" class="lazyload">如有BUG或建议可与我们在线联系或登录本站账号进入个人中心提交工单。</div> </div> </div> <div class="text-center small w-100"> <div>Copyright © 2023 <a target="_blank" href="https:/www.xmtup.com/">AI自动化</a> - All rights reserved</div> <div class=""><a href="https://beian.miit.gov.cn" target="_blank" rel="noreferrer nofollow">粤ICP备19016243号-21</a><a href="#" target="_blank" rel="noreferrer nofollow">粤ICP备19016243号-2</a></div> </div> </div> </footer> <!-- ======================= Footer END --> <!-- Back to top rollbar--> <div class="rollbar"> <ul class="actions"> <li><a target="" href="https://www.xmtup.com/" rel="nofollow noopener noreferrer"><i class="fas fa-home"></i><span>首页</span></a></li><li><a target="" href="https://www.xmtup.com/user" rel="nofollow noopener noreferrer"><i class="far fa-user"></i><span>用户中心</span></a></li><li><a target="" href="https://www.xmtup.com/vip-prices" rel="nofollow noopener noreferrer"><i class="fa fa-diamond"></i><span>会员介绍</span></a></li> </ul> </div> <div class="back-top"><i class="fas fa-caret-up"></i></div> <!-- m-navbar --> <div class="m-navbar"> <ul> <li><a target="" href="https://www.xmtup.com" rel="nofollow noopener noreferrer"><i class="fas fa-home"></i><span>首页</span></a></li><li><a target="" href="https://www.xmtup.com/tags" rel="nofollow noopener noreferrer"><i class="fas fa-layer-group"></i><span>分类</span></a></li><li><a target="" href="https://www.xmtup.com/vip-prices" rel="nofollow noopener noreferrer"><i class="far fa-gem"></i><span>会员</span></a></li><li><a target="" href="https://www.xmtup.com/user" rel="nofollow noopener noreferrer"><i class="fas fa-user"></i><span>我的</span></a></li> </ul> </div> <!-- dimmer--> <div class="dimmer"></div> <div class="off-canvas"> <div class="canvas-close"><i class="fas fa-times"></i></div> <!-- logo --> <div class="logo-wrapper"> <a rel="nofollow noopener noreferrer" href="https://www.xmtup.com/"><img class="logo regular lazyload" data-light="https://www.xmtup.com/wp-content/themes/ripro-v5/assets/img/logo.png" data-dark="https://www.xmtup.com/wp-content/themes/ripro-v5/assets/img/logo-dark.png" data-src="https://www.xmtup.com/wp-content/themes/ripro-v5/assets/img/logo.png" alt="AI自动化工作流与技术分享平台|n8n · Dify · Coze 高效整合与实战教程" src="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==" style="--smush-placeholder-width: 800px; --smush-placeholder-aspect-ratio: 800/380;"></a></div> <div class="mobile-menu d-block d-lg-none"></div> </div> <script type="speculationrules"> {"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/wp-content/uploads/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/ripro-v5/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]} </script> <script id="smush-detector-js-extra"> var smush_detector = {"ajax_url":"https://www.xmtup.com/wp-admin/admin-ajax.php","nonce":"4bde671985","is_mobile":"","data_store":{"type":"post-meta","data":{"post_id":3627}},"previous_data_version":"-1","previous_data_hash":"no-data"}; //# sourceURL=smush-detector-js-extra </script> <script src="https://www.xmtup.com/wp-content/plugins/wp-smush-pro/app/assets/js/smush-detector.min.js?ver=3.22.1" id="smush-detector-js"></script> <script src="https://www.xmtup.com/wp-content/themes/ripro-v5/assets/js/highlight.min.js?ver=11.7.0" id="highlight-js"></script> <script src="https://www.xmtup.com/wp-content/themes/ripro-v5/assets/js/vendor.min.js?ver=9.4" id="vendor-js"></script> <script id="main-js-extra"> var zb = {"home_url":"https://www.xmtup.com","ajax_url":"https://www.xmtup.com/wp-admin/admin-ajax.php","theme_url":"https://www.xmtup.com/wp-content/themes/ripro-v5","singular_id":"3627","post_content_nav":"1","site_popup_login":"1","site_notify_auto":"0","current_user_id":"0","ajax_nonce":"16dbe735c2","gettext":{"__copypwd":"\u5bc6\u7801\u5df2\u590d\u5236\u526a\u8d34\u677f","__copybtn":"\u590d\u5236","__copy_succes":"\u590d\u5236\u6210\u529f","__comment_be":"\u63d0\u4ea4\u4e2d...","__comment_succes":"\u8bc4\u8bba\u6210\u529f","__comment_succes_n":"\u8bc4\u8bba\u6210\u529f\uff0c\u5373\u5c06\u5237\u65b0\u9875\u9762","__buy_be_n":"\u8bf7\u6c42\u652f\u4ed8\u4e2d\u00b7\u00b7\u00b7","__buy_no_n":"\u652f\u4ed8\u5df2\u53d6\u6d88","__is_delete_n":"\u786e\u5b9a\u5220\u9664\u6b64\u8bb0\u5f55\uff1f"}}; //# sourceURL=main-js-extra </script> <script src="https://www.xmtup.com/wp-content/themes/ripro-v5/assets/js/main.min.js?ver=9.4" id="main-js"></script> <script src="https://www.xmtup.com/wp-includes/js/comment-reply.min.js?ver=6.9" id="comment-reply-js" async data-wp-strategy="async" fetchpriority="low"></script> <script id="smush-lazy-load-js-before"> var smushLazyLoadOptions = {"autoResizingEnabled":false,"autoResizeOptions":{"precision":5,"skipAutoWidth":true}}; //# sourceURL=smush-lazy-load-js-before </script> <script src="https://www.xmtup.com/wp-content/plugins/wp-smush-pro/app/assets/js/smush-lazy-load.min.js?ver=3.22.1" id="smush-lazy-load-js"></script> <!-- 自定义js代码 统计代码 --> <script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?4ffd2b16a09bcae62fcd59f8f17bfbaf"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script> <!-- 自定义js代码 统计代码 END --> </body> </html>