مقايسه سرعت وردپرس با سايت استاتيك
مقايسه سرعت وردپرس با سايت استاتيك

آيا تا به امروز به سرعت سايت وردپرسي در مقايسه با سايت ايستا فكر كردهايد؟ به نظر شما كداميك سرعت بيشتري دارد و بهتر عمل ميكند؟ پاسخ به اين سوال و مقايسه سرعت وردپرس با سايت استاتيك را ميخواهيم از زبان موسس WPBeginner بشنويم. با ما همراه باشيد.
من در دهمين سالگرد تأسيس سايت WPBeginner اين مطلب را به اشتراك گذاشتم. زيرساختهاي ميزبان WPBeginner به لطف همكار ميزبان وب ما يعني هاستگِيتور (HostGator)، ارتقاء بزرگي پيدا كرد. اندكي بعد ايميلهايي از خوانندگان دريافت كردم كه از من خواستند تا جزئيات مربوط به بارگذاري سريع WPBeginner را به اشتراك بگذارم. بله، WPBeginner سريعتر از سايتهاي استاتيك بارگذاري ميشود و حتي در برخي موارد از صفحات موبايلي پرشتاب (AMP) گوگل نيز سريعتر عمل ميكند. من در اين مقاله، به پشت صحنه رفته و ميخواهم سرعت سايت وردپرسي در مقايسه با سايت ايستاتيك را بررسي كنم.
مقايسه سرعت وردپرس با سايت استاتيك
اخيراً وردپرس از برنامه نويسان جديد، انتقادهاي بسيار تندي را دريافت كرد كه ميگويند سرعت وردپرس كند است. اين بيانيه معمولا با تغيير سايت به نوعي سايت ايستاتيك جماستك (JAMstack) مانند گتسباي (GatsbyJS) دنبال ميشود. ديگر شركتهاي جهان ميگويند كه بايد به سمت سامانه بيهدف مديريت محتوا مانند كانتنتفول (Contentful) تغيير جهت بدهيد. چند تن از دوستان بسيار موفق كارآفرينم از من پرسيدند كه آيا اين اطلاعات واقعا درست است يا خير. حتي برخي به دليل مطالعه مقالات موردي درباره چگونگي فعال شدن سرعت پيشرفتهاي عظيم توسط تغيير جهت از وردپرس به سايتهاي استاتيك، بحث روند مهاجرت به سامانه بيهدف مديريت محتوا را پيش كشيدند.
به اين دليل كه من از هدر رفتن دهها هزار دلار در هزينههاي مهاجرت آگاه بودم، اين بحث براي من بسيار نااميدكننده بود. ناگفته نماند كه هزينههاي سفارشسازي بيپايان در آينده افزايش خواهند يافت. بنابراين، اين مسئله را به عنوان يك چالش در نظر گرفتم تا درباره مقايسه سرعت وردپرس با سايت استاتيك، ثابت كنم كه سايت بزرگ محتواي وردپرس مانند WPBeginner حتي اگر سريعتر از مدرنترين سايت استاتيك نباشد، ميتواند با سرعتي مشابه با آن بارگذاري شود.
ميتوانيد افكار من را قديمي بدانيد اما يك سايت استاتيك در نهايت تنها يك صفحهاي است كه در حال بارگذاري از حافظه پنهان است.
نتايج بدست آمده
از نظر من بهتر است قبل از اينكه مستقيما به سراغ زيرساختهاي ميزبان وردپرس، تنظيمات سرور و افزونهها بروم، نتايج را به اشتراك بگذارم. در اينجا، ميزان سرعت بارگذاري صفحه اصلي WPBeginner در وبسايت Pingdom از سرورهاي دي سي واشنگتن ارائه شده است:

اين نتيجه بسته به زمان روز و مكاني كه بررسي را انجام ميدهد، بين 400-700 ميلي ثانيه متغير خواهد بود كه براي صفحه اصلي سايت بسيار بالا است. اين آزمايشي است كه در آن يك صفحه كه داراي عكسها و جزئيات بيشتري بود را بارگذاري كردم:

همچنين ما در صفحه سرعت سنج گوگل مخصوص دسكتاپ نمره فوقالعاده 100 را كسب كرديم. اگرچه ما براي پيشرفت در بخش نمرات موبايلي نيز فرصت داشتيم.

