فهرست مطالب

رازبان اکو

رازبان وبرازبان حسابرازبان اس ام اس

راهکار جامع کسب و کار

اکوسیستم رازبان؛ یک پلتفرم سه دپارتمان تخصصی در چرخه‌ای هم‌افزا: حضور دیجیتال، مدیریت مالی و ارتباط با مشتریان. هرآنچه برای رشد پایدار و مدیریت هوشمند نیاز دارید، یکپارچه در کنار شماست.

آخرین نکات مالیاتی، سئو و بازاریابی را در کانال ایتا رازبان دنبال کنید.

بهینه سازی وردپرس برای شبکه های ایزوله؛ راهنمای بهینه‌سازی فرانت‌اند در زمان قطع اینترنت

در بسیاری از سازمان‌ها و مدارس که دسترسی به اینترنت بین‌الملل ممنوع یا محدود است، پلتفرم‌های متن‌بازی همچون وردپرس به دلیل معماری وابسته به منابع خارجی، دچار افت شدید سرعت می‌شوند. پدیده‌ای که می‌توان از آن به عنوان «فروپاشی عملکرد در شبکه‌های ایزوله» (Performance Collapse in Air-gapped Networks) یاد کرد. این مقاله به ریشه‌یابی علمی این معضل و ارائه راهکارهای فنی می‌پردازد.

۱. چالش قطعی اینترنت: چرا وردپرس متوقف می‌شود؟

هنگامی که دسترسی به api.wordpress.org، fonts.googleapis.com یا gravatar.com مسدود می‌شود، فلسفه‌ی “همیشه متصل” (Always-On) در وردپرس به مساله‌ای بر ضد خود تبدیل می‌شود. درخواست‌های HTTP خارجی که پیش‌فرض تا ۳۰ یا ۶۰ ثانیه منتظر Timeout می‌مانند و سرور را در حالت انتظار نگه می‌دارند. نتیجه عملی این است: سایتی که باید در ۲۰۰ میلی‌ثانیه لود شود، در حدود ۵ تا ۱۰ ثانیه معطل می‌ماند.

دلایل علمی و منطقی بهینه سازی وردپرس برای شبکه های ایزوله (پژوهش‌محور):

مدل پردازش هم‌روند (Synchronous Model):

برخلاف Node.js، وردپرس مبتنی بر PHP چندریسمانی نیست. اگر اسکریپت PHP یک درخواست خارجی (CURL) ارسال کند، فرآیند اجرای فایل تا بازگشت پاسخ مسدود می‌شود. آقای جان کولمن در تحقیقات میدانی خود به این موضوع اشاره می‌کند که حتی نصب تمیز و بی‌عیب و نقص وردپرس بدون اینترنت، TTFB را از کسری از ثانیه به چند ثانیه افزایش می‌دهد.
(TTFB مخفف time to first byte است و به بیان ساده، اندازه گیری مدت زمانی است که مرورگر باید قبل از دریافت اولین بایت داده از سرور منتظر بماند.)

بلوکه شدن رندر توسط CSS/JS خارجی:

مرورگرها تا زمان دانلود کامل فایل‌های CSS یا حل DNS، ساخت DOM را متوقف می‌کنند. (مدل شیءگرای سند یا دام (DOM – Document Object Model) عنوان یکی از دو ساختوارهٔ (architecture) اصلی است. درواقع یک مدل برنامه‌نویسی است که ساختار یک سند HTML یا XML را به صورت درختی از اشیاء نمایش می‌دهد. به زبان ساده‌تر DOM پلی است بین ساختار ایستا و کدهای پویا، که به ما این امکان را می‌دهد تا به راحتی عناصر مختلف یک صفحه وب را تغییر و به تعاملات کاربر پاسخ دهیم.) اگر آدرس fonts.googleapis.com در دسترس نباشد، مرورگر تا زمان رفع خطا، صفحه‌ی سفیدی را نمایش می‌دهد که تجربه‌ای ناخوشایند برای کاربر ایجاد می‌کند.

فراخوان‌های پنهان هسته:

وردپرس حتی در حالت غیرفعال بودن بروزرسانی‌ها، باز هم Heartbeat API و Cron Jobs را اجرا می‌کند که هرکدام ممکن است به دامنه‌های خارجی متصل شوند. مطالعات نشان می‌دهد که تعریف ثابت WP_HTTP_BLOCK_EXTERNAL به تنهایی کافی نیست و بسیاری از پلاگین‌ها این محدودیت را دور می‌زنند.

بهینه سازی وردپرس برای شبکه های ایزوله و قطع اینترنت

۲. فرصت‌ها و تهدیدهای ایزولاسیون شبکه

