كيفية تمكين ضغط GZIP لتسريع مواقع وورد بريس

A VPN is an essential component of IT security, whether you’re just starting a business or are already up and running. Most business interactions and transactions happen online and VPN

أسهل طريقة لتسريع موقع وورد بريس الخاص بك هي التخلص من جميع موارده غير المرغوب فيها . ثاني أسهل طريقة لتسريعها هي ضغط جميع الموارد المطلوبة. يعد تمكين ضغط GZIP على خادم الويب أحد أبسط الطرق وأكثرها فعالية لتحقيق ذلك.

تتضمن جميع المتصفحات الحديثة دعمًا لضغط GZIP افتراضيًا. ومع ذلك ، لتقديم الموارد المضغوطة إلى المستخدمين لديك بدون أخطاء ، يجب عليك تكوين الخادم الخاص بك بشكل صحيح.

في هذا المنشور ، ستتعلم أساسيات ضغط البيانات على الويب ، وما هو ضغط GZIP ، وفوائده المتنوعة ، وكيف يمكنك استخدامه لتسريع مواقع وورد بريس الخاصة بك على إعدادات خادم مختلفة.

أساسيات ضغط البيانات على الويب

ضغط البيانات على الويب هو عملية تقليل حجم البيانات المنقولة بواسطة مواقع الويب. اعتمادًا على نوع البيانات – النص والصور وأوراق الأنماط والنصوص والخطوط – توجد طرق مختلفة للشروع في ضغط البيانات.

رسم توضيحي للمكونات الرئيسية لصفحة الويب

المكونات الرئيسية لصفحة الويب

على سبيل المثال ، يعد تصغير HTML و CSS وجافا سكريبت طريقة بسيطة لتقليل كمية البيانات التي ترسلها المتصفحات. هنا ، يقوم المصغر بضغط النص عن طريق إزالة الأحرف غير الضرورية مثل التعليقات والمسافات البيضاء من التعليمات البرمجية المصدر.

في المثال أدناه لمستند HTML بسيط ، هناك ثلاثة أنواع من المحتوى: ترميز HTML وأنماط CSS وشفرة JavaScript.

يحتوي كل نوع من أنواع المحتوى على بناء جملة ودلالات فريدة. بشكل عام ، يحتوي مستند HTML هذا على 357 حرفًا في المجموع.

<html>
<head>
    <style>
    /* kinsta-banner is used on the homepage only */
    .kinsta-banner { font-size: 150% }
    .kinsta-banner { width: 75% }
</style>
</head>
<body>
    <!-- kinsta banner START -->
    <div>...</div>
    <!-- kinsta banner END -->
    <script>
    kinstaScripts(); // random scripts used on the page
    </script>
</body>
</html>

الكود أعلاه سهل القراءة والمتابعة. إنه مثالي للتطوير. ومع ذلك ، ليس من الضروري أن يقرأ المتصفح التعليقات وأن يكون لديه علامات بادئة تمامًا. يمكن للضاغط الذكي تحليل هذا المستند وإزالة جميع البتات غير الضرورية منه.

<html><head><style>.kinsta-banner{font-size:150%;width:75%}</style></head><body><div>...</div><script>kinstaScripts();</script></body></html>

بعد التصغير ، يتم تقليل حجم مستند HTML إلى 141 حرفًا فقط. وهذا يمثل توفيرًا بنسبة 60.50٪ في عدد الأحرف. ليس الأمر سهلاً على العينين ، لكن هذا لا يهم المتصفح. سيظل يعرض نفس الصفحة للمستخدم.

للاستفادة من كلا الإصدارين ، يمكنك الاحتفاظ بالمستند الأصلي باعتباره “نسخة تطويرية” ، ولكن قلل كل التعليمات البرمجية قبل نشرها مباشرة.

تعتني معظم المكونات الإضافية لأداء وورد بريس بهذا الأمر تلقائيًا نيابة عنك.

مقارنة حجم الملف بين jQuery غير المضغوط

ضغط حجم ملف jQuery غير مضغوط مقابل مصغر

على سبيل المثال ، النسخة غير المضغوطة من مكتبة jQuery 3.5.1 أكبر بثلاث مرات من النسخة المصغرة من نفس الملف.

وبالمثل ، يمكن لتقنيات الضغط نفسها الموضحة أعلاه تحسين أنواع المحتوى الأخرى مثل الصور ومقاطع الفيديو والخطوط والمزيد. التخفيضات الخاصة بالمحتوى مثل هذه هي الخطوة الأولى في تحسين حجم الأصول النصية لموقعك على الويب.

ولكن هناك ما هو أكثر لضغط البيانات من مجرد التصغير. باستخدام تقنيات الرياضيات المتقدمة ، يمكن لخوارزميات ضغط البيانات تقليل حجم البيانات بشكل أكبر.

يعد GZIP أحد أشهر الأمثلة على طريقة ضغط البيانات هذه . إنه يتيح نقل البيانات بكفاءة وقد ساهم بشكل كبير في جعل الإنترنت وسيلة اتصالات عالمية قابلة للتطبيق.

ما هو ضغط GZIP؟

GZIP ، اختصارًا لـ GNU Zip ، هي أشهر طريقة لضغط البيانات بدون فقدان البيانات على الويب. يسمح لك بتقليل حجم صفحات HTML وأوراق الأنماط والنصوص الخاصة بموقعك.

بصرف النظر عن كونه خوارزمية لضغط البيانات ، فإن GZIP هو أيضًا امتداد ملف ( .gz ) وبرنامج يستخدم لضغط / فك ضغط الملفات.

أنها تقوم على خوارزمية انكماش ، والذي هو خليط من LZ77 ترميز و هوفمان الترميز الخوارزميات.

رسم توضيحي لكيفية اعتماد ضغط GZIP على خوارزمية DEFLATE

يعتمد ضغط GZIP على خوارزمية DEFLATE

