SHET22

بررسی دلیل کند شدن وردپرس با افزونه Query Monitor

بررسی دلیل کند شدن وردپرس با افزونه Query Monitor

اگه سایت وردپرسیتون کند شده، با حدس زدن به نتیجه دقیقی نمی‌رسید. بهتره اول ببینید تأخیر دقیقاً از کجا میاد؛ شاید یک افزونه یا قالب سنگین باشه، شاید یک کوئری دیتابیس زمان زیادی بگیره یا شاید سایت منتظر پاسخ یک سرویس بیرونی بمونه. افزونه Query Monitor این اطلاعات فنی رو جمع می‌کنه و توی یک پنل بهتون نشون می‌ده.

توی این آموزش قدم‌به‌قدم یاد می‌گیرید Query Monitor رو چطور نصب کنید، اطلاعات مهمش رو بخونید و به عامل احتمالی کندی برسید. یادتون باشه این افزونه فقط برای تشخیص مشکله و چیزی رو خودکار تعمیر نمی‌کنه. وقتی عامل کندی مشخص شد، باید افزونه، قالب یا کد مسئول رو جداگانه بررسی کنید.

بررسی دلیل کند شدن وردپرس

کندی سایت همیشه یک دلیل مشخص نداره. افزونه یا قالب سنگین، کوئری کند دیتابیس، درخواست خارجی طولانی و خطاهای PHP از دلیل‌های رایج هستن. پس قبل از اینکه افزونه‌ها رو حذف کنید یا تنظیمات سایت رو تغییر بدید، بهتره اطلاعات واقعی همون صفحه کند رو ببینید.

برای آشنایی با علت‌های رایج، راهنمای دلیل کند بودن سرعت سایت وردپرسی مسیر کامل‌تری جلوی پاتون می‌ذاره. برای سنجش تجربه واقعی کاربر هم می‌تونید از Google PageSpeed Insights کمک بگیرید. Query Monitor بیشتر اتفاق‌های داخل وردپرس رو بررسی می‌کنه تا منشأ فنی مشکل رو پیدا کنید.

افزونه Query Monitor چیه

آشنایی با افزونه Query Monitor
آشنایی با افزونه Query Monitor

Query Monitor یک افزونه رایگان و متن‌باز برای عیب‌یابی وردپرسه. عیب‌یابی یعنی اطلاعات پشت صحنه سایت رو ببینید و بفهمید خطا یا کندی از کجا میاد. این افزونه اطلاعات هر درخواست رو از طریق نوار مدیریت وردپرس در اختیارتون می‌ذاره.

Query Monitor کوئری‌های دیتابیس، خطاهای PHP، هوک‌ها، درخواست‌های HTTP، فایل‌های ترجمه، اسکریپت‌ها، استایل‌ها، اطلاعات محیط و دسترسی‌های کاربر رو بررسی می‌کنه. نسخه ۴ رابط تازه و نمای Timeline هم داره. Timeline یا «خط زمانی» نشون می‌ده بخش‌های مختلف پردازش صفحه با چه ترتیبی اجرا شدن و هر بخش تقریباً چقدر طول کشیده.

این افزونه درباره بخش‌های جدیدتر وردپرس مثل بلوک‌های ویرایشگر، قالب‌های بلوکی و ویرایش کامل سایت هم اطلاعات می‌ده. البته لازم نیست از همون اول معنی همه گزینه‌ها رو بدونید. برای شروع، Timeline، کوئری‌های دیتابیس، خطاهای PHP و درخواست‌های HTTP معمولاً اطلاعات کاربردی‌تری بهتون می‌دن.

پیش‌نیازهای نصب Query Monitor

طبق صفحه رسمی افزونه در زمان به‌روزرسانی این مقاله، نسخه فعلی Query Monitor به وردپرس ۶.۲ یا بالاتر و PHP ۷.۴ یا بالاتر نیاز داره. توسعه‌دهنده افزونه قصد داره از نسخه‌های وردپرس منتشرشده در سه سال اخیر پشتیبانی کنه و افزونه با PHP تا نسخه ۸.۵ آزمایش شده. این شرایط ممکنه توی نسخه‌های بعدی عوض بشه، پس قبل از نصب حتماً نیازمندی‌های نوشته‌شده توی صفحه رسمی افزونه رو هم بررسی کنید.

بهتره قبل از شروع از سایتتون نسخه پشتیبان بگیرید و افزونه رو اول روی یک محیط آزمایشی امتحان کنید. محیط آزمایشی یا Staging یک کپی جدا از سایته و تغییراتی که توی اون انجام می‌دید روی بازدیدکننده‌های سایت اصلی اثری نمی‌ذاره.

Query Monitor چه اطلاعاتی نشون می‌ده

کوئری‌های دیتابیس