نتايج فوق براي صفحات پنهاني است كه خوانندگان و موتورهاي جستجوگر ما هنگام مشاهده وبسايت به دست آوردهاند. زمان بارگذاري درك شده WPBeginner بسيار لحظهاي است.
در اينجا به دليل مقايسه سرعت وردپرس با سايت استاتيك، نتيجه تست سرعت صفحه اصلي گتسبي ارائه شده است. اين سايت يكي از سايتهاي محبوب استاتيك است كه در حال حاضر مجذوب بسياري از توسعهدهندگان است:

در اينجا، نتيجه تست سرعت صفحه اصلي سايت نتليفي (Netlify) مشخص شده است، يك سايت ميزبان و محبوب استاتيك كه بسياري از توسعهدهندگان آن را توصيه ميكنند. توجه كنيد كه آنها نيمي از ميزان درخواستها را دارند و اندازه صفحه آنها 30% WPBeginner است؛ اما هنوز هم كندتر از صفحه اصلي سايت ماست.

سرعت صفحه اصلي سامانه بيهدف توليد محتواي كانتنتفول با عنوان “چگونه شركتها تجربيات ديجيتالي بهتري را ارائه ميدهند” به هيچ وجه بهينه نميشود. اين كندترين وبسايتي بود كه مورد آزمايش قرار داديم.

من اين آمار را براي بي اعتبار ساختن چارچوبهاي ديگر ارائه نميدهم؛ بلكه به اين چشمانداز كه هر چيز جديد به اندازهاي كه به نظر ميرسد شفاف نيست، پرداختم و خواستم سرعت سايت وردپرسي در مقايسه با سايت ايستاتيك را بررسي كنم.
وردپرس با زيرساخت ميزبان و بهينهسازي، ميتواند به سرعت هر سايت استاتيك برسد. علاوه بر اين، هيچ پلتفرم ديگري به ميزاني قابل تغيير نشده است كه وردپرس اكوسيستم بزرگ افزونهها و تمهاي خود را به صاحبان مشاغل ارائه دهد.
زيرساخت ميزبان WPBeginner
وقتي صحبت از سرعت سايت به ميان ميآيد، هيچ چيز مهمتر از زيرساخت ميزبان سايت شما نيست. همانطور كه بسياري از شما ميدانيد، من از سال 2007 مشتري شركت هاستگيتور بودم. من وبلاگ WPBeginner را از سال 2009 با حساب كوچك ميزبان مشترك در هاستگيتور آغاز كردم. با بزرگتر شدن سايت ما، آن را به ميزبان مجازي VPS و سپس به سرورهاي اختصاصي ارتقا داديم.
در طول دهه گذشته، اين فرصت را پيدا كردم كه با بسياري از اعضاي تيمشان همكاري نزديكي داشته باشم و آنها نيز به بخش گستردهاي از خانواده WPBeginner تبديل شدند.
بنابراين، هنگامي كه به چالش تسريع WPBeginner نسبت به ديگر سايتهاي استاتيك وارد شدم، براي كمك به آنها رجوع كردم. من ديدگاه خودم را با تيم مديريت به اشتراك گذاشتم و آنها ساخت نوعي مجموعه اقتصادي براي WPBeginner را به من پيشنهاد كردند. آنها بهترين مهندسان از تيمهاي بلوهاست و هاستگيتور را در اختيار من گذاشتند تا براي سرعت بخشيدن به WPBeginner با من همكاري كنند. در اينجا مروري بر نحوه كار ميزبان WPBeginner به نمايش گذاشته شده است:

همانطور كه مشاهده ميشود، اين مجموعه داراي سرورهاي چندگانهاي است كه در دو منطقه جغرافيايي (تگزاس و يوتا) پراكنده شدهاند. در كل، 9 سرور وجود دارد كه شامل رايانش ابر تعادل بار نيستند. هر سرور يك سيپييو زئون 8 هستهاي (16 رشتهاي) با رم 32 گيگ و حافظه 2x SSD 1 ترابايتي (سيستم آرايه چندگانه دسيكهاي مستقل) دارد. ما از رايانش ابري تعادل بار پلتفرم گوگل استفاده ميكنيم، بنابراين ميتوانيم مقياسپذيري خودكار و تعادل باري يكپارچه در سراسر جهان داشته باشيم.
تيمهاي بلوهاست و هاستگيتور پس از راهاندازي سختافزار با استفاده از همگامسازي مناسب دادهها، براي بهينهسازي تنظيمات سرور در وردپرس با يكديگر همكاري كردند. اميدوارم كه به زودي برخي از اين بهينهسازيها در آينده به برنامههاي ميزباني وردپرس تبديل شوند.
خلاصه پيكربندي سرور
خلاصهسازي پيكربندي سرور راهاندازي اين مجموعه در چند پاراگراف بسيار دشوار است، اما من بيشترين تلاش خود را خواهم كرد. ما به دليل آشنايي بيشتر تيم با كارساز وب آپاچي (Apache)، از آن به عنوان نرمافزار سايت خود استفاده ميكنيم. بيشتر از اين، درباره كارساز انجيناكس (NGINX) و آپاچي (Apache) وارد بحث نميشوم.
ما از زبان برنامهنويسي پياچپي 7.2 (PHP) به همراه هندلر PHP-FPM استفاده ميكنيم؛ بنابراين ميتوانيم بارگذاريهاي بسياري از مراحل و درخواستها را به كار بگيريم. اگر شركت ميزبان شما از زبان PHP 7+ استفاده نميكند، در نتيجه بهينهسازي جدي سرعت را از دست خواهيد داد. از حافظه پنهان آپكد (Opcode) همراه با ابزار پيشرفتهاي استفاده ميكنيم تا اطمينان حاصل شود كه هيچ كاربر واقعي نبايد صفحهاي غيرپنهان را تجربه كند.
ما از حافظه پنهان Object همراه با ابزار memcache نيز استفاده ميكنيم، بنابراين ميتوانيم زمان پاسخگويي به بازديد صفحات غيرپنهان يا ديگر رابطهاي برنامهنويسي كاربردي براي كاربران وارد شده (نويسندگان) در بخش مديريت وردپرس را بهبود ببخشيم. در اينجا، گزينه بارگذاري شبكه در صفحه اصلي مديريت وردپرس قابل مشاهده است:

در حال حاضر، براي رسيدن به اين ديدگاه تجربه بخش مديريت ما 2 برابر سريعتر از تجربههاي گذشته ما است. ما براي پايگاههاي دادههاي خود از نرمافزار MySQL به نرمافزار MariaDB تغيير جهت داديم كه ابزاري مشابه با myasql اما سريعتر و بهتر است. ما همچنين، از افزونه HyperDB به LudicrousDB تغيير جهت داديم، زيرا اين امر به ما در بهبود بازتوليد پايگاه داده، برقراري ارتباط از طريق يك لينك و تعادل بار كمك ميكند.
پيكربنديهاي بسيار ديگري وجود دارد كه به ما در عملكرد و مقياسپذيري مانند HTTP/2 و HSTS براي اتصال سريعتر + رمزگذاري و امكان چرخش سرورهاي اضافي در صورت قطع مركز دادهها و غيره در مناطق جديد كمك ميكنند. احساس ميكنم كه عدالت را در مورد راهاندازي مجموعه فوقالعاده اي كه تيم ساخته رعايت نميكنم، اما بدانيد كه قدرت اصلي من بازاريابي است. بله، من وبلاگ نويسي هستم كه در مورد وردپرس مينويسد، اما بسياري از بهينهسازيهاي فني در اينجا بالاتر از سطح دستمزد من است.
شبكه تحويل محتوا (CDN)، ديوار امنيتي وب (WAF) و سامانه نام دامنه (DNS)
گذشته از ميزباني سايت، ساير زمينههايي كه در سرعت سايت شما نقش بسزايي دارند، ارائه دهنده سامانه نام دامنه (DNS)، شبكه تحويل محتوا (CDN) و ديوار امنيتي سايت شما (WAF) هستند. در حالي كه اين سه مورد را جداگانه ذكر كردم، امروزه بسياري از شركتها اين راهحلها را در يك برنامهريزي همراه مانند شركتهاي سوكوري (Sucuri)، كلودفلير (Cloudflare)، مكسسيديان (MaxCDN يا StackPath) و غيره ارائه ميدهند.
ازآنجايي كه ميخواهم كنترل حداكثري داشته باشم و ريسك كار را افزايش دهم، از سه شركت جداگانه استفاده ميكنم تا هر بخش را به نحو احسنت اداره كنم. سامانه نام دامنه WPBeginner توسط سامانه آسانساز (همان شركت كنستليكس (Constellix)) پشتيباني ميشود. آنها به طور مداوم به عنوان سريعترين ارائه دهنده نام دامنه در جهان ردهبندي ميشوند. مزيت سامانه آسانساز اين است كه ميتوانم وقتي كه دادههاي مركزي خاص در شبكه تحويل محتوا و ديوار امنيتي وب كار نميكنند، براي اطمينان از حداكثر زمان، جهت ترافيكي جهاني را مشخص كنم.
شبكه تحويل محتواي ما توسط شركت مكسسيديان (MaxCDN يا StackPath) پشتيباني ميشود. آنها اساسا اين امكان را به ما ميدهند تا داراييهاي ثابتمان (عكسها، فايلهاي سياساس و جاوا اسكريپت) را از شبكههاي بزرگ سرورشان در سراسر جهان به خدمت بگيريم.
ما از Sucuri به عنوان ديوار امنيتي سايت خود استفاده ميكنيم. آنها گذشته از مسدود كردن حملات، به عنوان لايه ديگري از شبكه تحويل محتوا عمل ميكنند و عملكرد كلي آنها شگفتانگيز است. من معتقدم كه آنها بهترين ديوار امنيتي وردپرس را در بازار در اختيار دارند. هنگام كار بر روي بهينهسازي سرعت سايت، هر يك از اين سرويسها تنها چند ميلي ثانيه تغيير ايجاد ميكنند. به همين دليل است كه استفاده از اين ارائهدهندگان در كنار زيرساختهاي ميزباني سايت جديد، تغييرات بزرگي را ايجاد ميكند. در اينجا، نمودار آبشاري از صفحات از كار افتاده سايتهاي WPBeginner.com، GatsbyJS.org و CloudFlare.com آمده است:

