هاست اشتراکی مثل یک آپارتمان شلوغ است: منابع محدود، همسایههای پرمصرف و احتمال کندی در ساعات اوج. اگر سایت وردپرسی شما روی چنین هاستی میزبانی میشود، بهینه سازی وردپرس نه یک انتخاب، که یک ضرورت است. بدون بهینهسازی، حتی یک سایت ساده هم میتواند در تستهای سرعت مردود شود و بازدیدکنندگان را فراری دهد. در این مقاله، تکنیکهای عملی و قابل اجرا برای بهینهسازی وردپرس روی هاست اشتراکی را مرور میکنیم: از کش و فشردهسازی گرفته تا پاکسازی دیتابیس و مدیریت افزونههای پرمصرف. همه چیز با مثالهای واقعی و دستورات دقیق ارائه میشود.
۱. کش کردن: اولین و مهمترین گام در بهینه سازی وردپرس
کش کردن (Caching) یعنی ذخیره نسخهای ایستا از صفحات پویای وردپرس. وقتی کاربری صفحهای را باز میکند، به جای اجرای دوباره PHP و کوئریهای MySQL، نسخه کششده تحویل میگیرد. این کار بار سرور را تا ۸۰٪ کاهش میدهد و زمان بارگذاری را از ۳-۴ ثانیه به زیر ۱ ثانیه میرساند.
انتخاب افزونه کش مناسب برای هاست اشتراکی
برای هاست اشتراکی، افزونههای کش رایگان و سبک مثل WP Super Cache یا W3 Total Cache گزینههای خوبی هستند. اما پیشنهاد من WP Rocket (پولی) است چون تنظیماتش سادهتر است و مصرف منابع کمتری دارد. اگر بودجه ندارید، LiteSpeed Cache را امتحان کنید اگر هاست شما از سرور LiteSpeed استفاده میکند (با دستور curl -I yoursite.com | grep Server میتوانید نوع سرور را ببینید).
تنظیمات پایه کش در WP Super Cache
- افزونه را نصب و فعال کنید.
- به تنظیمات → WP Super Cache بروید.
- گزینه Caching On را فعال کنید.
- در بخش Advanced، تیک Use mod_rewrite to serve cache files را بزنید (اگر هاست شما از mod_rewrite پشتیبانی میکند).
- زمان انقضای کش را روی 3600 ثانیه (۱ ساعت) تنظیم کنید. برای سایتهای خبری که مدام بروز میشوند، ۱۸۰۰ ثانیه کافی است.
نکته مهم: اگر از افزونههای ووکامرس یا عضویت استفاده میکنید، حتماً گزینه Don't cache pages for known users را فعال کنید تا کاربران لاگینشده محتوای تازه ببینند.
کش مرورگر با فشردهسازی Gzip
کش مرورگر به مرورگر کاربر میگوید فایلهای ایستا (CSS، JS، تصاویر) را برای مدت مشخصی ذخیره کند. برای فعالسازی، کد زیر را به فایل .htaccess در ریشه وردپرس اضافه کنید:
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType text/css "access plus 1 month"
ExpiresByType application/javascript "access plus 1 month"
</IfModule>
فشردهسازی Gzip هم حجم فایلهای ارسالی را تا ۷۰٪ کاهش میدهد. این کد را به .htaccess اضافه کنید:
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript
</IfModule>
با ابزار Gzip Test میتوانید عملکرد را بررسی کنید.
۲. فشردهسازی تصاویر: کاهش حجم بدون افت کیفیت
تصاویر معمولاً ۶۰-۷۰٪ وزن یک صفحه را تشکیل میدهند. فشردهسازی هوشمندانه میتواند حجم را ۴۰-۸۰٪ کاهش دهد.
افزونههای فشردهسازی تصاویر
- Smush: رایگان و محبوب. تا ۵ مگابایت را فشرده میکند. تنظیمات پیشفرض آن کافی است.
- ShortPixel: نسخه رایگان ۱۰۰ تصویر در ماه. کیفیت بالاتر و فشردهسازی بهتر.
- EWWW Image Optimizer: بدون محدودیت حجم، اما نیاز به منابع سرور دارد.
برای استفاده از Smush، کافی است افزونه را نصب کنید و در رسانه → Smush گزینه Bulk Smush را بزنید. تنظیمات پیشفرض (فشردهسازی با کیفیت ۸۲٪) برای اکثر سایتها مناسب است.
فشردهسازی دستی با ابزارهای آنلاین
اگر نمیخواهید افزونه نصب کنید، تصاویر را قبل از آپلود با TinyPNG یا Compressor.io فشرده کنید. مثلاً یک تصویر ۱.۲ مگابایتی PNG با TinyPNG به ۳۰۰ کیلوبایت میرسد بدون افت کیفیت محسوس.
۳. پاکسازی دیتابیس: حذف آشغالهای وردپرس
دیتابیس وردپرس با گذشت زمان پر از دادههای بیاستفاده میشود: بازبینیهای پستها، نظرات اسپم، متاهای اضافی و ترانزینتهای منقضی. این دادهها کوئریها را کند میکنند و حجم دیتابیس را افزایش میدهند.
بهترین افزونه برای پاکسازی دیتابیس
WP-Optimize یک افزونه رایگان و قدرتمند است. برای استفاده:
- افزونه را نصب و فعال کنید.
- به WP-Optimize → Database بروید.
- تیک گزینههای زیر را بزنید:
- Remove all post revisions (بازبینیهای پستها)
- Remove all spam comments (نظرات اسپم)
- Remove all trashed comments (نظرات حذفشده)
- Remove expired transients (ترانزینتهای منقضی)
- Optimize database tables (بهینهسازی جداول)
- روی Run Optimization کلیک کنید.
این کار را ماهی یک بار انجام دهید. در یک سایت با ۱۰۰۰ پست، معمولاً ۵۰-۱۰۰ مگابایت فضای اضافی پاک میشود.
پاکسازی دستی با phpMyAdmin
اگر به دیتابیس دسترسی دارید، میتوانید از phpMyAdmin استفاده کنید. ابتدا از دیتابیس پشتیبان بگیرید. سپس کوئری زیر را اجرا کنید تا بازبینیهای پستها حذف شوند:
DELETE FROM wp_posts WHERE post_type = 'revision';
توجه: پیشوند جداول ممکن است wp_ نباشد. آن را از فایل wp-config.php پیدا کنید.
اشتباه رایج: حذف دستی رکوردهای wp_options بدون بررسی. این جدول حاوی تنظیمات حیاتی است. فقط رکوردهای مربوط به ترانزینتهای منقضی را پاک کنید (با DELETE FROM wp_options WHERE option_name LIKE '%_transient_%' AND option_value IS NULL).
۴. مدیریت افزونههای پرمصرف: شناسایی و جایگزینی
افزونههای پرمصرف مثل اسلایدرهای سنگین، صفحهسازهای حجیم و افزونههای امنیتی با قابلیتهای زیاد، منابع سرور را میبلعند. برای شناسایی آنها:
استفاده از Query Monitor
افزونه Query Monitor را نصب کنید. این ابزار نشان میدهد هر افزونه چند کوئری به دیتابیس میزند و چقدر زمان میبرد. اگر افزونهای بیش از ۵۰ کوئری در یک صفحه ساده ایجاد کند، باید جایگزین آن را پیدا کنید.
مثلاً یک افزونه اسلایدر معمولی ۲۰-۳۰ کوئری میزند، اما یک اسلایدر حرفهای مثل Revolution Slider ممکن است ۱۰۰+ کوئری بزند. در این موارد، از اسلایدرهای سبکتر مثل MetaSlider استفاده کنید.
جایگزینی افزونههای سنگین
- جایگزین Yoast SEO: از Rank Math استفاده کنید که سبکتر است و کوئریهای کمتری میزند.
- جایگزین Contact Form 7: از Fluent Forms یا WPForms Lite استفاده کنید.
- جایگزین Jetpack: فقط ماژولهای ضروری را فعال کنید یا از افزونههای مجزا مثل Akismet برای اسپم و VaultPress برای پشتیبان استفاده کنید.
تست کنید: یک افزونه را غیرفعال کنید و با GTmetrix یا PageSpeed Insights سرعت را اندازه بگیرید. اگر بهبود محسوس بود، آن افزونه را حذف کنید.
۵. بهینهسازی پایهای وردپرس بدون افزونه
برخی تنظیمات را میتوانید مستقیماً در فایلهای وردپرس اعمال کنید:
کاهش بازبینیهای پست
به فایل wp-config.php این خط را اضافه کنید تا تعداد بازبینیها محدود شود:
define('WP_POST_REVISIONS', 5);
این یعنی فقط ۵ نسخه آخر هر پست ذخیره شود. مقدار پیشفرض نامحدود است.
غیرفعال کردن XML-RPC
XML-RPC یک پروتکل قدیمی است که برای اتصال اپلیکیشنهای خارجی استفاده میشود. اگر از آن استفاده نمیکنید، با افزونه Disable XML-RPC یا کد زیر در .htaccess آن را غیرفعال کنید:
<Files xmlrpc.php>
Order Deny,Allow
Deny from all
</Files>
این کار حملات brute force را هم کاهش میدهد.
۶. مانیتورینگ و تست مداوم
بهینهسازی یکباره کافی نیست. هر ماه با ابزارهای زیر عملکرد را بررسی کنید:
- GTmetrix: زمان بارگذاری و توصیههای بهینهسازی.
- PageSpeed Insights: امتیاز Core Web Vitals.
- Pingdom Tools: تست از نقاط مختلف جهان.
هدف: زمان بارگذاری زیر ۲ ثانیه و امتیاز PageSpeed بالای ۸۰ برای موبایل و ۹۰ برای دسکتاپ.
نتیجهگیری
بهینهسازی وردپرس روی هاست اشتراکی کار دشواری نیست، اما نیاز به دقت و پیگیری دارد. با اجرای گامهای این مقاله – کش کردن، فشردهسازی تصاویر، پاکسازی دیتابیس و مدیریت افزونهها – میتوانید سرعت سایت خود را به طور چشمگیری افزایش دهید. یادتان باشد: هر تغییری را ابتدا در محیط آزمایشی تست کنید و همیشه از دیتابیس و فایلها پشتیبان بگیرید. اگر به دنبال میزبانی با منابع اختصاصیتر هستید، سرورنت گزینههای مختلفی از هاست اشتراکی تا سرور ابری ارائه میدهد که میتواند نیازهای شما را پوشش دهد. اما مهمتر از نوع هاست، اجرای صحیح تکنیکهای بهینهسازی است. شروع کنید و نتیجه را در کاهش نرخ پرش و افزایش رضایت کاربران ببینید.