يأخذ ضاغط GZIP مجموعة من البيانات الأولية ويضغطها بدون فقدان البيانات. يمكن أن تكون البيانات الأولية من أي نوع ملف ، ولكن GZIP يعمل بشكل أفضل مع الأصول المستندة إلى النصوص (مثل HTML و CSS و JS).

يغطي القسم التالي كيفية عمل ضغط GZIP في العمق.

كيف يضغط GZIP البيانات

توضيح تقريبي لكيفية عمل ضغط GZIP

توضيح تقريبي لكيفية عمل ضغط GZIP

بادئ ذي بدء ، يقوم ضاغط GZIP بتشغيل خوارزمية الضغط LZ77 على البيانات الأولية لإزالة التكرار. تعمل هذه الخوارزمية من خلال إيجاد أنماط متكررة في نافذة منزلقة محددة مسبقًا (جزء صغير من البيانات الأولية).

ثم يستبدل كل السلاسل المكررة مع مجموعات لضغط البيانات الأولية.

توضيح لخوارزمية ترميز LZ77

توضيح لخوارزمية ترميز LZ77

في المثال أعلاه ، يبلغ حجم النافذة المنزلقة 13 حرفًا فقط (13 بايت). ومع ذلك ، يمكن أن يستخدم ضغط GZIP حجم نافذة منزلقة بحد أقصى 32 كيلو بايت (32768 بايت). يلعب حجم النافذة المنزلقة دورًا رئيسيًا في أداء ضغط LZ77.

بعد ضغط البيانات الأولية باستخدام خوارزمية LZ77 ، يستخدم ضاغط GZIP بعد ذلك خوارزمية ترميز Huffman لضغطها بشكل أكبر. يقوم بذلك عن طريق تعيين الأحرف التي تحدث بشكل متكرر أقل عدد من البتات ، مع تعيين الأحرف النادرة أكبر عدد من البتات.

هذه التقنية تشبه تلك المستخدمة في شفرة مورس ، حيث تحصل الأحرف التي تحدث بشكل متكرر في اللغة الإنجليزية على أقصر التسلسلات.

لفهم كيفية عمل خوارزمية ترميز هوفمان ، ضع في اعتبارك الكلمة BOOKKEEPER. يبلغ طوله 10 أحرف ، ولكنه يحتوي على 6 أحرف فريدة فقط. تحتوي هذه الكلمة على مزيج جيد من الأحرف الفردية والمزدوجة والثلاثية.

تستخدم جميع مواقع الويب تقريبًا ترميز أحرف UTF-8 لتمثيل الأحرف والرموز. كل حرف ASCII في UTF-8 ، والذي يتضمن أيضًا الأبجدية الإنجليزية ، يستخدم 1 بايت (8 بت).

كلمة “BOOKKEEPER” لها العديد من الأحرف المتكررة

كلمة “BOOKKEEPER” لها العديد من الأحرف المتكررة

BOOKKEEPERستتطلب سلسلة من 10 أحرف مثل 10 بايت (80 بت) من الذاكرة. يمكنك أن ترى أنه يحتوي على 1 مثيل من الرسائل ، 2 حالات الحروف و ، و 3 حالات الرسالة .B, P, ROKE

تستخدم خوارزمية ترميز هوفمان هذه المعرفة لضغط السلسلة بلا خسارة. يقوم بذلك عن طريق إنشاء شجرة ثنائية مع كل حرف فريد على هيئة ورقة.

الحروف ذات التردد الأقل (مثل B ، P ، R ) ستجد نفسها في أسفل الشجرة ، بينما تلك التي تظهر بشكل متكرر (مثل E ، O ، K ) ستجد نفسها بشكل مثالي في القمة.

العقدة العلوية في الشجرة هي الجذر ، وقيمتها تساوي العدد الإجمالي للأحرف في السلسلة.

هوفمان تري لكلمة “حارس”

هوفمان تري لكلمة “حارس”

بعد إنشاء شجرة هوفمان ، يتم إعطاء جميع الأسهم المتفرعة على اليسار والأسهم المتفرعة اليمنى أرقام 0 و 1 على التوالي. يمكنك بعد ذلك إنشاء كود Huffman لأي حرف عن طريق تتبع مسار الجذر إلى الورقة وربط كل 0 s و 1 s.

أكواد هوفمان هي أكواد ثنائية فريدة لكل حرف

أكواد هوفمان هي أكواد ثنائية فريدة لكل حرف

يمكنك ملاحظة أن الحروف ذات التردد الأعلى لها رموز هوفمان بأحجام بت صغيرة.

ملاحظة: يمكن لخوارزمية ترميز هوفمان إنشاء أكواد ثنائية بديلة باستخدام إستراتيجية ترتيب مختلفة للأحرف ذات الترددات نفسها. ومع ذلك ، فإن الحجم الإجمالي للسلسلة المشفرة سيبقى كما هو.

كلمة 80 بت مشفرة كسلسلة 25 بت

كلمة 80 بت مشفرة كسلسلة 25 بت

وهذا يمثل تخفيض بنسبة 68.75٪ في الذاكرة المطلوبة لتخزين الكلمة الأصلية.

باستخدام شجرة هوفمان مع 0 / 1 اتفاقية يولد رموز الثنائية التي تلبي خاصية البادئة . إنه يضمن أن كود هوفمان لأي حرف معين ليس بادئة لأي كود حرف آخر ، مما يجعل من السهل فك تشفير السلسلة المشفرة باستخدام شجرة هوفمان. يلعب هذا دورًا أساسيًا في سرعة فك ضغط GZIP.

تمامًا كما هو الحال مع الكلمة أعلاه ، يستخدم ضاغط GZIP خوارزمية ترميز Huffman لزيادة تحسين المجموعات التي تم إنشاؤها بواسطة خوارزمية LZ77. ينتج عن هذا ملفات مضغوطة بدرجة عالية بامتداد .gz .

