ممیزی خودکار سئو با Decodo، GPT-4 و Google Sheets

ممیزی خودکار سئو با Decodo، GPT-4 و Google Sheets

12 دقیقه مطالعه · منتشر شده ۱۴۰۵/۵/۶

دانلود workflow

فایل JSON آماده import در n8n — credentialها باید در n8n شما تنظیم شوند.

  1. فایل JSON را دانلود کنید.
  2. در n8n: Workflows → Import from File.
  3. Credentialهای هر node را متصل کنید.
  4. workflow را فعال کنید.

شناسه workflow: 11402 · منبع: کاتالوگ Axeto

گردش کار ممیزی سئو: Decodo، GPT-4 و Google Sheets

این گردش کار فرآیند ممیزی صفحات وب برای مشکلات سئو، تولید خلاصه‌های اجرایی دوستانه و ذخیره نتایج را خودکار می‌کند. این ابزار از Decodo برای وب اسکرپینگ، GPT-4 برای تحلیل هوش مصنوعی و Google Sheets برای ورودی و خروجی استفاده می‌کند.

دسته‌بندی‌ها: تحقیقات بازار، خلاصه‌سازی هوش مصنوعی

کاتالوگ Axeto: https://axeto.ai/n8n

۱. نمای کلی گردش کار

هدف:

این گردش کار لیستی از صفحات وب را برای مشکلات سئو ممیزی می‌کند. این گردش کار URLها را از یک Google Sheet می‌خواند، هر صفحه را با استفاده از Decodo اسکرپ می‌کند، عناصر کلیدی سئو در صفحه (on-page) را از HTML استخراج می‌کند، از GPT-4 برای تولید خلاصه‌ای دوستانه برای مدیران از سئو در قالب JSON دقیق استفاده می‌کند، JSON را اعتبارسنجی و تعمیر می‌کند، سپس گزارش را از طریق جیمیل ایمیل می‌کند و نتایج را در یک Google Sheet ذخیره می‌کند.

موارد استفاده هدف:

  • نظارت مداوم سئو: به عنوان یک "نگهبان" برای مجموعه‌ای از صفحات وب حیاتی عمل می‌کند.
  • گزارش‌دهی مدیریتی: به سرعت خلاصه‌های سئو غیر فنی برای ذینفعان تولید می‌کند.
  • ممیزی دسته‌ای: لیستی از URLهای ارائه شده در یک صفحه گسترده را پردازش می‌کند.

بلوک‌های منطقی گردش کار:

1. دریافت ورودی: لیستی از URLها را از یک Google Sheet می‌خواند و آنها را برای پردازش فردی آماده می‌کند.

2. وب اسکرپینگ: محتوای HTML هر URL را با اطمینان با استفاده از Decodo واکشی می‌کند.

3. استخراج عناصر سئو: HTML را تجزیه و تحلیل می‌کند تا فیلدهای ضروری سئو (عنوان، توضیحات متا، H1/H2 و غیره) و متن قابل مشاهده را استخراج کند.

4. تحلیل هوش مصنوعی: از یک LangChain Agent با GPT-4 برای تولید یک گزارش JSON ساختاریافته استفاده می‌کند که یافته‌های سئو را خلاصه می‌کند.

5. پردازش خروجی: JSON تولید شده توسط هوش مصنوعی را اعتبارسنجی و پاکسازی می‌کند، گزارش ایمیلی را ارسال می‌کند و نتایج را قبل از رفتن به URL بعدی به یک Google Sheet اضافه می‌کند.

---

۲. جزئیات گره‌ها (Node Breakdown)

۲.۱ دریافت ورودی: Google Sheets تا پردازش دسته‌ای

مرور کلی:

این بخش گردش کار را به صورت دستی آغاز می‌کند، لیستی از URLها را از یک Google Sheet بازیابی کرده و یک حلقه برای پردازش هر URL به صورت جداگانه با استفاده از گره "Split in Batches" راه‌اندازی می‌کند.

گره‌ها:

  • Manual Trigger
  • Fetch URLs from Google Sheet
  • Process URLs one by one (SplitInBatches)

#### گره: Manual Trigger

  • نوع: Manual Trigger
  • نقش: نقطه ورود برای اجرای دستی گردش کار.
  • پیکربندی: پارامتر خاصی لازم نیست.
  • اتصالات:

* Output -> Fetch URLs from Google Sheet

  • حالت‌های شکست: ندارد (فقط به صورت دستی فعال می‌شود).

#### گره: Fetch URLs from Google Sheet

  • نوع: Google Sheets
  • نقش: لیست URLهایی را که باید ممیزی شوند از یک Google Sheet مشخص شده می‌خواند.
  • پیکربندی:

* Spreadsheet: فرض می‌شود نام آن "urls\_to\_scrape" باشد (کش شده).

* Sheet Tab: فرض می‌شود "Hoja 1" (gid=0) باشد.

* Data Location: برای خواندن داده‌ها از یک محدوده خاص پیکربندی شده است (جزئیات در JSON نشان داده نشده، از طریق رابط کاربری پیکربندی شده است).

  • فرض کلیدی داده: گردش کار انتظار یک ستون به نام urls را دارد که حاوی URLهای صفحات وب باشد. عبارت $('Fetch URLs from Google Sheet').item.json.urls به این مورد متکی است.
  • اتصالات:

* Input <- Manual Trigger

* Output -> Process URLs one by one

  • نسخه: 4.7
  • حالت‌های شکست:

* اعتبارنامه‌های Google OAuth نامعتبر یا منقضی شده.

* Spreadsheet یا Sheet Tab گم شده، یا مجوزهای ناکافی (مانند خطای 403).

* ستون حاوی URLها نام urls را نداشته باشد (نیاز به به‌روزرسانی عبارت دارد).

* یک Sheet خالی منجر به پردازش نشدن هیچ موردی در پایین دست نخواهد شد.

#### گره: Process URLs one by one (SplitInBatches)

  • نوع: SplitInBatches
  • نقش: تکرار را کنترل می‌کند و اطمینان می‌دهد که هر URL به صورت جداگانه پردازش می‌شود.
  • پیکربندی: از تنظیمات پیش‌فرض دسته استفاده می‌کند. اندازه دسته به طور صریح تنظیم نشده است، بنابراین رفتار پیش‌فرض n8n اعمال می‌شود.
  • اتصالات:

* Input <- Fetch URLs from Google Sheet

* Output (main, index 1) -> Decodo

* ورودی حلقه باز را دریافت می‌کند <- Save SEO Report to Google Sheets1 (برای ادامه به دسته بعدی)

  • نسخه: 3
  • حالت‌های شکست:

* اگر اتصال حلقه باز شکسته شود، ممکن است فقط دسته اول پردازش شود.

* اگر اندازه دسته بزرگتر از 1 تنظیم شود، چندین URL به صورت موازی توسط گره‌های بعدی پردازش می‌شوند، که ممکن است بر منطق مورد نظر برای به‌روزرسانی ایمیل و Sheet برای هر URL تأثیر بگذارد.

۲.۲ وب اسکرپینگ: Decodo

مرور کلی:

این گره از سرویس Decodo برای دریافت قابل اعتماد محتوای HTML برای هر URL ارائه شده استفاده می‌کند.

گره‌ها:

  • Decodo

#### گره: Decodo

  • نوع: Decodo Scraper
  • نقش: محتوای HTML یک صفحه وب را بازیابی می‌کند.
  • پیکربندی:

* URL: ={{ $('Fetch URLs from Google Sheet').item.json.urls }} - به صورت پویا به URL فعلی که از Sheet ورودی پردازش می‌شود، تنظیم می‌شود.

  • خروجی مورد انتظار: انتظار می‌رود گره محتوای HTML را که از طریق $json.results[0].content قابل دسترسی است، برگرداند.
  • اتصالات:

* Input <- Process URLs one by one

* Output -> Extract SEO Elements from HTML

  • نسخه: 1
  • حالت‌های شکست:

* اعتبارنامه‌های API Decodo نامعتبر.

* URL هدف غیرقابل دسترس باشد، زمان آن سپری شود، محتوای غیر HTML برگرداند، یا یک صفحه با جاوا اسکریپت سنگین باشد که HTML اولیه حداقلی را برمی‌گرداند.

* تغییرات در ساختار پاسخ API Decodo (مانند results[0].content تعریف نشده شود).

* فراتر رفتن از محدودیت‌های نرخ یا سهمیه‌های API Decodo.