کوئری‌های دیتابیس در افزونه Query Monitor
کوئری‌های دیتابیس در افزونه Query Monitor

کوئری یک دستور یا درخواسته که وردپرس برای خواندن یا تغییر اطلاعات به دیتابیس می‌فرسته. Query Monitor زمان اجرای هر کوئری، تعداد ردیف‌های نتیجه و بخشی که اون رو اجرا کرده نشون می‌ده. با این اطلاعات راحت‌تر می‌فهمید کدوم افزونه، قالب یا تابع فشار بیشتری به دیتابیس وارد می‌کنه.

  • نمایش کوئری‌هایی که توی درخواست فعلی اجرا شدن
  • نمایش زمان اجرا و تعداد ردیف‌های هر کوئری
  • مشخص کردن کوئری‌های کند، تکراری یا دارای خطا
  • فیلتر کردن کوئری‌ها براساس نوع‌هایی مثل SELECT، UPDATE و DELETE
  • گروه‌بندی کوئری‌ها براساس افزونه، قالب، هسته وردپرس یا تابع فراخواننده
  • نمایش اطلاعات چند اتصال wpdb توی یک صفحه

نمای Timeline

نمای Timeline در افزونه Query Monitor
نمای Timeline در افزونه Query Monitor

Timeline رویدادهای اصلی یک درخواست رو به‌ترتیب روی یک خط زمانی می‌چینه. اگه بخشی از نمودار بیش‌ازحد طول کشیده، می‌تونید همون بازه رو با پنل کوئری‌ها، درخواست‌های HTTP یا افزونه‌های درگیر مقایسه کنید. این بخش برای پیدا کردن گلوگاه خیلی به کارتون میاد؛ گلوگاه همون مرحله‌ایه که بیشتر از بقیه منتظرتون می‌ذاره.

هوک‌ها

نمای بلوک‌ها در افزونه Query Monitor
نمای هوک‌ها در افزونه Query Monitor

هوک نقطه‌ای توی روند اجرای وردپرسه که افزونه یا قالب می‌تونه کد خودش رو به اون وصل کنه. Query Monitor هوک‌های اجراشده توی درخواست فعلی رو نشون می‌ده و می‌تونید اون‌ها رو براساس نام، افزونه، قالب یا هسته وردپرس فیلتر کنید.

قالب و بلوک‌ها

بررسی دلیل کند شدن وردپرس با افزونه Query Monitor
نمای بلوک‌ها در افزونه Query Monitor

توی این بخش می‌تونید فایل قالب مربوط به صفحه فعلی، نام قالب فعال، بخش‌های استفاده‌شده قالب و کلاس‌های بدنه رو ببینید. Query Monitor درباره بلوک‌های ویرایشگر، قالب‌های بلوکی و ویرایش کامل سایت هم اطلاعاتی بهتون می‌ده. این داده‌ها زمانی مفیدن که کندی فقط توی یک برگه، نوشته یا قالب خاص دیده می‌شه.

خطاهای PHP

Query Monitor خطاها، هشدارها و پیام‌های مربوط به کدهای منسوخ PHP رو همراه با محل ایجادشون نشون می‌ده. کد منسوخ بخشی از کده که شاید هنوز کار کنه، ولی برای نسخه‌های جدید پیشنهاد نمی‌شه و ممکنه در آینده حذف بشه.

با به‌روزرسانی PHP، کدهای قالب و افزونه‌ها خودکار ارتقا پیدا نمی‌کنن. اگه افزونه یا قالبی با نسخه جدید PHP سازگار نباشه، توسعه‌دهنده همون محصول باید کدش رو اصلاح کنه. پس قبل از تغییر نسخه PHP، نسخه پشتیبان بگیرید و سازگاری قالب و افزونه‌های مهم رو بررسی کنید. برای آشنایی بیشتر با این کار می‌تونید آموزش Debug کردن وردپرس رو هم بخونید.

درخواست‌های HTTP

نمای درخواست‌های HTTP در افزونه Query Monitor
نمای درخواست‌های HTTP در افزونه Query Monitor

درخواست HTTP یعنی سایتتون با یک آدرس یا سرویس دیگه ارتباط برقرار می‌کنه؛ مثلاً افزونه‌ای برای بررسی لایسنس یا گرفتن اطلاعات به سرور خودش وصل می‌شه. Query Monitor مدت انتظار، آدرس مقصد و نتیجه این درخواست‌ها رو نشون می‌ده و پاسخ‌های ناموفق رو هم مشخص می‌کنه.

اگه یک درخواست خارجی چند ثانیه طول بکشه، ممکنه زمان بارگذاری صفحه یا پیشخوان رو بالا ببره. ولی قبل از غیرفعال کردنش باید بفهمید کدوم افزونه اون رو فرستاده و حذفش روی قابلیت مهمی اثر می‌ذاره یا نه. برای بررسی تأخیر پاسخ اولیه سرور هم می‌تونید راهنمای TTFB و روش‌های کاهش اون رو بخونید.