إذا كنت مهتمًا بمعرفة المزيد حول كيفية عمل GZIP ، فراجع هذا الفيديو للحصول على نظرة عامة سريعة.

ما مدى جودة ضغط GZIP؟

عادةً ما يحقق GZIP نسبة ضغط تبلغ حوالي 70٪ للملفات الصغيرة ، ولكن يمكن أن تصل إلى 90٪ للأصول الأكبر القائمة على النص.

مقارنة بين نسب ضغط GZIP لمختلف مكتبات CSS و JS

نسب ضغط GZIP لبعض مكتبات CSS و JS الشائعة

في الجدول أعلاه ، يمكنك أن ترى أن ضغط الملفات المصغرة باستخدام GZIP يمكن أن يقلل حجمها بشكل أكبر.

ملاحظة: يمكنك ضغط أي نوع ملف باستخدام GZIP ، ولكن بالنسبة للأصول التي تم ضغطها بالفعل باستخدام طرق أخرى (مثل الصور ومقاطع الفيديو) ، فلن يتم توفير أي توفير. في بعض الأحيان ، قد يؤدي ذلك إلى زيادة حجم الملف.

لا تعتمد قوة خوارزمية الضغط فقط على نسبة الضغط الخاصة بها ، ولكن أيضًا على مدى سرعة وكفاءة ضغط البيانات وفك ضغطها. هذا هو المكان الذي يتفوق فيه GZIP في معظم حالات الاستخدام.

نظرًا لأن GZIP يقوم بفك الضغط بسرعة باستخدام خوارزمية دفق ، فهو مناسب جدًا لبروتوكولات الويب حيث تكون السرعة جوهرية. بالإضافة إلى ذلك ، يستخدم GZIP الحد الأدنى من الموارد لضغط البيانات وفك ضغطها ، مما يجعلها مثالية لكل من الخوادم والعملاء على حدٍ سواء.

أداء ضغط brotli مقابل bzip2 مقابل GZIP مقابل xz (المصدر: OpenCPU)

أداء ضغط brotli مقابل bzip2 مقابل GZIP مقابل xz (المصدر: OpenCPU)

تقارن الرسوم البيانية أعلاه أداء الضغط لخوارزميات ضغط brotli و bzip2 و gzip و xz . يخسر GZIP في اختبار نسبة الضغط بهامش طفيف ، ولكن لسرعات الضغط وفك الضغط ، فإنه يتفوق على المنافسة تمامًا.

بالنظر إلى الرسم البياني لسرعة الضغط ، يمكننا أن نستنتج أن GZIP مثالي للضغط في الوقت الفعلي في خوادم HTTP وتدفقات البيانات الأخرى على الويب. بالنظر إلى جميع إيجابياته في تطوير الويب ، صادقت IETF على GZIP كأحد التنسيقات القياسية الثلاثة للضغط في HTTP / 1.1.

ملاحظة: يتم استخدام نسخة تجريدية من مكتبة ضغط GZIP تسمى zlib في العديد من أنظمة التشغيل الشائعة (Linux و macOS و iOS) ووحدات تحكم الألعاب الحديثة (PlayStation 4 و Wii U و Xbox One). يتم استخدامه أيضًا في تنسيق ملف PNG بدون فقد لضغط الصور.

6 مزايا ضغط GZIP

دعونا نلقي نظرة فاحصة على أهم مزايا ضغط GZIP.

يسلم نسبة ضغط لائقة

كما تمت مناقشته من قبل ، لا يمتلك GZIP أفضل نسبة ضغط مقارنة بالمنافسين. لكنها ليست بعيدة عنهم أيضًا. عادةً ، يمكن أن يساعدك في تقليل حجم الموارد المستندة إلى النصوص بنسبة 70-90٪.

ضغط وفك الضغط بسرعة فائقة

بالنسبة لسرعات ضغط البيانات وإلغاء الضغط ، فإن GZIP هو الفائز الواضح. من المرغوب فيه للغاية للضغط السريع في خوادم HTTP وتدفقات البيانات الأخرى.

يتطلب القليل من الذاكرة

يترك GZIP حيزًا ضئيلًا من الذاكرة ، مما يجعله مناسبًا للخوادم والأنظمة ذات سعة الذاكرة المحدودة. وبالتالي ، ستجده مدعومًا حتى من قبل أرخص مزودي استضافة الويب .

لا يتوسع كثيرًا حتى في أسوأ الحالات

خوارزميات ضغط البيانات غير المفقودة مثل GZIP لها حدود صارمة لا يمكنها بعدها ضغط البيانات.

عادةً ما يحدث هذا عندما يتم ضغط المورد جيدًا بالفعل ، أو إذا كان صغيرًا ويكون الحمل الإضافي لإضافة قاموس GZIP أعلى من مدخرات الضغط. يمكننا أن نعزو هذه الظاهرة إلى مفهوم يسمى ترميز الإنتروبيا . GZIP شديد المقاومة لهذا التأثير.

مجاني للاستخدام ومفتوح المصدر

تم إنشاء GZIP بشكل أساسي كبديل مجاني ومفتوح المصدر لبرنامج الضغط الحاصل على براءة اختراع والمستخدم في أنظمة Unix المبكرة. وبالتالي ، فهي ليست مرهونة بأي براءات اختراع ويمكن لأي شخص استخدامها بحرية.

يتمتع بدعم عالمي

وفقًا لـ W3Techs ، يتم استخدام ضغط GZIP بواسطة 82٪ من جميع مواقع الويب التي يتتبعونها ، مما يجعلها خوارزمية الضغط الأكثر استخدامًا عبر الويب.

يدعم GZIP جميع الخوادم والعملاء تقريبًا. بغض النظر عن الخادم الذي تستضيف موقعك عليه ، يمكنك تسريع ذلك من خلال تمكين GZIP عليه.

تحذيرات GZIP في أدوات اختبار سرعة الموقع

بجانب التصغير ، يعد تمكين GZIP أحد أبسط تحسينات السرعة وأكثرها فعالية والتي يمكنك تنفيذها على موقع الويب الخاص بك.