توجه كنيد كه زمان مربوط به نام دامنه WPBeginner، زمان امنيت لايه انتقال، زمان اتصال و زمان انتظار در مقايسه با سايتهاي محبوب ديگر برتر هستند. هر يك از اين پيشرفتها براي ارائه بهترين نتايج تركيب شدهاند.
صفحه فوري، تصاوير بهينه و روشهاي برتر ديگر
يكي از مواردي كه ممكن است متوجه آن شويد، بارگذاري فوري در هنگام جستجوي پستها و صفحات WPBeginner است. جدا از تمام مواردي كه در بالا به آن اشاره كردم، با استفاده از فايل آغازگري به نام صفحه فوري، تاخير را دور ميزنيم كه در بارگذاريهاي به موقع مورد استفاده قرار ميگيرد. در واقع قبل از كليك كاربر بر روي لينك، بايد موس خود را به سمت لينك حركت دهد. وقتي كه كاربر اين كار را در مدت 65 ميلي ثانيه (كه زمان بسيار كوتاهي است) انجام ميدهد، يك دوم احتمال براي كليك بر روي لينك وجود دارد.
فايل آغازگر صفحه فوري در اين لحظه شروع به بارگذاري لينك ميكند، بنابراين وقتي كاربر روي يك لينك كليك ميكند، بسياري از امور سنگين در عين واحد انجام ميشوند. اين امر باعث ميشود مغز انسان زمان بارگذاري سايت را لحظهاي بداند. براي فعال كردن صفحه فوري بر روي سايت خود، ميتوانيد افزونه صفحه فوري وردپرس را به راحتي نصب و فعال كنيد (Instant Page WordPress plugin).
افزونه Instant Page WordPress plugin