نصب و راه‌اندازی افزونه Query Monitor

توی پیشخوان وردپرس به بخش «افزونه‌ها ← افزودن افزونه تازه» برید. عبارت Query Monitor رو جست‌وجو کنید و افزونه‌ای با همین نام رو پیدا کنید. بعد روی «هم‌اکنون نصب نمایید» بزنید و وقتی نصب تموم شد، دکمه «فعال‌سازی» رو انتخاب کنید. اگه با نصب افزونه آشنا نیستید، راهنمای نصب افزونه در وردپرس رو ببینید.

نصب افزونه Query Monitor
نصب افزونه Query Monitor

بعد از فعال‌سازی، یک گزینه تازه توی نوار مدیریت بالای صفحه می‌بینید. عنوان این گزینه معمولاً چند عدد خلاصه مثل زمان تولید صفحه، مصرف حافظه یا تعداد کوئری‌ها رو نشون می‌ده. روی همون گزینه بزنید تا پنل کامل Query Monitor باز بشه.

بررسی دلیل کند شدن وردپرس با افزونه Query Monitor
بررسی دلیل کند شدن وردپرس با افزونه Query Monitor

چطور عامل کندی رو با Query Monitor پیدا کنیم

  1. با حساب مدیر وارد سایت بشید و صفحه‌ای رو باز کنید که کند شده.
  2. از نوار مدیریت، پنل Query Monitor رو باز کنید.
  3. اول Timeline رو ببینید و دنبال بخش‌هایی بگردید که زمان بیشتری گرفتن.
  4. پنل Database Queries رو باز کنید و کوئری‌های کند یا تکراری رو ببینید.
  5. از ستون Caller یا Component کمک بگیرید تا افزونه، قالب یا تابع مسئول رو پیدا کنید.
  6. پنل HTTP API Calls رو بررسی کنید و درخواست‌های طولانی یا ناموفق رو پیدا کنید.
  7. پنل PHP Errors رو ببینید و خطاها، هشدارها یا پیام‌های منسوخ رو یادداشت کنید.
  8. همین مراحل رو برای چند صفحه دیگه هم تکرار کنید؛ چون نتیجه یک صفحه لزوماً وضعیت کل سایت رو نشون نمی‌ده.

برای نمونه، اگه چند کوئری کند همگی به یک افزونه مربوط باشن، اون افزونه یکی از مظنون‌های اصلیه. بااین‌حال، هنوز نمی‌تونید اون رو دلیل قطعی بدونید. افزونه رو اول توی محیط آزمایشی غیرفعال کنید، صفحه رو دوباره بسنجید و نتیجه قبل و بعد رو کنار هم بذارید.

اگه مشکل به فایل‌های CSS یا JavaScript یک افزونه مربوطه، آموزش حذف CSS و JS اضافی افزونه در وردپرس می‌تونه قدم بعدی خوبی باشه. اگه کندی به درخواست‌های AJAX ربط داره، راهنمای افزایش سرعت admin-ajax.php در وردپرس رو هم بررسی کنید.

نکات مهم بعد از عیب‌یابی

  • فقط با دیدن تعداد زیاد کوئری‌ها تصمیم نگیرید؛ زمان اجرا و نوع هر کوئری هم مهمه.
  • افزونه یا قالب رو مستقیم از سایت اصلی حذف نکنید. اول نتیجه رو توی محیط آزمایشی بسنجید.
  • اگه با کدنویسی آشنا نیستید، خطاهای PHP رو دست‌کاری نکنید. گزارش خطا و مسیر فایل رو برای توسعه‌دهنده بفرستید.
  • Query Monitor ممکنه مسیر فایل‌ها و جزئیات فنی محیط سایت رو نشون بده؛ پس تصویر کامل پنل رو جایی عمومی منتشر نکنید.
  • خروجی افزونه به‌صورت پیش‌فرض فقط به مدیر سایت نشون داده می‌شه، ولی بهتره بعد از پایان بررسی دوباره ببینید فعال موندن افزونه لازمه یا نه.
  • برای سنجش سرعت واقعی سایت فقط به Query Monitor تکیه نکنید و یک تست سرعت بیرونی هم بگیرید.

اگه Query Monitor نشون داد فایل‌های ترجمه بخش زیادی از زمان پردازش صفحه رو می‌گیرن، راهنمای بهبود سرعت وردپرس با افزونه Performant Translations رو هم ببینید.

جمع‌بندی