۲.۳ استخراج عناصر سئو: HTML تا Payload فشرده

مرور کلی:

این گره کد، HTML خام به دست آمده از Decodo را تجزیه و تحلیل می‌کند، عناصر کلیدی مرتبط با SEO و بخشی از متن قابل مشاهده را استخراج می‌کند. خروجی یک فرمت فشرده و مناسب برای LLM است.

گره‌ها:

  • Extract SEO Elements from HTML (Code)

#### گره: Extract SEO Elements from HTML

  • نوع: Code (JavaScript)
  • نقش: HTML را برای استخراج فیلدهای خاص SEO و متن قابل مشاهده تجزیه می‌کند.
  • پیکربندی (تفسیر شده):

* Input HTML: از const html = $json?.results?.[0]?.content; می‌خواند.

* Extraction: از عبارات منظم برای یافتن موارد زیر استفاده می‌کند:

* محتوای تگ <title>.

* محتوای تگ <meta name="description" content="...">.

* محتوای تگ <link rel="canonical" href="...">.

* تگ‌های متا og:title و og:description.

* اولین تگ <h1> و تا اولین تگ <h2> (تا 15 مورد).

* تولید خروجی:

* یک شیء seo_fields حاوی داده‌های استخراج شده ایجاد می‌کند.

* text_excerpt را از 6000 کاراکتر اول متن قابل مشاهده تولید می‌کند.

* seo_compact_text را می‌سازد، که یک رشته با جداکننده خط جدید مناسب برای ورودی LLM است.

* مدیریت خطا: اگر ورودی HTML گم شده یا نامعتبر باشد، خروجی seo_compact_text: "NO_HTML_INPUT" را تولید کرده و فیلدهای SEO را null قرار می‌دهد.

  • خروجی‌های کلیدی:

* json.seo_compact_text: Payload متنی برای LLM.

* json.seo_fields: شیء حاوی داده‌های ساختاریافته SEO.

  • اتصالات:

* Input <- Decodo

* Output -> Generate AI SEO Executive Summary

  • نسخه: 2
  • حالت‌های شکست:

* HTML نامعتبر یا قالب‌بندی غیرمعمول ویژگی‌ها ممکن است باعث شکست استخراج عبارت منظم شود.

* فقط اولین <h1> در صورت وجود موارد متعدد، ثبت می‌شود.

* تگ‌های متا با فاصله یا نقل قول غیر استاندارد ممکن است از قلم بیفتند.

* پردازش اسناد HTML بسیار بزرگ، حتی با استخراج متن، می‌تواند منابع زیادی مصرف کند.

* رمزگشایی اساسی موجودیت ممکن است تمام رمزگذاری‌های کاراکتر را به درستی مدیریت نکند.

۲.۴ تحلیل هوش مصنوعی: خلاصه اجرایی SEO با LLM

مرور کلی:

این بخش از یک LangChain Agent که توسط مدل GPT-4 OpenAI پشتیبانی می‌شود، برای تجزیه و تحلیل داده‌های SEO استخراج شده و تولید یک خلاصه مختصر در سطح اجرایی در قالب JSON استفاده می‌کند.

گره‌ها:

  • OpenAI Chat Model
  • Generate AI SEO Executive Summary (LangChain Agent)

#### گره: OpenAI Chat Model

  • نوع: LangChain OpenAI Chat Model
  • نقش: مدل GPT-4 را برای LangChain Agent فراهم می‌کند.
  • پیکربندی:

* Model: gpt-4.1-mini

  • اتصالات:

* AI languageModel output -> Generate AI SEO Executive Summary (به عنوان مدل عامل)

  • نسخه: 1.3
  • حالت‌های شکست:

* خطاهای احراز هویت API OpenAI.

* عدم دسترسی مدل یا تغییر نام‌ها.

* محدودیت‌های نرخ API یا محدودیت‌های توکن (خلاصه متن 6000 کاراکتری به کاهش این مورد کمک می‌کند).

#### گره: Generate AI SEO Executive Summary

  • نوع: LangChain Agent
  • نقش: LLM را با داده‌های SEO پرامپت می‌کند و آن را برای بازگرداندن یک گزارش JSON دستور می‌دهد.
  • پیکربندی:

* Text Input: ={{ $json.seo_compact_text }} - داده‌های SEO استخراج شده.