إنها أيضًا إحدى أسهل الطرق لتحسين وورد بريس. على الرغم من ذلك ، لا تزال العديد من مواقع وورد بريس لا تستخدمها.

عند زيارة أحد مواقع الويب ، يتحقق المستعرض الخاص بك مما إذا كان خادم الويب قد تم تمكين GZIP به عن طريق التحقق من عنوان content-encoding: gzipالاستجابة. إذا كان الرأس موجودًا ، فإنه يسترد الملفات المضغوطة ويفك ضغطها ثم يقدم لك الملفات الأصغر تلقائيًا.

رأس استجابة “ترميز المحتوى: gzip”

رأس استجابة “ترميز المحتوى: gzip” في Chrome DevTools

إذا لم يكتشف المتصفح رأس استجابة GZIP ، فسيقوم بتنزيل الملفات غير المضغوطة. في معظم الحالات ، يمكن أن يكون الاختلاف في سرعات تحميل الصفحة عدة ثوانٍ. وبالتالي ، إذا لم يكن لديك GZIP ممكّنًا ، فسترى تحذيرات في أدوات اختبار سرعة موقع الويب .

تحذير GZIP في PageSpeed ​​Insights / Lighthouse من Google

تثير Google PageSpeed ​​Insights تحذيرًا عندما لا يكون لديك أي ضغط نص ممكّن على موقع الويب الخاص بك.

ملاحظة: كانت Google PageSpeed ​​Insights و Google Lighthouse أداتين منفصلتين لاختبار أداء موقع الويب. لقد عملوا بشكل مستقل عن بعضهم البعض حتى عام 2018 ، عندما قامت Google بترقية PageSpeed ​​Insights لاستخدام Lighthouse كمحرك تحليل خاص بها. ومن ثم ، فإن PageSpeed ​​Insights و Lighthouse هما نفس الشيء الآن.

تحذير “تمكين ضغط النص” في Google PageSpeed ​​Insights

تحذير “تمكين ضغط النص” في Google PageSpeed ​​Insights

في مثال الموقع أعلاه ، يمكن أن يؤدي ضغط الموارد المستندة إلى النصوص إلى تقليل وزن الصفحة بنسبة تزيد عن 78٪ وتسريع وقت تحميل الصفحة بمقدار 2.1 ثانية .

تريد أن تعرف كيف زدنا من حركة المرور لدينا أكثر من 1000 ٪؟

انضم إلى أكثر من 20000 آخرين ممن يتلقون رسائلنا الإخبارية الأسبوعية مع نصائح من الداخل حول وورد بريس!

إشترك الآن

ملاحظة: تعتمد PageSpeed ​​Insights على رؤوس الاستجابة التي يتم إرجاعها إلى متصفحك بواسطة الخادم. في بعض الأحيان ، قد يُظهر تحذيرًا خاطئًا حتى عند تمكين ضغط GZIP. قد يكون ذلك بسبب تشغيل اختبار السرعة على جهاز يستخدم خادم وكيل وسيط أو برنامج أمان. قد تتداخل مع تنزيل الملفات المضغوطة من خوادم خارجية.

تحذير GZIP في GTmetrix

تعرض GTmetrix تحذيرًا إذا كان موقع الويب الخاص بك لا يقدم موارد مضغوطة تستند إلى النصوص. مثل Google PageSpeed ​​Insights ، سيُظهر لك أيضًا المدخرات المحتملة التي يمكنك تحقيقها.

تحذير “تمكين الضغط” في GTmetrix

تحذير “تمكين الضغط” في GTmetrix

ملاحظة: تقوم GTmetrix بترقية خوارزمية اختبار السرعة الخاصة بها لاستبدال مكتبات PageSpeed ​​Insights القديمة ومكتبات YSlow بأحدث مقاييس Google Lighthouse . يمكنك أن تتوقع أن يكون تحذير ضغط GZIP مشابهًا للتحذير الذي تظهره Lighthouse.

تحذير GZIP في أدوات Pingdom

تطرح Pingdom Tools تحذيرًا مباشرًا لضغط مكونات موقع الويب الخاص بك باستخدام GZIP.

تحذير “ضغط المكونات باستخدام GZIP” في أدوات Pingdom

تحذير “ضغط المكونات باستخدام GZIP” في أدوات Pingdom

في قسم الوصف ، تمنحك أدوات Pingdom أيضًا بعض الإحصائيات حول أهمية GZIP. حبوب فاصولياء رائعة!

تحذير GZIP في WebPageTest

يعرض WebPageTest تحذيرًا في علامة التبويب ” مراجعة الأداء” الخاصة به إذا اكتشف أن أي استجابات قابلة للضغط لا يتم تقديمها بأفضل طريقة ممكنة .

تحذير “استخدام ضغط GZIP” في WebPageTest

تحذير “استخدام ضغط GZIP” في WebPageTest

سيعطي WebPageTest أيضًا درجة متدرجة لإظهار مدى خطورة التحذير. على سبيل المثال ، يصنف التحذير أعلاه 23 من 100 ، مما يعني أنه يجب عليك إصلاحه كأولوية.

كيفية التحقق من تمكين ضغط GZIP

و Accept-Encoding: gzip, deflateهو رأس HTTP مدعومة بشكل فعال جميع المتصفحات الحديثة . وبالتالي ، فإن معظم مضيفي الويب ، بما في ذلك Kinsta ، يمكّنون ضغط GZIP افتراضيًا على جميع خوادمهم.

عندما ترى خوادم الويب هذا العنوان مرسلاً بواسطة المستعرض ، فإنها تتعرف على دعم المستعرض لـ GZIP وتستجيب باستجابة HTTP مضغوطة باستخدام content-encoding: gzipالرأس.