Query Monitor ابزار کاربردی‌ایه که بهتون کمک می‌کنه منشأ خطا و کندی داخل وردپرس رو پیدا کنید. این افزونه اطلاعات کوئری‌های دیتابیس، خطاهای PHP، درخواست‌های HTTP، هوک‌ها، قالب، بلوک‌ها و Timeline رو جلوی چشمتون می‌ذاره. ولی خودش سایت رو سریع نمی‌کنه و خطاها رو هم خودکار برطرف نمی‌کنه.

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

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

آیا Query Monitor خودش سرعت سایت رو بالا می‌بره؟

نه. Query Monitor فقط یک ابزار تشخیصه و اطلاعات لازم برای پیدا کردن عامل کندی رو نشون می‌ده. بعد از تشخیص مشکل، باید افزونه، قالب، کوئری یا کد مسئول رو جداگانه اصلاح کنید.

آیا افراد مبتدی هم می‌تونن از Query Monitor استفاده کنن؟

بله، ولی بهتره کار رو با بخش‌های ساده‌تر مثل Timeline، کوئری‌های کند، خطاهای PHP و درخواست‌های HTTP شروع کنید. برای تغییر کد یا دیتابیس هم از یک فرد متخصص کمک بگیرید.

می‌شه Query Monitor رو روی سایت اصلی نصب کرد؟

بله، ولی بهتره بررسی‌های طولانی و تغییرات آزمایشی رو توی محیط Staging انجام بدید. اطلاعات پنل رو هم عمومی منتشر نکنید، چون ممکنه جزئیات فنی سایتتون رو نشون بده.

بازدیدکننده‌ها پنل Query Monitor رو می‌بینن؟

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

نظر شما در این مورد چیه؟

  1. U412813۱۹ اردیبهشت ۱۴۰۵

    باسلام
    ایا کارایی همان سرچ کنسول دارد؟

    • تیم پشتیبانیتیم پشتیبانی۲۲ اردیبهشت ۱۴۰۵

      سرچ کنسول ابزار گوگل برای نظارت بر سئو محتوای سایت است.

  2. U339146۴ شهریور ۱۴۰۴

    سلام و خداقوت
    من قسمت دستور کران جاب که در دوره سایت برتر گفتید رو اجرا کردم که قبلش 6 تا خطای HTTP API Calls داشتم و بعدش 2 تا خطا باقی موند که متعلق به قالب اهورا هست برای رفع این دو خطا چه کنم ؟

    • رضا راد۶ شهریور ۱۴۰۴

      سلام متن خطاها رو بفرستین لطفا

  3. U335745۵ دی ۱۴۰۲

    سلام من مشکل slow queries دارم چطور میشه حل کرد

    • رضا راد۵ دی ۱۴۰۲

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

  4. U31261۱۸ دی ۱۳۹۹

    سلام
    مشکل duplicate queries رو چطوری میشه حل کرد؟

    • رضا راد۲۰ دی ۱۳۹۹

      سلام باید ببینید از کدام افزونه هست و حذفش کنید.

      • U31261۲۰ دی ۱۳۹۹

        سلام جناب حسینی راد
        ممنونم از پاسختون
        من قالبم رو خودم نوشتم از افزونه ایزی دیجیتال استفاده می کردم حالا دارم سوییچ می کنم رو ووکامرس…از وقتی کدهای ووکامرس رو با کدهای ایزی دیجیتال جابه جا کردم این مشکل پیش امد..اگه بخاطر ووکامرس باشه چطوری میتونم درستش کنم؟؟

        • رضا راد۲۰ دی ۱۳۹۹

          درود بر شما سپاس. باید کدها رو بررسی کنید و توی query monitor ببینید از کدام فایل‌ها این duplicate ایجاد شده

          • U31261۲۷ دی ۱۳۹۹

            سلام
            ممنونم از پاسختون
            جناب حسینی این مشکلات پیش امده از سمت قالب من نیست حتی تو پنل ادمین هم این پیغام duplicate ایجاد میشه..
            یه وقتایی میگه از افزونه یواسته یه وقتایی میگه از ووکامرس فارسیه…به نظر شما مشکل چیه؟
            همین قالب با این شرایط کنونی رو افزونه ایزی دیجیتال مشکلی نداشت ولی سوییچ کردم رو ووکامرس شروع کرد مشکل پیدا کردن با افزونه ها

            • رضا راد۲۸ دی ۱۳۹۹

              سلام جلوی هر خطا نوشته شده این خطا از کدوم قالب یا افزونه هست. اون رو باید پیدا و مشخص کنید.

پشتیبانپشتیبانپشتیبانپشتیبانپشتیبان
تیم میهن وردپرس
پشتیبانپشتیبانپشتیبانپشتیبانپشتیبان
تیم میهن وردپرسآنلاین و پاسخگوی شما هستیم.آنلاین

در حال بارگذاری...

هر سوالی دارید بپرسید.پاسخگوی شما هستیم.