AI SEO 가독성 검토: 웹사이트의 LLM 친화성 확인
중급
이것은AI, Marketing분야의자동화 워크플로우로, 8개의 노드를 포함합니다.주로 Code, HttpRequest, ChainLlm, ChatTrigger, LmChatOpenAi 등의 노드를 사용하며인공지능 기술을 결합하여 스마트 자동화를 구현합니다. AI SEO 가독성 검토: 웹사이트가 대규모 언어 모델에 얼마나 친화적인지 확인
사전 요구사항
- •대상 API의 인증 정보가 필요할 수 있음
- •OpenAI API Key
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
"id": "qthXGkJCm1YAAQpW",
"meta": {
"instanceId": "c586b172acc6a68496c50087fe4c45ad1d861562820afb3dfa9dc2c12688d8c2",
"templateCredsSetupCompleted": true
},
"name": "AI SEO Readability Audit: Check Website Friendliness for LLMs",
"tags": [
{
"id": "JkpR8IEIpOrc2x6l",
"name": "Leonard van Hemert",
"createdAt": "2025-05-17T14:14:16.649Z",
"updatedAt": "2025-05-17T14:14:16.649Z"
}
],
"nodes": [
{
"id": "ea4c49eb-5a9d-4de9-acc7-3eef90b11f29",
"name": "채팅 메시지 수신 시",
"type": "@n8n/n8n-nodes-langchain.chatTrigger",
"position": [
-340,
-140
],
"webhookId": "f41e2ff4-b329-4c64-9147-963726a1eb76",
"parameters": {
"public": true,
"options": {
"title": "🚀 AI SEO Readability Checker",
"subtitle": "Test how AI-friendly your website is for search engines like ChatGPT & Perplexity – built by [Leonard van Hemert](https://nl.linkedin.com/in/leonard-van-hemert)",
"responseMode": "lastNode",
"inputPlaceholder": "https://example.com"
},
"initialMessages": "Hi! 👋 \nSend your website link and I’ll check how AI-friendly it is for tools like ChatGPT and Perplexity. Let’s go! 🚀"
},
"typeVersion": 1.1
},
{
"id": "0ede3abb-3cad-4e9a-bc8c-79d8eac06fe6",
"name": "웹사이트에서 HTML 가져오기",
"type": "n8n-nodes-base.httpRequest",
"position": [
100,
-140
],
"parameters": {
"url": "={{ $json.url }}",
"options": {
"timeout": 10000
},
"jsonHeaders": "{\n \"User-Agent\": \"Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)\",\n \"Accept-Language\": \"nl-NL,nl;q=0.9,en-US;q=0.8,en;q=0.7\"\n}",
"sendHeaders": true,
"specifyHeaders": "json"
},
"retryOnFail": true,
"typeVersion": 4.2,
"alwaysOutputData": true
},
{
"id": "96d8c97a-8d7b-41fb-a109-d56e34d7dff1",
"name": "웹사이트 URL 정리",
"type": "n8n-nodes-base.code",
"position": [
-120,
-140
],
"parameters": {
"jsCode": "return [\n {\n json: {\n url: (() => {\n let input = $json.chatInput.trim().toLowerCase();\n if (!input.startsWith('http')) input = 'https://' + input;\n return input;\n })()\n }\n }\n];"
},
"typeVersion": 2
},
{
"id": "2b8a702e-b141-4f71-9e8f-2caa69cfad80",
"name": "HTML 기능 추출",
"type": "n8n-nodes-base.code",
"position": [
320,
-140
],
"parameters": {
"jsCode": "const html = $json.data || '';\n\n// Remove scripts, styles, and extract visible text\nconst cleanedText = html\n .replace(/<script[\\s\\S]*?<\\/script>/gi, '')\n .replace(/<style[\\s\\S]*?<\\/style>/gi, '')\n .replace(/<[^>]*>/g, '') // strip all HTML tags\n .replace(/\\s+/g, ' ')\n .trim();\n\n// Preview: first 400 chars of visible content\nconst previewText = cleanedText.slice(0, 400);\n\n// Lowercased text for language-agnostic JS block detection\nconst lowerText = cleanedText.toLowerCase();\n\n// Common JS-related blocking messages (EN + NL + DE)\nconst jsBlockIndicators = [\n 'enable javascript',\n 'javascript is required',\n 'please enable javascript',\n 'javascript moet ingeschakeld zijn',\n 'schakel javascript in',\n 'javascript erforderlich'\n];\n\n// Scan for any of the indicators\nconst jsWarningDetected = jsBlockIndicators.some(phrase => lowerText.includes(phrase));\n\nreturn [\n {\n json: {\n visibleTextLength: cleanedText.length,\n previewText,\n hasH1: /<h1[\\s>]/i.test(html),\n hasH2: /<h2[\\s>]/i.test(html),\n hasH3: /<h3[\\s>]/i.test(html),\n hasMetaDescription: /<meta[^>]+name=[\"']description[\"']/i.test(html),\n hasOpenGraph: /<meta[^>]+property=[\"']og:/i.test(html),\n hasStructuredData: /<script[^>]*type=[\"']application\\/ld\\+json[\"']/i.test(html),\n hasNoscript: /<noscript[\\s>]/i.test(html),\n jsWarning: jsWarningDetected,\n robotsTxt: $('Sanitize Website URL').first().json.url.replace(/\\/$/, '') + '/robots.txt'\n }\n }\n];"
},
"typeVersion": 2
},
{
"id": "58591741-7896-4f0f-a5d6-a16efccdf4a3",
"name": "AI SEO 분석",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"position": [
540,
-140
],
"parameters": {
"text": "=You are an expert in AI SEO analysis and AI search engine accessibility.\n\nYou are evaluating a website’s readability for LLM-based tools like ChatGPT, Perplexity, and Google AI Overviews. The website's raw HTML was fetched *without JavaScript execution*, simulating how LLMs typically see pages.\n\n---\n\n### 🧾 Technical Scan Summary\n\n**Visible content (no JS):**\n- Text length: {{ $json.visibleTextLength }} characters\n- Preview: \"{{ $json.previewText }}\"\n\n**Detected features:**\n- Structured Data (JSON-LD): {{ $json.hasStructuredData }}\n- Meta Description: {{ $json.hasMetaDescription }}\n- Open Graph Metadata: {{ $json.hasOpenGraph }}\n- Headings: H1: {{ $json.hasH1 }}, H2: {{ $json.hasH2 }}, H3: {{ $json.hasH3 }}\n- `<noscript>` fallback present: {{ $json.hasNoscript }}\n- JavaScript-blocking warning found: {{ $json.jsWarning }}\n\n---\n\n### 🎯 Your task:\nEvaluate the AI-readability of this website and return:\n\n1. An **AI Readability Score (0–10)**\n2. A **brief summary** of the current state (2–4 sentences)\n3. Up to **5 actionable recommendations** to improve visibility and accessibility for AI search engines\n\n💡 If the text length is below 300 or the `JavaScript-blocking warning found` is true, clearly state that the site may not be accessible to LLMs due to JavaScript dependency.\n\n⚠️ **Important:**\nYou must also **tell the user** to check their `robots.txt` file manually, and provide this exact clickable link: \n👉 [{{ $json.robotsTxt }}]({{ $json.robotsTxt }}) \nExplain they must ensure bots like `GPTBot`, `ChatGPT-User`, and `Google-Extended` are **not blocked**.\n\nDo not perform this check yourself — just inform the user to do it.\n\n---\n\n🎁 Format your response like this:\n\n**Score:** x/10 \n**Summary:** ... \n**Recommendations:**\n- ...\n- Check your robots.txt file at [{{ $json.robotsTxt }}]({{ $json.robotsTxt }}) to ensure AI bots are allowed.",
"promptType": "define"
},
"typeVersion": 1.6
},
{
"id": "080e40e2-bfb3-42df-8f92-ac1379135aad",
"name": "스티커 메모",
"type": "n8n-nodes-base.stickyNote",
"position": [
-380,
20
],
"parameters": {
"color": 4,
"width": 740,
"height": 700,
"content": "# 🚀 AI SEO Readability Audit Workflow\n\n**Purpose:** This workflow analyzes a website's HTML to assess its readability and accessibility for Large Language Models (LLMs) like ChatGPT and Perplexity, which often crawl without executing JavaScript.\n\n**How it Works:**\n1. Enter a website URL in the chat.\n2. The workflow fetches the raw HTML (simulating a no-JS crawler).\n3. It extracts key SEO features (text content, headings, meta tags, etc.).\n4. An LLM (via OpenAI) analyzes these features to provide:\n - An AI Readability Score (0-10)\n - A summary of the site's AI-friendliness\n - Actionable recommendations\n - A reminder to check `robots.txt`\n\n**Setup Required:**\n- An **OpenAI Account & API Key**: Configure your credentials in the \"OpenAI Chat Model\" node.\n- **n8n Instance**: This workflow runs on any n8n instance (cloud or self-hosted).\n\n**To Use:**\n1. Ensure the \"OpenAI Chat Model\" node is configured with your API key.\n2. Activate the workflow.\n3. Open the chat URL provided by the \"When chat message received\" trigger.\n\n**Customization:**\n- **LLM Model:** Change the model in the \"OpenAI Chat Model\" node.\n- **Analysis Prompt:** Modify the prompt in the \"AI SEO Analysis\" node.\n\n🔗 *For more details on setup and customization, see the template description on n8n.io.*"
},
"typeVersion": 1
},
{
"id": "a737c2cb-1d6c-4e69-9d92-c7177c42049a",
"name": "스티커 메모1",
"type": "n8n-nodes-base.stickyNote",
"position": [
360,
260
],
"parameters": {
"width": 540,
"height": 460,
"content": "# **🚀 Developed by Leonard van Hemert** \n\nThank you for using this **AI SEO Readability Audit** workflow! 🎉 \n\nThis workflow was created to help users understand how AI tools \"see\" their websites and to provide actionable insights for improving AI-friendliness.\n\nIf you find this useful, feel free to **connect with me on LinkedIn** and stay updated on my latest AI & automation projects! \n\n🔗 **Follow me on LinkedIn**: [Leonard van Hemert](https://www.linkedin.com/in/leonard-van-hemert/) \n\nI truly appreciate the support from the **n8n community**, and I can’t wait to see how you use and improve this workflow! 🚀 \n\nHappy optimizing, \n**Leonard van Hemert** 💡"
},
"typeVersion": 1
},
{
"id": "7228e3be-1ef7-4f5a-bcb0-2a9299d53cfe",
"name": "OpenAI 채팅 모델",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
628,
80
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4o",
"cachedResultName": "gpt-4o"
},
"options": {
"temperature": 0.3
}
},
"credentials": {
"openAiApi": {
"id": "1OV4I35YEqCf9qI5",
"name": "OpenAI account"
}
},
"typeVersion": 1.2
}
],
"active": true,
"pinData": {},
"settings": {
"callerPolicy": "workflowsFromSameOwner",
"executionOrder": "v1",
"executionTimeout": 300
},
"versionId": "9e18a350-a243-4368-b3d3-746a55bceb24",
"connections": {
"58591741-7896-4f0f-a5d6-a16efccdf4a3": {
"main": [
[]
]
},
"7228e3be-1ef7-4f5a-bcb0-2a9299d53cfe": {
"ai_languageModel": [
[
{
"node": "58591741-7896-4f0f-a5d6-a16efccdf4a3",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"96d8c97a-8d7b-41fb-a109-d56e34d7dff1": {
"main": [
[
{
"node": "0ede3abb-3cad-4e9a-bc8c-79d8eac06fe6",
"type": "main",
"index": 0
}
]
]
},
"2b8a702e-b141-4f71-9e8f-2caa69cfad80": {
"main": [
[
{
"node": "58591741-7896-4f0f-a5d6-a16efccdf4a3",
"type": "main",
"index": 0
}
]
]
},
"0ede3abb-3cad-4e9a-bc8c-79d8eac06fe6": {
"main": [
[
{
"node": "2b8a702e-b141-4f71-9e8f-2caa69cfad80",
"type": "main",
"index": 0
}
]
]
},
"ea4c49eb-5a9d-4de9-acc7-3eef90b11f29": {
"main": [
[
{
"node": "96d8c97a-8d7b-41fb-a109-d56e34d7dff1",
"type": "main",
"index": 0
}
]
]
}
}
}자주 묻는 질문
이 워크플로우를 어떻게 사용하나요?
위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.
이 워크플로우는 어떤 시나리오에 적합한가요?
중급 - 인공지능, 마케팅
유료인가요?
이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.
관련 워크플로우 추천
자동화 뉴스-브리핑 AI 에이전트 v13
AI 뉴스 연구 팀: 24/7 브리핑 자동화, Perplexity 인용 포함
Set
Code
Gmail
+
Set
Code
Gmail
37 노드Derek Cheung
제품
AI个性化多제품이메일마케팅
基于SMTP轮换의AI个性化多제품이메일마케팅(GPT-4o/o3-mini)
If
Code
Wait
+
If
Code
Wait
41 노드Badr
영업
OpenAI, Google Sheets, Jina AI 및 Slack을 활용한 AI 기반 정보 모니터링
AI 기반 정보 모니터링 워크플로우로 OpenAI, Google Sheets, Jina AI 및 Slack을 통합합니다
If
Set
Code
+
If
Set
Code
31 노드Dataki
영업
블로그 자동화 템플릿
Google 시트에서 블로그 게시물 작성 및 게시
If
Set
Code
+
If
Set
Code
35 노드Daniel Nolde
인공지능
AI를 사용하여 WordPress 블로그 게시물에 태그 자동 추가
AI를 사용하여 WordPress 블로그 글에 자동 태그 지정
If
Set
Code
+
If
Set
Code
32 노드Ludwig
인공지능
블로그 WordPress 복제 판매
GPT-4, Perplexity AI 및 WordPress를 사용한 SEO 블로그 콘텐츠 생성 자동화
Set
Code
Notion
+
Set
Code
Notion
39 노드LukaszB
인공지능