ولكن إذا كنت تستخدم موفر استضافة وورد بريس آخر ، أو إذا كنت تريد فقط تأكيد ما إذا كان موقع الويب الخاص بك يقدم محتوى GZIP المضغوط بشكل صحيح ، فتحقق دائمًا مما إذا كان ممكّنًا أم لا.

فيما يلي بعض الطرق المباشرة للتحقق من ضغط GZIP.

1. أدوات اختبار ضغط GZIP عبر الإنترنت

يعد استخدام أداة عبر الإنترنت أسهل طريقة للتحقق مما إذا كان ضغط GZIP ممكّنًا على موقع الويب الخاص بك. أوصي باستخدام أداة Check GZIP Compression المجانية أو أدوات اختبار ضغط HTTP . ما عليك سوى إدخال عنوان URL لموقع الويب الخاص بك والضغط على الزر ” فحص” أو ” اختبار” .

ستعرض لك هاتان الأداتان عبر الإنترنت تقريرًا موجزًا ​​حول ما إذا كان قد تم تمكين GZIP أم لا ، وكمية نقل البيانات التي قمت بحفظها (أو قد تحفظها) من خلال تقديم عنوان URL للاختبار مع تمكين ضغط GZIP.

ستعرض لك الأداة الأولى أيضًا معلومات أخرى ذات صلة مثل نوع خادم موقع الويب الخاص بك ونوع المحتوى ووقت الضغط.

اختبار الصفحة الرئيسية لـ Kinsta باستخدام أداة Check GZIP Compression

اختبار الصفحة الرئيسية لـ Kinsta باستخدام أداة Check GZIP Compression

اختبار Kinsta.com باستخدام أداة اختبار ضغط HTTP

اختبار Kinsta.com باستخدام أداة اختبار ضغط HTTP

يجب أن تلاحظ أن تحسين GZIP لا يتوقف عند صفحة الويب الخاصة بك فحسب ، بل يشمل أيضًا أصوله الثابتة القائمة على النصوص مثل أوراق الأنماط والنصوص والخطوط. إذا كنت تستخدم CDN لخدمة هذه الأصول ، فأنت بحاجة إلى التأكد من أن CDN تخدمها أيضًا مع تمكين ضغط GZIP.

معظم شبكات تقديم المحتوى الحديثة مثل كلودفلاري، Kinsta CDN ، KeyCDN، ودعم CloudFront GZIP ضغط. يمكنك اختبار الأصول التي تخدمها CDN لضغط GZIP عن طريق الارتباط مباشرة بالأصول.

اختبار ضغط GZIP للأصول التي تستضيفها CDN

اختبار ضغط GZIP للأصول التي تستضيفها CDN

في التقرير أعلاه ، يمكنك أن ترى أن Kinsta CDN تستخدم محرك KeyCDN ، وهو عبارة عن CDN سحب تقليدي. إذا كنت تستخدم Kinsta لاستضافة موقع وورد بريس الخاص بك ، فلا داعي للقلق بشأن أي شيء يتعلق بضغط GZIP لأنه يتم تمكينه افتراضيًا.

معلومات

تتضمن جميع خطط استضافة وورد بريس في Kinsta دعمًا مجانيًا لـ Kinsta CDN.

2. رأس استجابة HTTP “ترميز المحتوى: gzip”

الطريقة الثانية للتحقق مما إذا كان موقع الويب يقدم محتوى GZIP مضغوطًا عن طريق التحقق من content-encoding: gzipرأس استجابة HTTP.

هل سئمت من دعم استضافة وورد بريس من المستوى 1 دون الإجابات؟ جرب فريق الدعم العالمي! تحقق من خططنا

يمكنك فتح Chrome DevTools أو Firefox Developer Tools والبحث عن رأس الاستجابة هذا ضمن قسم Network .

لقد أظهرت بالفعل كيف يبدو في Chrome DevTools سابقًا. وإليك كيف تبدو في Firefox Developer Tools.

رأس “content-encoding: gzip” في Firefox Developer Tools

رأس “content-encoding: gzip” في Firefox Developer Tools

يمكنك أيضًا تمكين خيار “استخدام صفوف الطلبات الكبيرة” في لوحة إعدادات Chrome DevTools لرؤية الحجم الأصلي والمضغوط للصفحة. كما ترى أدناه ، تم تقليل حجم الصفحة الأصلية من 118 كيلوبايت إلى 22.9 كيلوبايت فقط بعد ضغطها باستخدام GZIP.

عرض أحجام الصفحات المضغوطة مقابل غير المضغوطة في Chrome Devtools

عرض أحجام الصفحات المضغوطة مقابل غير المضغوطة في Chrome Devtools

3. أدوات اختبار سرعة صفحة الويب

ستحذرك معظم أدوات اختبار سرعة مواقع الويب من عدم استخدام الضغط مثل GZIP لخدمة صفحات الويب الخاصة بك. من المحتمل أن يأتي العديد من القراء الذين يصلون إلى هذه المقالة بسبب تحذيرات GZIP هذه بالضبط ، والتي ناقشنا الكثير منها أعلاه بعمق.

تحذيرات GZIP في أدوات اختبار سرعة صفحات الويب المختلفة

تحذيرات GZIP في أدوات اختبار سرعة صفحات الويب المختلفة

يمكنك استخدام أدوات مثل PageSPeed Insights و GTmetrix و Pingdom Tools و WebPageTest للتحقق مما إذا كان ضغط GZIP ممكّنًا على موقع وورد بريس الخاص بك.

كيفية تفعيل ضغط GZIP

إذا لم يكن لديك ضغط GZIP ممكّنًا على خادم الويب الخاص بك ، فهناك العديد من الطرق للقيام بتمكينه. تعتمد الطريقة الدقيقة على خادم الويب الذي تستخدمه لاستضافة موقع الويب الخاص بك.

هام: كما هو الحال دائمًا ، احتفظ بنسخة احتياطية من ملفات تهيئة الموقع والخادم قبل تحريرها.

تفعيل GZIP مع برنامج وورد بريس الإضافي