اين فايل بسيار مرتب است. به شدت توصيه ميكنم كه وبسايت آنها را چك كنيد و براي مشاهده نحوه فريب مغز بر روي گزينه “تست سرعت كليك خود”، كليك كنيد.
دانلود افزونه Instant Page WordPress plugin
دانلود افزونه صفحه افزونهبهروزرساني: من در حال حاضر، صفحه فوري را غيرفعال كردهام و قرار است در آيندهاي نزديك افزونه FlyingPages را تست كنم. گيجو وارقس افزونه جديد خود را در گروه مشغولان WPBeginner در فيسبوك به اشتراك گذاشت و به نظر ميرسد كه در بين فايلهاي آغازگر صفحه فوري و لينك فوري بهترين گزينه است.
تصاوير بهينه براي وب
يكي از مواردي كه در مقايسه سرعت وردپرس با سايت استاتيك كاملا مشهود است، تصاوير هستند. در حالي كه قالبهاي جديد تصوير مانند وبپي ايجاد ميشوند، اما ما از آنها استفاده نميكنيم. در عوض، از همه نويسندگان خود ميخواهيم تا با استفاده از ابزار TinyPNG هر تصوير را بهينهسازي كنند. همچنين ميتوانيد با استفاده از افزونههايي مانند Optimole يا EWWW Image Optimizer فشردهسازي تصاوير را به صورت خودكار انجام دهيد.
با اين حال، من شخصا ترجيح ميدهم كه اين كار را به صورت دستي براي تيم انجام دهم، بنابراين فايلهاي بزرگ را بر روي سرور بارگذاري نميكنيم. در حال حاضر، هيچ گونه بارگذاري تصاوير كماهميت را انجام نميدهيم اما قصد دارم در آيندهاي نزديك به امور اضافه كنم چون در حال حاضر گوگل پشتيباني بارگذاري كماهميت به كروم ۷۶ را بر عهده گرفته است. همچنين صفحهاي در وردپرس براي افزودن اين ويژگي در تمام سايتها وجود دارد (اميدوارم كه اين امر زودتر اتفاق بيفتد)، بنابراين مجبور به نوشتن افزونهاي خاص نيستم.
محدود كردن ايرادات HTTP + برترين روشها

