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

دوستانی که از WordPress استفاده می کنن می دونن که توی نسخه ی جدید gzip به صورت داخلی اضافه شده و با استفاده از gzip صفحه ها رو کوچک می کنه و بالا اومدن صفحه رو تسریع می کنه. اما چطوری فایل های دیگه مثل جاوا اسکریپت ها و سی اس اس ها رو gzip کنیم؟ اگه از wordpress استفاده نمی کنیم چی؟ اگه از apache به عنوان وب سرور استفاده می کنید می تونید فایل هایی رو که می خواین با gzip به مرورگر بفرستین. توجه کنید که gzip متن ها رو به صورت خیلی خوبی فشرده می کنه اما کارایی برای فایل های دیگه نداره. پس ما می تونیم JS ها، CSS ها، HTML ها و XML ها رو gzip کنیم. فقط کافیه خطوط زیر رو به فایل htaccess اضافه کنید.

AddOutputFilterByType DEFLATE text/html text/plain text/xml text/javascript text/css

خوب برای این که بهتر بدونید با اضافه کردن این خط به htaccess چه اتفاقی می افته این رو اضافه می کنم که حجم CSS وبلاگ من 6KB هستش که بعد از gzip شدن به 1.5KB تبدیل می شه. حالا فرض کنید حجم صفحه ی اصلی وبلاگ شما 40KB باشه که این حجم به کمتر از 20KB تبدیل خواهد شد.

برای عکس ها همون طور که گفتم نمی شه از gzip استفاده کرد. اما می شه یه کاری کرد که هر بار که صفحه دیده می شه دوباره عکس ها لود نشن. راه حل این کار استفاده از cache هست که با هدر expire قابل کنترل خواهد بود. برای این کار خطوط زیر رو به فایل htaccess اضافه کنید. البته این جا غیر از عکس ها همین بلا رو سر جاوااسکریپت ها و CSS ها هم می یاریم

ExpiresActive on
ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/jpg "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
ExpiresByType text/css "access plus 1 month"
ExpiresByType text/javascript "modification plus 1 month"
ExpiresByType application/x-javascript "modification plus 1 month"

در آخر برای این که فایل ها رو مرورگر درست بشناسه یه شناسه برای فایل ها می فرستیم تا اگه تغییری توی فایل ها داده شد دیگه از cache استفاده نشه که به اون ETAG می گن. برای این کار خط زیر رو به htaccess اضافه کنید

FileETag MTime Size

خوب دیگه چیز دیگه ای نمونده، با وجود این که اگه همه چیز درست انجام شده باشه سرعت بالا اومدن صفحه ها محسوس خواهد بود می تونید بهبود سرعت صفحات خودتون رو با استفاده از YSlow امتحان کنید. من با این کار تونستم نمره ی ۸۶ رو برای وبلاگ و نمره ی ۹۳ رو برای سرباز بگیرم (از ۱۰۰).