وضع <link>
s في <head>
يُعد وضع <link>
s في <head>
جزءًا من المواصفات الصحيحة في بناء موقع ويب محسن. عند تحميل صفحة لأول مرة، يتم تحليل HTML و CSS في وقت واحد؛ يُنشئ HTML نموذج كائن المستند (DOM) ويُنشئ CSS نموذج كائن CSS (CSSOM). كلاهما ضروري لإنشاء العناصر المرئية في موقع الويب، مما يسمح بتوقيت "أول رسم ذي معنى" سريع. هذا العرض التدريجي هو فئة تقاس بها مواقع التحسين في درجات أدائها. إن وضع أوراق الأنماط بالقرب من أسفل المستند هو ما يمنع العرض التدريجي في العديد من المتصفحات. تحظر بعض المتصفحات العرض لتجنب إعادة رسم عناصر الصفحة إذا تغيرت أنماطها. ثم يتعثر المستخدم في رؤية صفحة بيضاء فارغة. وفي أوقات أخرى، يمكن أن تكون هناك ومضات من المحتوى غير المصمم (FOUC)، والتي تعرض صفحة ويب بدون تطبيق أي أنماط.
وضع <script>
s قبل </body>
مباشرة
تُحظر علامات <script>
تحليل HTML أثناء تنزيلها وتنفيذها مما قد يبطئ صفحتك. سيسمح وضع السكريبتات في الأسفل بتحليل HTML وعرضه للمستخدم أولاً.
استثناء لموضع <script>
s في الأسفل هو عندما يحتوي السكريبت الخاص بك على document.write()
، ولكن في هذه الأيام ليس من الممارسات الجيدة استخدام document.write()
. أيضًا، يعني وضع <script>
s في الأسفل أن المتصفح لا يمكنه بدء تنزيل السكريبتات حتى يتم تحليل المستند بأكمله. وهذا يضمن أن الكود الخاص بك الذي يحتاج إلى معالجة عناصر DOM لن يرمي خطأ ويوقف السكريبت بأكمله. إذا كنت بحاجة إلى وضع <script>
s في <head>
، فاستخدم سمة defer
، والتي ستحقق نفس تأثير تشغيل السكريبت فقط بعد تحليل HTML ولكن يمكن للمتصفح تنزيل السكريبت في وقت مبكر.
ضع في اعتبارك أن وضع السكريبتات قبل وسم </body>
الختامي مباشرة سيخلق وهمًا بأن الصفحة تُحمّل بشكل أسرع على ذاكرة التخزين المؤقت الفارغة (نظرًا لأن السكريبتات لن تحظر تنزيل بقية المستند). ومع ذلك، إذا كان لديك بعض الكود الذي تريد تشغيله أثناء تحميل الصفحة، فلن يبدأ تنفيذه إلا بعد تحميل الصفحة بأكملها. إذا وضعت هذه السكريبتات في وسم <head>
، فستبدأ في التنفيذ قبل ذلك - لذلك على ذاكرة التخزين المؤقت المحضرة، ستظهر الصفحة في الواقع أسرع في التحميل.
علامات <head>
و <body>
اختيارية الآن
وفقًا لمواصفات HTML5، فإن بعض علامات HTML مثل <head>
و <body>
اختيارية. يوصي دليل أسلوب Google حتى بإزالتها لتوفير البايتات. ومع ذلك، لا تزال هذه الممارسة غير معتمدة على نطاق واسع ومن المرجح أن يكون مكسب الأداء ضئيلاً ولن يكون له أهمية لمعظم المواقع.