أسهل طريقة لتمكين ضغط GZIP على موقع وورد بريس الخاص بك هي استخدام التخزين المؤقت أو المكون الإضافي لتحسين الأداء.

على سبيل المثال ، إذا كنت تستضيف موقع وورد بريس الخاص بك على خادم ويب Apache ، فإن W3 Total Cache يتضمن خيارًا لتمكين ضغط GZIP ضمن لوحة إعدادات Browser Cache .

وبالمثل ، يتيح لك WP Rocket إضافة قواعد ضغط GZIP تلقائيًا . تعمل هذه المكونات الإضافية على تمكين ضغط GZIP عن طريق إضافة mod_deflateوحدة Apache إلى ملف htaccess .

تمكين ضغط GZIP في W3 Total Cache

تمكين ضغط GZIP في W3 Total Cache

تتطلب إضافات وورد بريس أذونات لتعديل الملفات على خادم الويب الخاص بك. إذا لم يكن لديهم الأذونات الصحيحة ، فسيفشلون أو يظهرون لك خطأ.

في مثل هذه الحالات ، تحتاج إلى الاتصال بموفر الاستضافة أو تعديل ملفات تكوين خادم الويب يدويًا باستخدام مقتطفات التعليمات البرمجية أدناه.

ملاحظة: قامت Kinsta بتحسين نظامها الأساسي من أجل الأداء العالي والموثوقية والأمان . يتضمن ذلك أيضًا تمكين ضغط GZIP افتراضيًا لجميع خطط الاستضافة الخاصة به.

نظرًا لأن المكونات الإضافية للتخزين المؤقت لجهات خارجية قد تتسبب في حدوث تعارض مع تحسينات الأداء الداخلي لـ Kinsta ، فإن Kinsta لا تسمح بمعظمها على خوادمها. لمزيد من المعلومات ، يمكنك الاطلاع على القائمة الكاملة للمكونات الإضافية المحظورة في Kinsta .

تفعيل GZIP على خادم ويب Apache

وفقًا لـ Netcraft ، يخدم Apache مواقع أكثر نشاطًا من أي خادم ويب آخر قيد الاستخدام اليوم. إنه أيضًا أحد خادمي الويب الموصى بهما بواسطة وورد بريس .

لتمكين ضغط GZIP على خوادم أباتشي، تحتاج إلى استخدام لها mod_filterو mod_deflateحدات وتكوينها بشكل صحيح مع التوجيهات الصحيحة. سيقومون بتوجيه Apache لضغط إخراج الخادم قبل إرسالها إلى العملاء عبر الشبكة.

لديك خياران لتحرير تكوينات خادم Apache بناءً على مستوى الوصول لديك:

إذا كان بإمكانك الوصول إلى ملف تكوين الخادم الرئيسي (يسمى عادةً httpd.conf ) ، فمن المستحسن استخدامه لتهيئة Apache حيث يمكن لملفات htaccess أن تبطئ Apache.

إذا لم تتمكن من الوصول إلى ملف تكوين الخادم الرئيسي ، وهو ما يحدث عادةً مع معظم موفري الاستضافة المشتركة في وورد بريس ، فأنت بحاجة إلى تكوين Apache باستخدام ملف htaccess .

الخيار الأول مخصص فقط لمسؤولي النظام ، حيث نادرًا ما يسمح لك موفرو الاستضافة بتحرير ملف تكوين الخادم الرئيسي. شرح كيفية القيام بذلك بهذه الطريقة خارج نطاق هذه المقالة. يمكنك الرجوع إلى نموذج Apache Server Configs الذي تمت مشاركته بواسطة مشروع HTML5 Boilerplate ووثائق Apache للبدء.

الخيار الثاني مثالي لمعظم مالكي مواقع وورد بريس حيث يسمح لك العديد من موفري الاستضافة المشتركة بتعديل ملفات htaccess .

للبدء ، استخدم SFTP أو مدير الملفات عبر الإنترنت لمضيفك للعثور على ملف .htaccess في الدليل الجذر لموقع وورد بريس الخاص بك. ثم أضف مقتطف الشفرة أدناه إليه.

هام: تأكد من أن mod_filterالوحدة نشطة على الخادم الخاص بك. يقوم معظم مضيفي الويب بتمكينه افتراضيًا ، ولكن إذا لم يكن الأمر كذلك ، AddOutputFilterByTypeفلن يعمل التوجيه وقد يؤدي إلى ظهور خطأ HTTP 500. يمكنك التحقق من سجلات أخطاء الخادم إذا كانت لديك أية مشكلات بعد إضافة مقتطف الشفرة أدناه.

<IfModule mod_deflate.c>
  # Compress HTML, CSS, JavaScript, Text, XML and fonts
  AddOutputFilterByType DEFLATE application/javascript
  AddOutputFilterByType DEFLATE application/rss+xml
  AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
  AddOutputFilterByType DEFLATE application/x-font
  AddOutputFilterByType DEFLATE application/x-font-opentype
  AddOutputFilterByType DEFLATE application/x-font-otf
  AddOutputFilterByType DEFLATE application/x-font-truetype
  AddOutputFilterByType DEFLATE application/x-font-ttf
  AddOutputFilterByType DEFLATE application/x-javascript
  AddOutputFilterByType DEFLATE application/xhtml+xml
  AddOutputFilterByType DEFLATE application/xml
  AddOutputFilterByType DEFLATE font/opentype
  AddOutputFilterByType DEFLATE font/otf
  AddOutputFilterByType DEFLATE font/ttf
  AddOutputFilterByType DEFLATE image/svg+xml
  AddOutputFilterByType DEFLATE image/x-icon
  AddOutputFilterByType DEFLATE text/css
  AddOutputFilterByType DEFLATE text/html
  AddOutputFilterByType DEFLATE text/javascript
  AddOutputFilterByType DEFLATE text/plain
  AddOutputFilterByType DEFLATE text/xml  

  # Remove browser bugs (only needed for ancient browsers)
  BrowserMatch ^Mozilla/4 gzip-only-text/html
  BrowserMatch ^Mozilla/4\.0[678] no-gzip
  BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
  Header append Vary User-Agent