* System Message: به LLM دستور می‌دهد تا لحن اجرایی را اتخاذ کند و فقط JSON معتبر را خروجی دهد. طرحواره JSON مورد انتظار شامل موارد زیر است:

* overall_status: "good", "needs_attention", یا "critical".

* top_issues: آرایه‌ای از حداکثر 5 مشکل کلیدی.

* quick_wins: آرایه‌ای از حداکثر 5 پیشنهاد عملی.

* title_recommendation: محتوای تگ عنوان پیشنهادی یا null.

* meta_description_recommendation: محتوای توضیحات متا پیشنهادی یا null.

* notes: هرگونه مشاهدات اضافی مرتبط یا null.

* Rules: به LLM دستور داده می‌شود که مختصر باشد، از markdown و ایموجی‌ها اجتناب کند و هرگونه اطلاعات گم شده را در فیلد notes ذکر کند.

  • اتصالات:

* Main Input <- Extract SEO Elements from HTML

* AI model input <- OpenAI Chat Model

* Main Output -> Parse & Validate AI JSON Output

  • حالت‌های شکست:

* LLM ممکن است همچنان محتوای غیر JSON (مانند متن اضافی، بلوک‌های کد) را خروجی دهد. این توسط گره تجزیه بعدی مدیریت می‌شود.

* اگر seo_compact_text برابر "NO_HTML_INPUT" باشد، LLM باید این موضوع را گزارش دهد؛ اطمینان حاصل کنید که محتوای صفحه را توهم نمی‌کند.

۲.۵ پردازش خروجی: تجزیه، ارسال ایمیل و ذخیره

مرور کلی:

این بخش نهایی خروجی JSON LLM را پاکسازی می‌کند، یک گزارش ایمیل قالب‌بندی شده ارسال می‌کند و نتایج را در یک Google Sheet ذخیره می‌کند. سپس برای پردازش URL بعدی به عقب حلقه می‌زند.

گره‌ها:

  • Parse & Validate AI JSON Output (Code)
  • Send SEO Report by Email (Gmail)
  • Save SEO Report to Google Sheets1 (Google Sheets)

#### گره: Parse & Validate AI JSON Output

  • نوع: Code (JavaScript)
  • نقش: خروجی JSON LLM را پاکسازی و اعتبارسنجی می‌کند و سعی در تعمیر مشکلات رایج قالب‌بندی دارد.
  • پیکربندی (تفسیر شده):

* Input: از item.json.output می‌خواند یا به item.json بازمی‌گردد.