برخي از آنها بسته به افزونههاي وردپرس مورد استفاده، فايلهاي اضافي سياساس و جاوا اسكريپت را در هر صفحه بارگذاري ميكند. اگر تعداد افزونهها در سايت شما بسيار زياد باشد، درخواستهاي اضافي HTTP مي تواند خارج از كنترل شود. حال قبل از اينكه به نتيجه اشتباهي بپردازيد كه افزونههاي وردپرس نامساعد هستند، ميخواهم بگويم كه 62 افزونه فعال در سايت WPBeginner وجود دارد. حتما مقاله نصب افزونههاي ضروري وردپرس را بخوانيد.
آنچه بايد انجام دهيد اين است كه درصورت امكان فايلهاي سياساس و جاوا اسكريپت را براي كاهش درخواستهاي HTTP، تركيب كنيد. برخي افزونههاي مربوط به حافظه پنهان وردپرس مانند WP Rocket ميتواند اين كار را با ويژگي خلاصهسازي كد منبع به صورت خودكار انجام دهد. شما ميتوانيد دستورالعمل هاي موجود در اين مقاله را دنبال كنيد تا اين كار را به صورت دستي انجام دهيد و اين همان كاري است كه تيم ما در WPBeginner انجام داده است.
شما گذشته از درخواستهاي HTTP كه افزونهها و تمها اضافه ميكنند، ميخواهيد از ديگر فايلهاي آغازگر شخص ثالثي كه به سايت خود اضافه ميكنيد نيز آگاه باشيد زيرا هر فايل آغازگر بر سرعت سايت شما تاثير خواهد گذاشت. براي مثال، اگر بسياري از فايلهاي آغازگر تبليغاتي يا هدف را اجرا كنيد، سرعت سايت شما كند خواهد شد و شايد اينجا در بررسي سرعت سايت وردپرسي در مقايسه با سايت ايستاتيك ديگر سايت وردپرسي را انتخاب نكنيد. ممكن است بخواهيد در صورت لزوم براي بارگذاري مشروط فايلهاي آغازگر از ابزاري مانند مديريت تگ گوگل استفاده كنيد.
اگر سايت پشتيباني تبليغات مانند تككرانچ (TechCrunch) يا تيانايكس (TheNextWeb) هستيد، از آنجايي حذف تبليغات گزينه مناسبي نيست ميتوانيد امور كوچك ديگري را انجام دهيد. خوشبختانه، WPBeginner براي درآمدزايي به فايلهاي آغازگر شخص ثالث متكي نيست.
نكات آموخته شده (تاكنون) + سخن نهايي
اين يك زيرساخت ميزبان جديد است و مطمئنم نكات بسيار زيادي وجود دارد كه در طول زمان ياد خواهيم گرفت. تاكنون پيشرفت سرعت را دوست داشتم زيرا اين امر به ارتقاي رتبه سئوي ما كمك كرده و بخش مديريت نيز بسيار سريعتر شده است. ما با راهاندازي سرورهاي چندگانه جديد، گسترش گردش كاري را معرفي كردهايم تا WPBeginner را با ساير سايتهاي محرك محصول هماهنگ كند.
اين بدان معني است كه اكنون نسخه مناسبي براي كنترل داخلي داريم و اقداماتي براي جلوگيري از بيپروايي من (به عنوان مثال: اضافه كردن افزونه بدون تستهاي مناسب، بهروزرساني افزونهها از داشبورد بدون تست و غيره) انجام شده است.
همچنين اين تغييرات مسيري را براي من رقم زد كه به چيزي فراتر از توسعه تبديل شده و توانستم مديريت سايت WPBeginner را به تيم توسعهدهندگان خود واگذار كنم. من سالها با وجود اين شرايط ايستادگي كردهام اما فكر ميكنم كه ديگر زمان آن فرا رسيده است و من بايد آن را بپذيرم.
تاكنون دو درس بزرگ آموختهايم:
اول اينكه بهروزرساني وردپرس به دليل همگامسازي يا تكرار سرور نيست. هنگامي كه وبلاگ شخصي من (SyedBalkhi.com) را به وردپرس 5.2 ارتقا داديم، فايلهاي بهروزرساني شده به درستي در گره سايت همگامسازي نشدند و اشكالزدائي فراتر از پيشبيني را در برداشت. ما براي ساخت و تست بهتر فرآيند در اين بخش مشغول كار هستيم.
دوم اينكه، ما بايد ارتباط بهتري بين تيمها برقرار كنيم زيرا با بحران تنظيمات غلط متعادلكننده مواجه شديم كه منجر به خرابي در سايت شد. حضور من در پروازهاي فرامنطقهاي در هواپيمايي تركيه و مشكلات وايفاي باعث بدتر شدن وضع شد.
خوشبختانه همه چيز با پاسخ سريع توسط تيم ميزبان مرتب شده است اما همين مشكل به ما كمك كرد تا چندين روش عملياتي استاندارد (SOPs) ايجاد كنيم تا در آينده بهتر بتوانيم حوادث را مديريت كنيم.
من فكر ميكنم اين سخن بايد به قانون نانوشتهاي تبديل شود: “اگر شما يك سايت، وبلاگ يا فروشگاه آنلاين راهاندازي كردهايد، ديگر به مجموعه پيشرفته سازماني احتياجي نداريد.”
من هميشه توصيه ميكنم كه مانند من با برنامههاي كوچك مشترك مانند هاستگيتور و بلوهاست شروع كنيد و سپس با رشد كسب و كار خود، زيرساخت ميزباني خود را ارتقا دهيد. ميتوانيد بسياري از بهينهسازيهايي را كه در متن بالا در بخش برنامههاي فعلي ميزباني وردپرس به اشتراك گذاشتم اعمال كنيد.
به عنوان مثال، برنامه استاندارد بلوهاست با يك افزونه در حافظه پنهان همراه است كه ميتوانيد از آن استفاده كنيد و آنها به صورت پيشفرض پياچپي 7 (PHP 7) را به شما ارائه ميدهند. ميتوانيد آن را با شبكه توليد محتوا + ديوار امنيتي وب مانند Sucuri تركيب كنيد تا به طور قابل توجهي به سايت خود سرعت ببخشيد.
حال، اگر شما يك شركت يا موسسه اقتصادي متوسط هستيد كه خواهان راهاندازي ميزباني مشابه است، از طريق فرم تماس با ما در ارتباط باشيد. از اين طريق ميتوانم به شما كمك مستقيمي كنم.
حال از شما اين سوال را ميپرسيم كه نظرتان درباره مقايسه سرعت وردپرس با سايت استاتيك چيست؟ كداميك را بهتر ميبينيد؟ سرعت سايت وردپرسي در مقايسه با سايت ايستاتيك واقعا به چه صورت است؟ نظر خود را در بخش ديدگاهها با ما درميان بگذاريد.
منبع:
برچسب: ،