</IfModule>

أضف الكود أعلاه فقط بعد التوجيهات الحالية لملف htaccess الخاص بك . احفظ الملف ثم تحقق مما إذا كان يمكّن ضغط GZIP على الخادم الخاص بك.

مثال على ملف Apache .htaccess بعد تمكين ضغط GZIP

مثال على ملف Apache .htaccess بعد تمكين ضغط GZIP

يجب أن يخدم خادم الويب الآن الملفات المضغوطة لجميع امتدادات الملفات المذكورة أعلاه. يمكنك تأكيد ذلك باستخدام أي من الطرق المذكورة سابقًا.

إذا كنت تريد التأكد من أن الخوادم الوكيلة وبرامج الأمان من جانب العميل لا تتداخل مع ضغط GZIP ، فيمكنك استبدال مقتطف الشفرة أعلاه بالمقتطف أدناه.

<IfModule mod_deflate.c>
  # force compression for clients that mangle 'Accept-Encoding' request headers
  <IfModule mod_setenvif.c>
  <IfModule mod_headers.c>
    SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s*,?\s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding
    RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding
  </IfModule>
  </IfModule>

  # compress all output with one of the following file extensions
  <IfModule mod_filter.c>
    AddOutputFilterByType DEFLATE "application/atom+xml" \
                                  "application/javascript" \
                                  "application/json" \
                                  "application/ld+json" \
                                  "application/manifest+json" \
                                  "application/rdf+xml" \
                                  "application/rss+xml" \
                                  "application/schema+json" \
                                  "application/geo+json" \
                                  "application/vnd.ms-fontobject" \
                                  "application/wasm" \
                                  "application/x-font-ttf" \
                                  "application/x-javascript" \
                                  "application/x-web-app-manifest+json" \
                                  "application/xhtml+xml" \
                                  "application/xml" \
                                  "font/eot" \
                                  "font/opentype" \
                                  "font/otf" \
                                  "font/ttf" \
                                  "image/bmp" \
                                  "image/svg+xml" \
                                  "image/vnd.microsoft.icon" \
                                  "text/cache-manifest" \
                                  "text/calendar" \
                                  "text/css" \
                                  "text/html" \
                                  "text/javascript" \
                                  "text/plain" \
                                  "text/markdown" \
                                  "text/vcard" \
                                  "text/vnd.rim.location.xloc" \
                                  "text/vtt" \
                                  "text/x-component" \
                                  "text/x-cross-domain-policy" \
                                  "text/xml"
  </IfModule>

  # define and map media types to their appropriate encoding type    
  # Using SVG format (Scalable Vector Graphics) is highly recommended to    
  # load logos, icons, text, and simple images. You can compress .SVG files
  # further using GZIP to create .SVGZ files. However, most browsers don’t
  # know that they need to decompress them first if they’re not served
  # without an appropriate ‘content-encoding’ HTTP response header. Thus,
  # these images wouldn’t show up in the browser. Hence, this module.

  <IfModule mod_mime.c>
    AddType image/svg+xml svg svgz
    AddEncoding gzip svgz
  </IfModule>

</IfModule>

يمكنك معرفة المزيد حول جميع التوجيهات المستخدمة هنا من خلال الانتقال إلى مستودع الكود الخاص به واتباع جميع الموارد المرتبطة به.

قم بتمكين GZIP على Nginx Web Server

وفقًا لـ Netcraft ، يعد Nginx خادم الويب الأكثر استخدامًا بواسطة أجهزة الكمبيوتر التي تواجه الويب . إذا استمر الاتجاه الحالي ، فسوف يتفوق قريبًا على Apache ليصبح خادم الويب الأكثر استخدامًا من قبل المواقع النشطة. حتى Kinsta تستخدم Nginx لتشغيل حلول الاستضافة المحسّنة للأداء لـ وورد بريس.

يمكنك تمكين ضغط GZIP على خادم الويب Nginx باستخدام التوجيهات المحددة في ngx_http_gzip_module .

للبدء ، أضف التعليمات الواردة أدناه إلى ملف nginx.conf الخاص بك . عادة ، يمكنك العثور على هذا الملف في /etc/nginx/nginx.confموقع الخادم الخاص بك .

# enables GZIP compression
gzip on; 

# compression level (1-9)
# 6 is a good compromise between CPU usage and file size
gzip_comp_level 6;

# minimum file size limit in bytes to avoid negative compression outcomes
gzip_min_length 256;

# compress data for clients connecting via proxies
gzip_proxied any;

# directs proxies to cache both the regular and GZIP versions of an asset
gzip_vary on;

# disables GZIP compression for ancient browsers that don't support it
gzip_disable "msie6";

# compress outputs labeled with the following file extensions or MIME-types
# text/html MIME-type is enabled by default and need not be included
gzip_types
application/atom+xml
application/geo+json
application/javascript
application/x-javascript
application/json
application/ld+json
application/manifest+json
application/rdf+xml
application/rss+xml
application/vnd.ms-fontobject
application/wasm
application/x-web-app-manifest+json
application/xhtml+xml
application/xml
font/eot
font/otf
font/ttf
image/bmp
image/svg+xml
text/cache-manifest
text/calendar
text/css
text/javascript
text/markdown
text/plain
text/xml
text/vcard
text/vnd.rim.location.xloc
text/vtt
text/x-component
text/x-cross-domain-policy;

إذا كان موقعك يعرض ملفات JS و CSS كبيرة الحجم ، فيمكنك زيادة حجم المخزن المؤقت المستخدم للضغط عن طريق إضافة التوجيه التالي إلى ملف nginx.conf الخاص بك :

# sets the 'number' and 'size' of buffers for GZIP compression
# default buffer size is 4K or 8K depending on the platform
gzip_buffers 16 8k;