* Cleaning: سه بک‌تیک پیشرو/پسرو (``json ... `) را حذف می‌کند و اولین شیء JSON یافت شده بین { و }` را استخراج می‌کند.

* Repair: با حذف کاراکترهای BOM و کاماهای پایانی قبل از بستن آکولاد یا کروشه، سعی در رفع خطاهای تجزیه JSON دارد.

* Output: خروجی را به صورت { json: parsedObject } قالب‌بندی می‌کند.

  • اتصالات:

* Input <- Generate AI SEO Executive Summary

* Output -> Send SEO Report by Email

  • نسخه: 2
  • حالت‌های شکست:

* اگر خروجی LLM حاوی چندین شیء JSON یا آکولاد در متن باشد، منطق استخراج ممکن است یک بازه نامعتبر را ثبت کند.

* اگر LLM به جای یک شیء، آرایه‌ای را برگرداند، ساختار مورد انتظار ممکن است شکسته شود.

* اگر هیچ آکولاد JSON ({}) یافت نشود، گردش کار خطا خواهد داد.

#### گره: Send SEO Report by Email

  • نوع: Gmail
  • نقش: گزارش خلاصه اجرایی SEO را به یک گیرنده مشخص ارسال می‌کند.
  • پیکربندی:

* To: user@example.com (نگهدارنده مکان - باید جایگزین شود با آدرس ایمیل گیرنده واقعی).

* Subject: گزارش نگهبان سئو — {{$now}}

* Message: از یک قالب HTML ثابت استفاده می‌کند. توجه: محتوای قالب فعلی یک مثال است و فیلدهای تولید شده توسط هوش مصنوعی را به طور پویا شامل نمی‌شود. این نیاز به سفارشی‌سازی برای بازتاب داده‌های گزارش واقعی دارد.

  • اتصالات:

* Input <- Parse & Validate AI JSON Output

* Output -> Save SEO Report to Google Sheets1

  • نسخه: 2.2
  • حالت‌های شکست:

* اعتبارنامه‌های OAuth Gmail منقضی شده یا نامعتبر.

* محدودیت‌های ارسال Gmail، محدودیت‌های فرستنده، یا مشکلات دامنه.

* قالب HTML ثابت محتوای مثال یکسان را برای هر URL ارسال می‌کند مگر اینکه با عباراتی برای گنجاندن داده‌های پویا از تحلیل هوش مصنوعی به‌روز شود.

#### گره: Save SEO Report to Google Sheets1

  • نوع: Google Sheets (Append Row)
  • نقش: نتایج ممیزی SEO پردازش شده، از جمله URL را به یک Google Sheet خروجی اضافه می‌کند.
  • پیکربندی (تفسیر شده):

* Operation: Append

* Spreadsheet: فرض می‌شود نام آن "SEO Analyzer" باشد (کش شده).

* Sheet Tab: فرض می‌شود "Hoja 1" (gid=0) باشد.

* Column Mapping: داده‌های گردش کار را با استفاده از عبارات به ستون‌های Spreadsheet نگاشت می‌کند:

* brand_url -> {{ $('Fetch URLs from Google Sheet').item.json.urls }}

* status -> {{ $('Parse & Validate AI JSON Output').item.json.overall_status }}

* top_issues -> {{ $('Parse & Validate AI JSON Output').item.json.top_issues }}

* quick_wins -> {{ $('Parse & Validate AI JSON Output').item.json.quick_wins }}

* title_recommendation -> {{ $('Parse & Validate AI JSON Output').item.json.title_recommendation }}

* meta_description -> {{ $('Parse & Validate AI JSON Output').item.json.meta_description_recommendation }}

* notes -> {{ $('Parse & Validate AI JSON Output').item.json.notes }}

  • اتصالات:

* Input <- Send SEO Report by Email

* Output -> Process URLs one by one (سیگنال حلقه باز را برای ادامه فراهم می‌کند)

  • نسخه: 4.7
  • حالت‌های شکست:

* اعتبارنامه‌های Google OAuth نامعتبر یا منقضی شده.

* Spreadsheet خروجی یا Sheet Tab گم شده، یا مجوزهای ناکافی.

* نام ستون‌ها در Google Sheet باید با نام‌های هدف مشخص شده در پیکربندی گره مطابقت داشته باشد.

Nodeهای استفاده‌شده

سوالات متداول

این گردش کار n8n چه کاری انجام می‌دهد؟

این گردش کار فرآیند ممیزی صفحات وب برای مشکلات سئو را خودکار می‌کند. از Decodo برای جمع‌آوری محتوا، GPT-4 برای تحلیل و خلاصه‌سازی نتایج و Google Sheets برای ذخیره گزارش‌ها استفاده می‌کند.

چه ابزارهایی در این گردش کار استفاده شده‌اند؟

ابزارهای اصلی مورد استفاده عبارتند از: Decodo برای وب اسکرپینگ، GPT-4 (از طریق LangChain Agent) برای تحلیل هوش مصنوعی و Google Sheets برای ورودی و خروجی داده‌ها. همچنین از گره‌های n8n مانند Manual Trigger و SplitInBatches استفاده می‌شود.

موارد استفاده اصلی این گردش کار چیست؟

موارد استفاده اصلی شامل نظارت مداوم سئو بر صفحات وب حیاتی، تولید سریع خلاصه‌های سئو غیر فنی برای مدیران و پردازش دسته‌ای لیستی از URLها برای ممیزی سئو است.

چگونه نتایج ممیزی سئو ذخیره و گزارش می‌شوند؟

نتایج تحلیل شده توسط GPT-4 به صورت JSON ساختاریافته تولید شده، اعتبارسنجی و پاکسازی می‌شوند. سپس گزارش از طریق ایمیل ارسال شده و نتایج نهایی در یک Google Sheet ذخیره می‌گردند.

workflowهای مرتبط

این workflow در کاتالوگ Axeto.ai بایگانی شده است. لایسنس اصلی متعلق به سازنده workflow است.