فرصت‌ها:

لوکال‌سازی کامل دارایی‌ها:

قطع اجباری اینترنت، تیم فنی را مجبور به میزبانی فونت‌ها، آیکون‌ها و حتی jQuery روی سرور داخلی می‌کند که نتیجه آن افزایش امنیت و حذف وابستگی به CDNهای خارجی است.

بهبود حریم خصوصی:

حذف فراخوان‌های Gravatar و Google Fonts از نشت اطلاعات بازدیدکنندگان به سرورهای ثالث جلوگیری کرده و انطباق با قوانین سختگیرانه حفظ داده (Data Privacy) را آسان‌تر می‌کند.

شناخت بهتر زیرساخت:

این محدودیت نشان می‌دهد کدام پلاگین‌ها دارای کد ناکارآمد یا “Phone Home” هستند و زمینه پاکسازی و ریفکتور را فراهم می‌آورد. (ریفکتورینگ (Refactoring) به معنی «بازسازی کد» است و یکی از اصطلاحات مهم در برنامه نویسی است که در دنیای کامپیوتر و نرم‌افزار اهمیت فراوانی دارد. ریفکتور کردن کد باعث می‌شود که نرم‌افزار یا برنامه قابل اطمینانی را توسعه داده و هزینه‌های توسعه برنامه را کاهش دهیم.)

تهدیدها:

از کار افتادن ویرایشگر گوتنبرگ:

بسیاری از بلاک‌های Gutenberg برای پیش‌نمایش یا استایل‌دهی به فایل‌های CSS و JS خارجی وابسته هستند. در غیاب اینترنت، ویرایش بصری ممکن است تخریب شود.

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

ناتوانی در اتصال به مخازن آپدیت، سایت را در معرض آسیب‌پذیری‌های شناخته شده قرار می‌دهد (برطرف کردن دستی این مشکل بسیار دشوار است).

تخریب تجربه کاربری (UX):

آیکون‌های FontAwesome یا فونت‌های گوگل تبدیل به مستطیل‌های خالی می‌شوند و اینتراکتیویتی ( اینتراکتیو یا طراحی تعاملی) سایت فلج می‌گردد.

کالبدشکافی علمی کندی فرانت‌اند؛ درس‌هایی از یک تحقیق میدانی جهانی

در حالی که بحث قطعی اینترنت، چالش‌های سمت سرور را برجسته می‌کند، نباید از دشمن خاموش عملکرد غافل شد: فرانت‌اند سنگین. شواهد تجربی از جامعه جهانی توسعه‌دهندگان، این مسئله را تأیید می‌کند. یکی از توسعه‌دهندگان برجسته وردپرس در Reddit نتایج یک تحقیق میدانی دو ماهه را منتشر کرده که طی آن، عملکرد بیش از ۵۰۰ وب‌سایت وردپرسی را بررسی کرده است. یافته‌های این تحقیق، نکات ارزشمندی را آشکار می‌سازد که برای وب‌سایت‌های ایرانی، به‌ویژه در شرایط اینترنت محدود، اهمیتی دوچندان دارد.

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

۱. ترافیک سنگین و پراکنده CSS:

حدود ۲۵٪ از سایت‌های بررسی‌شده، به دلیل بارگذاری ۱۲ تا ۱۸ فایل CSS جداگانه که توسط افزونه‌های مختلف تزریق می‌شدند، با ۱ تا ۳ ثانیه تأخیر در نمایش محتوا مواجه بودند. این پدیده که به “Render-Blocking CSS” معروف است، در شبکه‌های داخلی با تأخیر (Latency) نسبتاً بالا، به مراتب مخرب‌تر ظاهر می‌شود. راهکار استاندارد برای این چالش، یکپارچه‌سازی (Minify) و بارگذاری غیرهمگام (Async Load) فایل‌های CSS از طریق افزونه‌های بهینه‌سازی مانند WP Rocket یا LiteSpeed Cache است، با این شرط که برای جلوگیری از پدیده FOUC، اولویت‌دهی به استایل‌های حیاتی (Critical CSS) به دقت انجام شود.

۲. تأخیر مرگبار در بارگذاری تصویر اصلی (Hero Image):

در ۲۲٪ از سایت‌ها، تصویر اصلی (Hero Image) نه با تگ استاندارد ، بلکه به عنوان background-image در فایل CSS تعریف شده بود. وابستگی به پردازش کامل CSS برای شروع بارگذاری تصویر اصلی، ضربه مهلکی به معیار «بزرگ‌ترین محتوای قابل مشاهده» (LCP) وارد می‌کند. توصیه قاطع برای اصلاح این وضعیت، استفاده از تگ به همراه دستور preload و تنظیم fetchpriority=”high” است تا مرورگر در اولین فرصت، بدون معطلی، تصویر را از شبکه دریافت کند.