لا تنس إعادة تحميل Nginx بعد حفظ ملف nginx.conf .

sudo service nginx reload

أخيرًا ، يجب عليك اختبار لمعرفة ما إذا كان الخادم الخاص بك قد تم تمكين ضغط GZIP. يمكنك الرجوع إلى وثائق Nginx للحصول على قائمة محدثة بجميع ngx_http_gzip_moduleالتوجيهات.

قم بتمكين GZIP على خادم ويب IIS

تعد خدمات معلومات الإنترنت من Microsoft (IIS) ثالث أكثر خوادم الويب شيوعًا المستخدمة اليوم. يتم نشر IIS بشكل أساسي في بيئات المؤسسات التي تعمل على Windows ، وخاصة لإعداد خوادم الإنترانت والإكسترانت الخاصة بالشركة.

انها نادرا ما تستخدم لاستضافة المواقع وورد نظرا لمختلف القضايا التوافق.

ومع ذلك ، إذا وجدت نفسك في إحدى تلك المواقف النادرة حيث تحتاج إلى تمكين ضغط GZIP على IIS ، يمكنك الرجوع إلى وثائق Microsoft للبدء. قد تجد أيضًا موضوع Stack Overflow هذا مفيدًا.

بدائل لضغط GZIP

يتقدم عالم ضغط البيانات على الويب دائمًا. مع زيادة متوسط ​​حجم الصفحة باستمرار ، تحاول تقنية الويب اللحاق به أيضًا لجعل نقل البيانات عبر الويب أكثر كفاءة.

زيادة حجم الصفحة بمرور الوقت (المصدر: HTTPArchive)

زيادة حجم الصفحة بمرور الوقت (المصدر: HTTPArchive)

اكتسبت خوارزمية ضغط جديدة شعبية واسعة خلال السنوات القليلة الماضية: Brotli . كان ضغط خطوط الويب WOFF2 هو التركيز الرئيسي لـ Brotli في الأصل ، ولكنه توسع منذ ذلك الحين لدعم الضغط لأي نوع من البيانات.

يقوم Brotli بضغط البيانات بشكل أفضل من GZIP ، ولكنه يتطلب الكثير من الوقت والموارد لضغط البيانات. ومع ذلك ، فإن وقت تخفيف الضغط الخاص به يمكن مقارنته بوقت GZIP ، على الرغم من أنه لا يزال أبطأ قليلاً.

دعم Brotli عبر المتصفحات المختلفة

دعم Brotli عبر المتصفحات المختلفة

تدعم معظم المتصفحات Brotli اليوم ، لكن استخدامه على مواقع وورد بريس لا يزال معقدًا إلى حد ما. يجب أن تستضيف موقعك مع مزود استضافة يدعم Brotli أو يسمح لك بتثبيت مكتبة Brotli. معظم مضيفي وورد بريس المُدارين لا يدعمونها بشكل مباشر حتى الآن ، ولكن إذا كنت تستخدم CDN مثل Cloudflare أو KeyCDN ، فيمكنك تمكينه بسهولة.

يُظهر Brotli وعدًا كبيرًا لأصول الضغط الثابتة. نشر Akamai مقالاً مفصلاً يقارن بين Brotli و GZIP . يمكنك التحقق من ذلك لمعرفة المزيد عن Brotli.

جاهز لتسريع موقعك؟ ⚡️ يعد تمكين ضغط GZIP على خادم الويب أحد أبسط الطرق وأكثرها فعالية لتحقيق ذلك. تعرف على الكيفية باستخدام هذه الإرشادات التفصيلية خطوة بخطوة ⬆️

انقر للتغريد

ملخص

يعد الويب المحسن جيدًا أمرًا رائعًا للجميع. يحب المستخدمون مواقع الويب الأكثر سرعة ، ويحب مالكو مواقع الويب رسوم الاستضافة المخفضة ، ويحب مضيفو الويب التحسين الذي تحقق على خوادمهم. تعد تقنيات الضغط مثل GZIP واحدة من أفضل الطرق لتسريع أوقات تحميل الصفحة للزائرين.

يمكن لمالكي مواقع وورد بريس تسريع مواقعهم على الفور عن طريق تمكين ضغط GZIP. يقوم Kinsta بتمكينه افتراضيًا على جميع خوادمه ، ولكن بالنسبة للآخرين ، تغطي هذه المقالة طرقًا متعددة لتمكين ضغط GZIP على خوادم الويب المختلفة.

السرعة أمر بالغ الأهمية لأي موقع. فقط اضغط!

وفر الوقت والتكاليف وحقق أقصى قدر من أداء الموقع من خلال:

مساعدة فورية من خبراء استضافة وورد بريس ، 24/7.

تكامل Cloudflare Enterprise.

يصل الجمهور العالمي إلى 28 مركز بيانات حول العالم.

التحسين من خلال مراقبة أداء التطبيقات المضمنة لدينا.

توضيح

اي عملية نسخ او اقتباس او ترجمة او نقل تم لاغراض علمية وتدريبية وتعليمية بحته وقد تم انشاء هذا المحتوى بمعرفة خبراء في مجال التقنية اما عن طريق إنشاء او تحرير او نقل او نسخ او اقتباس او ترجمة المحتوى من مصادر خاصة او عامة وكل ذلك ضمن حقوق النشر المتعارف عليها.

اي أخطاء تظهر في المحتوى مهما كان نوعه او تصنيفه يمكنك تحرير رسالة فورية لادارة موثوق لاجل تصحيح هذه الاخطاء، وسنكون شاكرين لك في حال قمت بالتعاون معنا لاجل اصلاح هذه الاخطاء.

شاركنا رايك وتقييمك للموضوع

{{ reviewsTotal }}{{ options.labels.singularReviewCountLabel }}
{{ reviewsTotal }}{{ options.labels.pluralReviewCountLabel }}
{{ options.labels.newReviewButton }}
{{ userData.canReview.message }}