This workflow corresponds to n8n.io template #4646 — we link there as the canonical source.
This workflow follows the Chainllm → HTTP Request 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 →
{
"meta": {
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "2fe59e46-3223-4c68-880b-31218f9bf2de",
"name": "When clicking \u2018Execute workflow\u2019",
"type": "n8n-nodes-base.manualTrigger",
"position": [
-520,
340
],
"parameters": {},
"typeVersion": 1
},
{
"id": "df642b6e-2bbe-47d4-8ea9-35f136518936",
"name": "settings",
"type": "n8n-nodes-base.set",
"notes": "// IMPORTANT: Don't forget the trailing slash at the end, e.g., https://example.com/",
"position": [
-300,
340
],
"parameters": {},
"notesInFlow": true,
"typeVersion": 3.4
},
{
"id": "63b9e188-ac2e-4c97-a9d5-ac8c36fe1708",
"name": "OpenRouter Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
"position": [
1360,
580
],
"parameters": {},
"typeVersion": 1
},
{
"id": "6998e831-e666-4b7f-919e-6008f2386e23",
"name": "Structured Output Parser",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
1520,
580
],
"parameters": {},
"typeVersion": 1.2
},
{
"id": "255336bd-918b-41fa-80f9-5161c9438776",
"name": "Get Posts ID",
"type": "n8n-nodes-base.httpRequest",
"position": [
-80,
340
],
"parameters": {},
"typeVersion": 4.2
},
{
"id": "9bbad149-66a9-46c1-891c-9490aaa4b80a",
"name": "Update Post Metas",
"type": "n8n-nodes-base.httpRequest",
"position": [
1820,
540
],
"parameters": {},
"typeVersion": 4.2
},
{
"id": "d18cdaad-c607-4087-bbaf-189bf20a773c",
"name": "Post",
"type": "n8n-nodes-base.splitInBatches",
"position": [
400,
340
],
"parameters": {},
"typeVersion": 3
},
{
"id": "11cae1be-dd40-4784-b1a7-f605c4d37319",
"name": "Create Meta Infos",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"position": [
1340,
340
],
"parameters": {},
"typeVersion": 1.7
},
{
"id": "1a408ed7-e729-4dd0-b7de-4f1ebd67006d",
"name": "Finish \ud83d\ude80",
"type": "n8n-nodes-base.noOp",
"position": [
620,
80
],
"parameters": {},
"typeVersion": 1
},
{
"id": "ab72ab69-6581-4008-8ab3-5fba46c701e2",
"name": "Get post",
"type": "n8n-nodes-base.wordpress",
"position": [
620,
280
],
"parameters": {},
"typeVersion": 1
},
{
"id": "3a9a66d9-2b7a-4b6e-adff-661f23c8ac7d",
"name": "Should I Rewrite",
"type": "n8n-nodes-base.if",
"position": [
940,
360
],
"parameters": {},
"typeVersion": 2.2
},
{
"id": "201349c2-34be-42fd-a5c6-32bab332d8ab",
"name": "Limit",
"type": "n8n-nodes-base.limit",
"notes": "// TEST: Limits processing to 5 items. Disable/remove for production.",
"position": [
140,
340
],
"parameters": {},
"notesInFlow": true,
"typeVersion": 1
},
{
"id": "6eccc735-02a1-4b94-82ee-3fce532b46bd",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
80,
-120
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "f07e1094-0141-4340-b604-db33f14942cb",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-640,
-120
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "ba8680ad-c744-4568-bce9-323b6348ceb3",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
840,
-120
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "c8b6b8af-4ca5-413f-9de6-19d51ef5fa03",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
1280,
-120
],
"parameters": {
"content": ""
},
"typeVersion": 1
}
],
"connections": {
"Post": {
"main": [
[
{
"node": "Finish \ud83d\ude80",
"type": "main",
"index": 0
}
],
[
{
"node": "Get post",
"type": "main",
"index": 0
}
]
]
},
"Limit": {
"main": [
[
{
"node": "Post",
"type": "main",
"index": 0
}
]
]
},
"Get post": {
"main": [
[
{
"node": "Should I Rewrite",
"type": "main",
"index": 0
}
]
]
},
"settings": {
"main": [
[
{
"node": "Get Posts ID",
"type": "main",
"index": 0
}
]
]
},
"Get Posts ID": {
"main": [
[
{
"node": "Limit",
"type": "main",
"index": 0
}
]
]
},
"Should I Rewrite": {
"main": [
[
{
"node": "Create Meta Infos",
"type": "main",
"index": 0
}
],
[
{
"node": "Post",
"type": "main",
"index": 0
}
]
]
},
"Create Meta Infos": {
"main": [
[
{
"node": "Update Post Metas",
"type": "main",
"index": 0
}
]
]
},
"Update Post Metas": {
"main": [
[
{
"node": "Post",
"type": "main",
"index": 0
}
]
]
},
"OpenRouter Chat Model": {
"ai_languageModel": [
[
{
"node": "Create Meta Infos",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Structured Output Parser": {
"ai_outputParser": [
[
{
"node": "Create Meta Infos",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"When clicking \u2018Execute workflow\u2019": {
"main": [
[
{
"node": "settings",
"type": "main",
"index": 0
}
]
]
}
}
}
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
This n8n workflow, along with its companion WordPress plugin (), automates the bulk optimization of your WordPress posts' Rank Math SEO titles and descriptions using AI.
Source: https://n8n.io/workflows/4646/ — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
The best content automation in the market! This advanced workflow not only creates and publishes SEO-optimized blog posts to your WordPress website but also backs up all content and images to a design
The Ultimate Guide to Optimize WordPress Blog Posts with AI. Uses manualTrigger, googleSheets, openAi, wordpress. Event-driven trigger; 21 nodes.
This workflow automates the process of creating a complete SEO-optimized blog post, including generating content, titles, images, and meta tags, and publishing it on WordPress. It leverages AI models
Perplexity. Uses httpRequest, chainLlm, lmChatOpenRouter, wordpress. Event-driven trigger; 7 nodes.
This template is ideal for creators, bloggers, and automation enthusiasts who want to auto-generate blog posts from AI-generated content — without lifting a finger. Whether you're running a tech blog,