۳. جاوااسکریپت‌های قفل‌کننده تعامل (INP):

حدود ۷.۴٪ از سایت‌ها با مشکلی بسیار گمراه‌کننده مواجه بودند: صفحه به ظاهر لود شده بود، اما دکمه‌ها و فرم‌ها عملاً کار نمی‌کردند. این امر ناشی از جاوااسکریپت‌های حجیم و مسدودکننده است که نخ اصلی مرورگر را برای مدت طولانی اشغال کرده و معیار “تأخیر در تعامل” (INP) را به شدت کاهش می‌دهند. راهکارهای کلاسیک مانند استفاده از defer و انتقال اسکریپت‌ها به انتهای صفحه مؤثرند، اما روش‌های پیشرفته‌تری همچون بارگذاری ماژولار با Intersection Observer یا فعال‌سازی اسکریپت‌ها صرفاً در زمان نیاز کاربر، می‌تواند زمان مسدودسازی کلی (TBT) را به حداقل برساند.

(شاخص INP یکی از معیارهای مهم Core Web Vitals گوگل برای سنجش سرعت و پاسخ‌گویی صفحات وب است. گوگل به تجربه کاربری در سایت شما اهمیت می‌دهد و می‌خواهد بداند که آیا کاربران از تعامل با آن لذت می‌برند یا خیر. به همین دلیل، در تاریخ ۱۲ مارس ۲۰۲۴ فاکتور INP را جایگزین FID کرد تا درک عمیق‌تری از تجربه کاربری (UX) به‌دست آورد.)

نکته قابل تأمل دیگر در این تحقیق، فونت‌ها بودند. بسیاری از توسعه‌دهندگان تأیید کردند که فونت‌های گوگل (Google Fonts) و FontAwesome گاهی صدها کیلوبایت فایل اضافی به سایت تحمیل می‌کنند، در حالی که بخش عظیمی از این گلیف‌ها و آیکون‌ها هرگز در سایت استفاده نمی‌شوند. این اتلاف پهنای باند در شرایط اینترنت ایران، نه تنها سرعت را کاهش می‌دهد، بلکه با قطع اینترنت بین‌الملل، سایت را با خطاهای پی‌درپی و هنگ کردن و قفل‌شدگی (hang یا freeze) مواجه می‌سازد.

(گلیف به انگلیسی: Glyph تصویر یک نماد در یک سامانهٔ نوشتاری است. گلیف‌ها معمولاً به صورت مجموعه‌ای به نام قلم نگه‌داری می‌شوند. بنابراین گلیف‌ها واحدهای سازندهٔ یک قلم هستند.)

۳. بررسی‌های فنی عیب‌یابی (Troubleshooting)

برای اینکه تشخیص دهید کدام مؤلفه در حال تخریب سرعت سایت شماست، پیشنهاد می‌کنیم درصورت تمایل کارهای زیر انجام دهید:

فعال‌سازی Query Monitor:

این پلاگین دقیقاً نشان می‌دهد کدام فراخوان HTTP خارجی با شکست مواجه شده یا زمان زیادی برده است.

بررسی کنسول شبکه مرورگر (DevTools):

به تب Network بروید. درخواست‌های قرمز رنگ (Failed) یا آنهایی که در حالت Pending قفل شده‌اند، دلایل اصلی هستند. به ستون Time توجه کنید تا ببینید کدام درخواست ۳۰ ثانیه معطل شده است.

آنالیز فایل hosts:

گاهی وردپرس به جای IP، نام دامنه خود را صدا می‌زند. اگر DNS داخلی حل نشود، کندی رخ می‌دهد. تنظیم نام سرور در hosts سیستم‌عامل روی ۱۲۷.۰.۰.۱ الزامی است.

غیرفعال‌سازی Heartbeat API:

با افزودن کد زیر به functions.php، از ارسال درخواست‌های پیوسته به admin-ajax.php که سرعت مدیریت را کند می‌کند، جلوگیری کنید:

add_action( ‘init’, ‘stop_heartbeat’, 1 ); function stop_heartbeat()

بررسی فرانت‌اند:

با ابزارهایی مانند Google PageSpeed Insights یا Lighthouse (که به صورت آفلاین در DevTools مرورگر کروم در دسترس است)، فرصت‌های بهینه‌سازی LCP، TBT و CLS را بررسی کرده و گزارشی از حجم و تعداد فایل‌های CSS، JS و فونت‌های بارگذاری‌شده تهیه کنید.

