یکی از بزرگترین چالشهای سایتهای فروشگاهی وردپرس، مخصوصاً اونهایی که محصولات زیادی دارن، کندی جستجو (Search) است.
کاربران وقتی عبارتی رو در نوار جستجو تایپ میکنن، انتظار دارن در کمتر از یک ثانیه نتیجه بگیرن. اما در وردپرس، مخصوصاً وقتی تعداد محصولات زیاد باشه (چند هزار یا چند دههزار محصول)، جستجو به شکل قابل توجهی کند میشه.
در این مطلب بهصورت دقیق توضیح میدیم که:
1. چرا جستجوی وردپرس کند است،
2. ElasticPress چطور این مشکل رو حل میکنه،
3. و چطور میتونید اون رو قدمبهقدم نصب و پیکربندی کنید.
چرا جستجوی وردپرس کند است؟
بهصورت پیشفرض، وردپرس از دیتابیس MySQL برای جستجو استفاده میکنه.
وقتی کاربر عبارتی مثل "کفش مردانه" رو سرچ میکنه، وردپرس این کوئری SQL رو اجرا میکنه:
SELECT * FROM wp_posts WHERE post_title LIKE '%کفش مردانه%'
مشکل اینجاست که:
* عبارت %keyword% باعث میشه ایندکسهای دیتابیس بیاثر بشن،
* کل جدول wp_posts باید اسکن بشه (Full Table Scan)،
* و در سایتهای بزرگ، این یعنی فشار سنگین روی CPU و کندی شدید پاسخ.
نتیجه؟ کاربر باید چند ثانیه منتظر بمونه و سرور هم بهمرور زمان کند میشه.
ElasticPress چیست؟
elasticpress یک افزونه متنباز از شرکت 10up است که جستجوی وردپرس را به موتور جستجوی Elasticsearch متصل میکند.
Elasticsearch یک موتور جستجوی فوق سریع و توزیعشده (Distributed) است که دادهها را بهصورت JSON ذخیره و ایندکس میکند.
برخلاف MySQL، جستجو در آن مبتنی بر ایندکس است، نه کوئری متنی، به همین دلیل سرعتی ۱۰ تا ۱۰۰ برابر بیشتر دارد.
مزایای استفاده از ElasticPress
✅ افزایش سرعت جستجو تا ۱۰ برابر
✅ کاهش فشار CPU و دیتابیس
✅ قابلیت جستجوی پیشرفته (فازی، خودکار، مرتبسازی دقیق و ...)
✅ پشتیبانی کامل از ووکامرس (محصولات، قیمتها، دستهبندیها)
✅ مناسب برای سایتهای فروشگاهی، خبری و محتوایی بزرگ
پیشنیازها
برای استفاده از ElasticPress باید یک سرویس Elasticsearch در دسترس داشته باشید.
دو گزینه اصلی دارید:
1. نصب Elasticsearch روی سرور خودتان
اگر سرور اختصاصی یا VPS دارید، میتونید Elasticsearch رو روی اون نصب کنید.
مثلاً در CentOS یا AlmaLinux با دستور:
sudo dnf install elasticsearch
و سپس فعالسازی:
sudo systemctl enable --now elasticsearch
2. استفاده از سرویسهای مدیریتشده (Managed Elasticsearch)
* مثلاً از سرویسهایی مثل [bonsai.io](https://bonsai.io) یا [elastic.co](https://www.elastic.co/cloud/) استفاده کنید.
* این گزینه برای کاربران هاست اشتراکی بهتره چون نیازی به دسترسی روت نداره.
مراحل نصب و پیکربندی ElasticPress
گام ۱: نصب افزونه از پیشخوان وردپرس
1. وارد پنل وردپرس بشید
2. به مسیر افزونهها → افزودن برید
3. عبارت ElasticPress رو جستجو کنید
4. روی نصب و سپس فعالسازی کلیک کنید
یا بهصورت دستی از این لینک نصب کنید:
(https://wordpress.org/plugins/elasticpress)
گام ۲: اتصال به سرور Elasticsearch
بعد از فعالسازی، در منوی سمت چپ وردپرس گزینهی ElasticPress اضافه میشه.
در بخشSettings آدرس سرور Elasticsearch رو وارد کنید، مثلاً:
http://127.0.0.1:9200
یا اگر از سرویس ابری استفاده میکنید، آدرس ارائهشده توسط سرویسدهنده رو وارد کنید.
گام ۳: ایندکس کردن دادهها
بعد از اتصال موفق، باید دادههای وردپرس (پستها، محصولات و...) رو ایندکس کنید تا ElasticPress اونها رو وارد موتور جستجو کنه.
در تنظیمات افزونه روی دکمهی:
Index Now
کلیک کنید و منتظر بمونید تا فرآیند کامل بشه. (برای سایتهای بزرگ ممکنه چند دقیقه طول بکشه.)
گام ۴: فعالسازی جستجوی بلادرنگ (Live Search)
اگر از ووکامرس استفاده میکنید، میتونید گزینهی WooCommerce Integration رو فعال کنید تا محصولات هم بهصورت آنی در نتایج جستجو ظاهر بشن.
نکته حرفهای: کش و بهینهسازی بیشتر
برای گرفتن بهترین عملکرد، پیشنهاد میشه از افزونههای کش مثل LiteSpeed Cache یا WP Rocket در کنار ElasticPress استفاده کنید.
این ترکیب باعث میشه:
* نتایج جستجو سریعتر لود بشن
* فشار روی PHP و MySQL به حداقل برسه
* تجربه کاربری عالی برای بازدیدکننده فراهم بشه
جمعبندی
اگر سایت شما وردپرسیه و جستجوها کند انجام میشه، ElasticPress یکی از بهترین و حرفهایترین راهحلهاست. برای اینکه از حداکثر قدرت افزونه ElasticPress استفاده کنید، می توانید از هاست وردپرس پویاسازان استفاده کنید.
این سرویس با منابع اختصاصی و پشتیبانی از Elasticsearch، بهترین عملکرد را برای سایتهای فروشگاهی و پرترافیک وردپرسی فراهم میکند. با چند کلیک ساده، زیرساخت جستجوی وردپرس شما از SQL به موتور جستجوی قدرتمند Elasticsearch منتقل میشه،و نتیجهاش سرعتی چندبرابر، مصرف کمتر منابع و رضایت بالاتر کاربران خواهد بود.