جواب کوتاه: اگر سایت شما معرفی کسبوکار، وبلاگ یا یک فروشگاه با فرایند خرید معمولی است و میخواهید سریع راه بیفتد، طراحی سایت با وردپرس معمولاً انتخاب منطقیتری است. اگر کسبوکارتان منطق خاصی دارد که در هیچ افزونهای نمیگنجد، مثل رزرو با قواعد پیچیده، قیمتگذاری متغیر، اتصال عمیق به سیستمهای داخلی یا پنلی که کارکنان هر روز با آن کار میکنند، کدنویسی اختصاصی (مثلاً با PHP و Laravel) در درازمدت کمدردسرتر است.
سؤال «وردپرس یا PHP» کمی گمراهکننده است، چون خود وردپرس هم با PHP نوشته شده. مقایسهی واقعی بین «یک سیستم آماده با افزونهها» و «نرمافزاری که دقیقاً برای کار شما ساخته شده» است. هیچکدام همیشه بهتر نیست؛ در ادامه معیارها را یکییکی بررسی میکنیم و در آخر یک جدول تصمیم و فهرستی از سؤالهایی داریم که باید از طراح سایت بپرسید.
دو رویکرد، در یک نگاه
وردپرس یک سیستم مدیریت محتوای متنباز است. هستهی آن نوشتن و مدیریت صفحه و مطلب را انجام میدهد و بقیهی قابلیتها با قالب و افزونه اضافه میشوند. برای فروشگاه، رایجترین انتخاب افزونهی WooCommerce است. طراح معمولاً قالبی را انتخاب و شخصیسازی میکند، افزونههای لازم را نصب میکند و محتوا را وارد میکند.
کدنویسی اختصاصی یعنی برنامهنویس، معمولاً روی یک فریمورک مثل Laravel، فقط همان چیزی را میسازد که لازم دارید. پایگاهداده، صفحات، پنل مدیریت و منطق کسبوکار همه برای کار شما طراحی میشوند. فریمورک کارهای تکراری مثل احراز هویت، فرمها و ارتباط با پایگاهداده را آماده دارد، ولی هر قابلیت باید ساخته شود.
سرعت راهاندازی
وردپرس اینجا برندهی روشن است. یک سایت معرفی یا وبلاگ با قالب آماده میتواند در مدت کوتاهی بالا بیاید، چون بیشتر کار انتخاب و تنظیم است نه ساختن. فروشگاه با WooCommerce هم سبد خرید، مدیریت موجودی و سفارش را از روز اول دارد.
در کدنویسی اختصاصی، حتی با فریمورک، هر صفحه و هر قابلیت باید طراحی، نوشته و تست شود. اگر بازار را آزمایش میکنید و هنوز مطمئن نیستید ایده جواب میدهد، صرف چند ماه برای ساختن نسخهی اختصاصی معمولاً منطقی نیست.
هزینه در طول زمان
قیمت اولیه فقط بخشی از ماجراست. هزینهی واقعی یک سایت در چند سال جمع میشود:
- وردپرس: هزینهی اولیهی کمتر. در ادامه: تمدید لایسنس افزونهها و قالبهای تجاری، بهروزرسانی منظم، و هر بار که نیازی پیش بیاید که افزونهها پوشش نمیدهند، هزینهی شخصیسازی. این شخصیسازیها اگر بد انجام شوند، روی هم انباشته میشوند و هر تغییر بعدی را گرانتر میکنند.
- اختصاصی: هزینهی اولیهی بیشتر. در ادامه: نگهداری توسط کسی که کد را میشناسد، بهروزرسانی فریمورک و وابستگیها، و توسعهی قابلیتهای جدید. در عوض قابلیت تازه روی پایهای ساخته میشود که برای همین کار طراحی شده.
قاعدهی کلی: هرچه نیازهای شما به «حالت استاندارد» نزدیکتر باشد، وردپرس در درازمدت هم ارزانتر میماند. هرچه از حالت استاندارد دورتر شوید، هزینهی کجکردن وردپرس به سمت نیاز شما بیشتر از هزینهی ساختن میشود. این همان سؤال ساختن، خریدن یا اشتراک است که در بسازیم، بخریم یا اشتراک بگیریم مفصل بررسی کردهایم.
افزونهها و بهروزرسانی امنیتی
وردپرس بهخاطر محبوبیتش هدف اول رباتهای حمله است. بیشتر آسیبپذیریها هم نه در هستهی وردپرس، بلکه در افزونهها و قالبها پیدا میشوند. سه خطر رایج:
- افزونهی رهاشده: توسعهدهنده دیگر آن را بهروز نمیکند و آسیبپذیریهایش باز میمانند.
- نسخهی کرکشده یا «نال»: افزونه یا قالب تجاری که از منبع غیررسمی دانلود شده و ممکن است کد مخرب داشته باشد.
- بهروزنکردن: سایتی که ماهها کسی به آن سر نزده.
با رعایت چند اصل، وردپرس میتواند امن بماند: افزونهی کم و معتبر، بهروزرسانی منظم، نسخهی پشتیبان قبل از هر بهروزرسانی، و رمزهای قوی با ورود دومرحلهای برای مدیرها.
کد اختصاصی سطح حملهی کوچکتری دارد، چون فقط چیزهایی که لازم است در آن وجود دارد و رباتها مسیرهای شناختهشدهای برای حمله ندارند. ولی این به معنی امنبودن خودکار نیست. امنیتش کاملاً به کیفیت برنامهنویس بستگی دارد و فریمورک و وابستگیهایش هم باید بهروز بمانند. کد اختصاصی بدون نگهداری همانقدر خطرناک است که وردپرس بدون بهروزرسانی.
در هر دو حالت، نسخهی پشتیبان با قاعدهی ۳-۲-۱ اختیاری نیست.
کارایی و سرعت
یک وردپرس سبک با قالب تمیز، افزونهی کش و تصاویر بهینه میتواند بسیار سریع باشد. مشکل معمولاً از قالبهای چندمنظورهی سنگین، صفحهسازهایی که HTML حجیم تولید میکنند و انبوه افزونههایی شروع میشود که هر کدام اسکریپت و کوئری خودشان را اضافه میکنند.
در کد اختصاصی فقط همان چیزی که لازم است لود میشود و کوئریها برای دادهی شما طراحی میشوند، پس سقف کارایی بالاتر است. ولی کد اختصاصی بد نوشتهشده هم میتواند از وردپرس کندتر باشد. جزئیات عوامل سرعت را در سرعت سایت به چه عواملی بستگی دارد آوردهایم.
انعطاف و مقیاس
وردپرس تا جایی انعطاف دارد که افزونهها اجازه میدهند. وقتی نیاز شما با منطق یک افزونه نمیخواند، دو راه دارید: افزونه را دستکاری کنید (که با بهروزرسانی بعدی از بین میرود) یا کد جانبی بنویسید که با آن کنار بیاید. چند بار تکرار این کار، سایت را به مجموعهای شکننده تبدیل میکند.
ساختار دادهی وردپرس هم عمومی است: تقریباً همهچیز در جدولهای posts و postmeta ذخیره میشود. برای وبلاگ و فروشگاه کوچک مشکلی نیست، ولی برای دادهی پیچیده یا حجم بالا، کوئریها کند و گزارشگیری سخت میشود. در کد اختصاصی، طراحی پایگاهداده دقیقاً بر اساس دادهی شماست (انتخاب پایگاهداده).
چه کسی نگهش میدارد؟
این سؤال اغلب فراموش میشود و شاید مهمترین سؤال باشد.
وردپرس را تعداد بسیار زیادی از طراحان و توسعهدهندگان میشناسند. اگر طراح فعلیتان در دسترس نباشد، پیدا کردن کسی که کار را ادامه دهد نسبتاً ساده است. مدیریت محتوا هم آنقدر آشناست که خودتان یا کارکنانتان میتوانید مطلب و محصول اضافه کنید.
کد اختصاصی را در ابتدا فقط کسی که نوشته بهخوبی میشناسد. اگر روی فریمورکی رایج، با ساختار استاندارد، مستندات و کنترل نسخه با Git نوشته شده باشد، برنامهنویس دیگری هم میتواند ادامهاش دهد. اگر نه، ممکن است مجبور شوید از نو بسازید. پس اگر سراغ اختصاصی میروید، مالکیت سورسکد و دسترسی کامل به مخزن را از روز اول داشته باشید.
طراحی سایت فروشگاهی: کدام؟
برای فروشگاه آنلاین، تصمیم معمولاً به این بستگی دارد که فروش شما چقدر «استاندارد» است:
- محصول فیزیکی، سبد خرید، درگاه پرداخت، ارسال و تخفیف: WooCommerce اینها را آماده دارد و برای بیشتر فروشگاههای کوچک و متوسط کافی است.
- قیمتگذاری پیچیده (بر اساس مشتری، حجم یا فرمول)، سفارشساز، فروش عمده و خرده با قواعد متفاوت، یا اتصال دوطرفه به انبار و حسابداری: اینجاست که افزونهها روی هم سوار میشوند و کد اختصاصی ارزشش را نشان میدهد. برای اتصال به سیستمهای دیگر، مفهوم API کلیدی است.
راه میانه هم وجود دارد: فروشگاه را با WooCommerce راه بیندازید و بخش خاص را بهصورت یک سرویس جدا بسازید که از طریق API با فروشگاه حرف میزند.
جدول تصمیم
| وضعیت شما | انتخاب پیشنهادی |
|---|---|
| سایت معرفی، شرکتی یا نمونهکار | وردپرس |
| وبلاگ یا سایت محتوایی | وردپرس |
| فروشگاه با فرایند خرید معمول | وردپرس با WooCommerce |
| آزمایش یک ایده با بودجه و زمان محدود | وردپرس یا ابزار آماده |
| منطق کسبوکار خاص که افزونهای برایش نیست | اختصاصی |
| پنل داخلی که کارکنان هر روز با آن کار میکنند | اختصاصی |
| اتصال عمیق به سیستمهای دیگر | اختصاصی یا ترکیبی |
| دادهی پیچیده یا حجم بالا با گزارشگیری جدی | اختصاصی |
| بدون هیچ نیروی فنی برای نگهداری | وردپرس با افزونههای کم و قرارداد پشتیبانی |
سؤالهایی که باید از طراح سایت بپرسید
چه وردپرس چه اختصاصی، این سؤالها کیفیت کار را خیلی زود نشان میدهند:
- سورسکد و دسترسیها مال کیست؟ دامنه، هاست، پنل مدیریت و مخزن کد باید به نام شما یا در دسترس کامل شما باشد.
- چه افزونهها یا کتابخانههایی استفاده میکنید و لایسنسشان به نام کیست؟ افزونهی تجاری باید لایسنس معتبر داشته باشد، نه نسخهی کرکشده.
- بهروزرسانیها را چه کسی و هر چند وقت انجام میدهد؟ و اگر بهروزرسانی چیزی را خراب کرد چه میشود؟
- نسخهی پشتیبان کجا و هر چند وقت گرفته میشود و آخرین بار کی بازگردانی آن تست شده؟
- اگر بعداً بخواهم قابلیت X را اضافه کنم، چقدر سخت است؟ جواب صادقانه به این سؤال خیلی چیزها را روشن میکند.
- سایت روی موبایل و با اینترنت معمولی چقدر سریع است؟ بخواهید نتیجهی تست PageSpeed Insights را نشانتان دهد.
- اگر همکاریمان تمام شد، چه چیزی تحویل میگیرم؟ سورس، مستندات، دسترسیها و نسخهی پشتیبان کامل.
- چرا این رویکرد را برای کار من پیشنهاد میکنید؟ طراحی که برای هر پروژهای فقط یک جواب دارد، احتمالاً بر اساس توانایی خودش پیشنهاد میدهد، نه نیاز شما.
جمعبندی
وردپرس برای بیشتر سایتهای معرفی، وبلاگها و فروشگاههای معمولی سریعترین و اقتصادیترین راه است، به شرط اینکه با افزونههای کم و معتبر ساخته شود و کسی مرتب بهروزش کند. کدنویسی اختصاصی وقتی برنده است که منطق کسبوکار شما خاص است، سایت ابزار کار روزانه است یا باید به سیستمهای دیگر وصل شود. قبل از انتخاب، نیازتان را روی کاغذ بنویسید (اول مسئله را بنویسید)، بپرسید چه کسی آن را در سالهای بعد نگه میدارد و مطمئن شوید هر چه ساخته میشود، واقعاً مال شماست.