بهینه سازی وردپرس برای شبکه های ایزوله و قطع اینترنت

۴. راهکارهای عملیاتی برای کار در حالت آفلاین

برای دستیابی به سرعت بارگذاری زیر ۱ ثانیه در شبکه‌های ایزوله، توصیه می‌کنیم دستورالعمل‌های زیر را اجرا کنید:

حالت Airplane Mode:

این یک راهکار موقت است که عموما برای همین منظور استفاده می‌شود. شما با این کار تمامی فراخوان‌های خارجی (از جمله آپدیت‌ها، گراویتارها و فایل‌های CSS/JS خارجی) را متوقف می‌کنید.

هشدار: این راهکار صرفاً یک “کلید اضطراری” است و فعال بودن آن در حالت عادی، سئو سایت شما را نابود می‌کند.

فعال‌سازی کدهای ثابت امنیتی در wp-config.php:

php define( ‘AUTOMATIC_UPDATER_DISABLED’, true ); define( ‘WP_HTTP_BLOCK_EXTERNAL’, true );

میزبانی محلی فونت‌ها و آیکون‌ها:

  • فونت‌های گوگل را از طریق پروژه‌هایی مثل google-webfonts-helper دانلود کرده و به CSS خود اضافه کنید.
  • به جای CDN، فایل‌های FontAwesome را روی هاست آپلود کرده و Enqueue کنید.

تنظیم Timeout سفارشی:

با افزودن کد زیر در functions.php، زمان انتظار برای درخواست‌های HTTP که ممکن است اشتباهاً ارسال شوند را به ۱ ثانیه کاهش دهید تا سایت قفل نشود:

php add_filter( ‘http_request_timeout’, ‘shorten_timeout’ ); function shorten_timeout()

بهینه‌سازی استاتیک منابع (بر اساس تحقیق ۵۰۰ سایتی):

  • CSS: تمام فایل‌های CSS را Minify و ادغام کنید. برای CSSهای غیرضروری از “‘media=”print” onload=”this.media=’all استفاده کنید.
  • تصاویر: تصاویر Hero را با تگ و “fetchpriority=”high پیاده‌سازی کنید.
  • جاوااسکریپت: تمام اسکریپت‌ها را با defer یا async بارگذاری کرده و اسکریپت‌های غیرضروری را تنها در زمان نیاز (On-demand) فراخوانی کنید.
  • فونت‌ها: صرفاً گلیف‌های مورد استفاده را نگه دارید (Subset) و فونت‌ها را روی سرور خودتان میزبانی کنید.

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

مسیر شما از یادگیری تا اجرا

آخرین نکات مالیاتی، سئو و بازاریابی را در کانال بله رازبان دنبال کنید.

پرسش و پاسخ

چون وردپرس پیش‌فرض به منابع خارجی مثل api.wordpress.org و فونت‌های گوگل وابسته است؛ درخواست‌های HTTP به این آدرس‌ها تا ۶۰ ثانیه معطل می‌مانند و پردازش PHP را مسدود می‌کنند، همچنین مرورگر هنگام حل نشدن DNS فایل‌های CSS/JS خارجی، رندر صفحه را متوقف می‌کند.

همه فونت‌ها، آیکون‌ها و jQuery را روی سرور خودتان میزبانی کنید، فراخوان‌های خارجی را با تعریف WP_HTTP_BLOCK_EXTERNAL و فیلتر http_request_timeout کنترل کنید و با غیرفعال‌سازی Heartbeat API از فشار اضافی بر admin-ajax.php جلوگیری نمایید.

بارگذاری پراکنده ۱۲ تا ۱۸ فایل CSS جداگانه (Render-Blocking)، تعریف تصویر اصلی به‌جای تگ img در CSS و جاوااسکریپت‌های حجیمی که نخ | رشته (Thread) اصلی مرورگر را اشغال می‌کنند، سه عامل اصلی کندی فرانت‌اند هستند و در شبکه‌های با تأخیر بالا، این مشکلات چند برابر می‌شوند.

به‌جای تعریف تصویر اصلی در فایل CSS، از تگ img استفاده کنید و با افزودن fetchpriority=”high” و preload، مرورگر را وادار کنید تصویر را در اولین فرصت و بدون معطلی پردازش CSS دریافت کند.

درباره این محتوا

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

با ما در ارتباط باشد

درخواست‌ها، پرسش‌ها و پیشنهادهای خود را با ما به اشتراک بگذارید.
کارشناسان ما ظرف ۲۴ ساعت با شما تماس می‌گیرند.

ارسال دیدگاه