یک شرکت تولیدی در اصفهان برای کاتالوگ، فرم نمایندگی و انتشار مقاله، ماهها بودجه «سایت اختصاصی» خرج کرد و در پایان برای تغییر یک تیتر هم به برنامهنویس وابسته ماند. در سوی دیگر، یک پخشکننده B2B در تهران قیمت مخصوص هر مشتری، سقف اعتبار، تأیید سرپرست و اتصال ERP را با انبوه افزونههای وردپرس کنار هم چید؛ هر بهروزرسانی یک ریسک تازه ساخت. مشکل هیچکدام خود فناوری نبود؛ مسئله را با گزینه نامتناسب حل کرده بودند.
وردپرس یا طراحی سایت اختصاصی؟ اگر کار اصلی شما انتشار محتوا، سایت شرکتی، کاتالوگ یا فروش استاندارد است و تیم میتواند قالب/افزونهها را اداره کند، وردپرس معمولاً Time-to-value بهتری دارد. اگر مزیت کسبوکار در Workflow، قیمتگذاری، نقشها، داده، Realtime یا Integration ویژه است و برای Product، QA، DevOps و Security ظرفیت دائمی دارید، توسعه اختصاصی یا Hybrid میتواند توجیه شود. «اختصاصی» بودن بهتنهایی مزیت نیست؛ فقط مسئولیت بیشتری را داخل سازمان میآورد.
پاسخ سریع بر اساس نوع پروژه
| سناریو | نقطه شروع محتمل | دلیل | شرط تغییر مسیر |
|---|---|---|---|
| سایت شرکتی، بلاگ، Landing و Lead | WordPress استاندارد | Editor، Media، SEO و Workflow آماده | منطق عملیاتی پیچیده یا کانالهای متعدد |
| فروشگاه با Catalog/Checkout رایج | WordPress + WooCommerce کنترلشده | شروع سریع و اکوسیستم پرداخت/ارسال | قیمتگذاری/موجودی/سفارش بسیار ویژه |
| پرتال مشتری یا پنل عملیات | Custom یا Hybrid | Role، State machine و داده هسته محصولاند | اگر فقط چند فرم و گزارش ساده باشد |
| Marketplace، رزرو پیچیده یا B2B | Discovery سپس Custom/Hybrid | تسویه، کمیسیون، ظرفیت و قواعد خاص | اگر SaaS تخصصی Fit بهتری بدهد |
| تیم محتوا + اپلیکیشن تخصصی | WordPress برای Content، App اختصاصی برای Core | تفکیک نرخ تغییر و مسئولیت | اگر Integration و عملیات دو سیستم گران شود |
| MVP با عدمقطعیت بالا | Builder/WordPress/No-code محدود | یادگیری پیش از سرمایهگذاری | پس از اثبات Workflow و Constraints |
این انتخاب دو گزینه ندارد؛ پنج پله دارد
۱. سایتساز میزبانیشده
برای معرفی ساده، Landing یا اعتبارسنجی ایده، Builder میتواند سریعترین گزینه باشد. اما Export، دسترسی به کد/داده، SEO فنی، هزینه مبتنی بر Plan و امکان اتصال باید پیش از خرید آزموده شود. مقایسه کامل این مسیر در راهنمای سایتسازهای هوش مصنوعی، TCO و خروج آمده است.
۲. وردپرس پیکربندیشده
هسته، Theme و تعداد کمی افزونه معتبر بدون تغییر عمیق. این پله برای Content، Marketing و فرایندهای رایج مناسب است. سرعت تحویل خوب است، اما Governance افزونه، Staging و Patch همچنان لازماند.
۳. وردپرس با Theme یا Plugin اختصاصی
CMS و Workflow تحریریه حفظ میشود، اما Capability متمایز در Plugin/Block اختصاصی پیاده میگردد. این گزینه غالباً از «صد افزونه» یا «بازنویسی همهچیز» بهتر است؛ بهشرط آنکه منطق دامنه از Theme جدا، API/Schema تعریف و تست خودکار وجود داشته باشد.
۴. معماری Hybrid یا Headless
WordPress ممکن است منبع محتوای Editorial باشد و Frontend یا Core transaction جدا اجرا شود. REST API رسمی WordPress دسترسی ساختاریافته به محتوا و توسعه Client جدا را ممکن میکند. این انعطاف هزینه Cache invalidation، Preview، Authentication، Search، Deployment و Observability دو سامانه را اضافه میکند.
۵. اپلیکیشن اختصاصی
Framework، کتابخانه و سرویسهای استاندارد استفاده میشوند، اما Domain model، Workflow، API و UI برای مسئله شما ساخته میشوند. «اختصاصی» نباید به معنی بازنویسی رمزنگاری، Auth، Queue، Search یا Admin از صفر باشد. Build-versus-buy برای هر Capability جداست.
پیش از مقایسه، «طراحی اختصاصی» را در قرارداد تعریف کنید
دو پیشنهاد ممکن است هر دو «اختصاصی» نامیده شوند اما یکی فقط ظاهر سفارشی روی WordPress باشد و دیگری نرمافزار کامل. برای Quote همسطح، این لایهها را مشخص کنید:
| لایه | پرسش Scope | Evidence تحویل |
|---|---|---|
| UX/UI | Design system و Journey اختصاصی است یا Template تغییر میکند؟ | Figma، Stateها، Responsive و Accessibility acceptance |
| CMS/Admin | WordPress/Headless CMS/پنل سفارشی کدام است؟ | Role matrix، Draft/Review/Preview/Revision |
| Domain logic | قیمت، سفارش، رزرو، عضویت یا Approval چگونه مدل میشود؟ | State machine و Business-rule tests |
| Integration | پرداخت، ERP، CRM، پیامک و Accounting چه قرارداد API دارند؟ | Sandbox test، Error/retry/idempotency و reconciliation |
| زیرساخت | Hosting، CI/CD، CDN، Backup و Monitoring با کیست؟ | IaC/config، dashboard، alert و restore drill |
| مالکیت | کد، Design، Data، حسابها و License متعلق به چه کسی است؟ | Repository، export، credentials handover و license register |
اگر پیشنهاد فقط «طراحی اختصاصی ۳۰ صفحه» میگوید، هنوز معماری یا محصول را تعریف نکرده است. صفحه واحد هزینه نیست؛ Template، Component، State، Rule، Role، Integration و Migration محرک واقعیاند.
از Feature list به قرارداد نیاز برسید
در Discovery، هر نیاز را با این قالب بنویسید:
Actor + Job + Trigger Current baseline + Pain evidence Rule / Data / State / Exception Volume + Peak + Freshness + SLO Outcome + Guardrail + Acceptance test Owner + Change frequency + Legal/Security class
مثلاً «باشگاه مشتریان» Feature نیست. آیا کاربر امتیاز میبیند؟ امتیاز از ERP میآید؟ قابل برگشت است؟ چند سطح و تاریخ انقضا دارد؟ در Refund چه میشود؟ چه کسی اختلاف را حل میکند؟ وقتی این Contract روشن شود، ممکن است افزونه استاندارد Fit باشد یا آشکار شود که Domain logic اختصاصی لازم است.
نشانههای نیاز استاندارد
- Content type و Workflow تحریریه رایجاند.
- نقشها به Admin/Editor/Author/Customer نزدیکاند.
- قیمت، مالیات، ارسال، کوپن و Checkout استثنای محدود دارند.
- Integrationها مستند، پایدار و کمتعدادند.
- بار و SLO با Cache/CDN و Hosting متعارف پوشش داده میشود.
نشانههای منطق متمایز
- قیمت یا دسترسی تابع مشتری، قرارداد، شعبه، اعتبار و Approval است.
- Workflow چندمرحلهای با State، SLA، Escalation و Audit دارد.
- داده حساس، چند Tenant، Realtime، Offline یا Correctness سخت دارید.
- چند کانال از یک API و Source of truth مشترک استفاده میکنند.
- تغییر Capability هسته مزیت رقابتی است و هر ماه رخ میدهد.
مقایسه وردپرس و سایت اختصاصی؛ نه با شعار، با Trade-off
| معیار | WordPress مدیریتشده | Custom/Hybrid | سؤال تعیینکننده |
|---|---|---|---|
| زمان شروع | برای نیاز استاندارد کوتاهتر | Discovery و Foundation بیشتر | چه زمانی اولین Outcome لازم است؟ |
| تجربه تحریریه | قوی و آماده | باید انتخاب/ساخته شود | روزانه چند نفر محتوا منتشر میکنند؟ |
| منطق ویژه | تا جایی که Hook/Plugin سالم بماند | مدل دقیقتر و قابل تست | استثناها چقدر هسته کسبوکارند؟ |
| تغییر | ترکیب Core/Theme/Plugin releases | Release cadence در کنترل تیم | توان Regression test دارید؟ |
| امنیت | Patch ecosystem + hardening | SSDLC + مالکیت تمام نقصها | چه کسی ۲۴/۷ وصله و Incident را اداره میکند؟ |
| Performance | با Theme/Plugin/Cache خوب قابل دفاع | قابل بهینهسازی برای مسیر خاص | Budget و RUM دارید یا فقط ادعا؟ |
| Lock-in | Plugin/Theme/Builder/Host ممکن است قفل بسازند | Vendor/team/undocumented code ممکن است قفل بسازد | Export و Rebuild rehearsal شده؟ |
| TCO | شروع پایینتر؛ License/maintenance متغیر | Build/people/ops بالاتر؛ Fit بالقوه بهتر | ۳۶ ماه و Exit را حساب کردهاید؟ |
هزینه را با TCO سهساله مقایسه کنید، نه قیمت روز اول
TCO36 = Discovery + Design + Build + Content/Migration
+ Hosting/CDN/Email/Search/Storage
+ Licenses/Plugins/SaaS/Usage/FX
+ Maintenance + QA + Security + DevOps + Support
+ Change demand + Downtime/Incident expected loss
+ Exit/Export/Replatform - Reusable asset valueدر ایران، عدد ثابت خیلی زود کهنه میشود. مدل را با Driver بسازید: Role-day، تعداد Template و Integration، Catalog size، Order/Request volume، Peak، Release/month، Support hour، نرخ ارز و Renewal. برای هر Driver بازه Low/Likely/High و تاریخ قیمت بگذارید. روش ساخت Estimate و مقایسه Quote در راهنمای برآورد هزینه طراحی سایت آمده است.
| هزینه | WordPress | Custom | خطای رایج |
|---|---|---|---|
| Setup | Theme/Plugin/config/custom blocks | Discovery/architecture/product foundation | مقایسه Template با Product کامل |
| Recurring | Hosting، License، update، backup | Cloud، Team، on-call، tooling | حذف زمان داخلی تیم |
| Variable | Traffic، orders، email، storage | Compute، API، queue، logs، support | ندیدن Peak و Overage |
| Change | Compatibility و customization | analysis/build/test/release | فرض رایگانبودن تغییر |
| Risk | plugin abandon/conflict/compromise | bus factor/defect/security debt | Risk را صفر گرفتن |
| Exit | data/media/URL/builder cleanup | code/data/docs/infra replacement | Export بدون Restore/Rebuild test |
اقلامی مثل جلسه، QA، مانیتورینگ، تمدید، مهاجرت و زمان خرابی معمولاً از Quote اولیه حذف میشوند؛ Cost register مقاله هزینههای پنهان سایت این بخش را کامل میکند.
زمان را در سه نقطه بسنجید
- Time to first value: چند روز/هفته تا اولین Journey قابل استفاده؟
- Lead time for change: از درخواست تا Production چند روز است؟
- Recovery time: از شکست Release تا بازگشت سرویس چقدر؟
وردپرس میتواند شروع را کوتاه کند، اما اگر هر تغییر در Page Builder و چند افزونه Regression بسازد، Lead time بلند میشود. Custom میتواند Release pipeline سریع داشته باشد، اما فقط با Automated test، محیطها و Ownership روشن. جدول زمان پیشنهادی Vendor بدون WBS، Dependency و Acceptance ارزش تصمیم ندارد.
امنیت: WordPress ناامن نیست و Custom خودکار امن نمیشود
سطح حمله WordPress شامل Core، Theme، Plugin، Admin، Hosting و Supply chain است. سطح حمله Custom شامل کد اختصاصی، Dependencyها، CI/CD، API، Cloud، Secret، Admin و Business logic میشود. در هر دو، احتمال × اثر × قابلیت کشف را بسنجید.
راهنمای رسمی Hardening WordPress امنیت را فرایندی پیوسته و نیازمند نسخههای بهروز، Host قابل اعتماد، مجوز فایل، Backup و حفاظت دسترسی میداند. مستند بهروزرسانی خودکار Theme و Plugin نیز Backup و مدیریت Update را لازم میداند؛ Auto-update جای Staging و Rollback را برای مسیرهای درآمدی نمیگیرد.
| کنترل | WordPress | Custom |
|---|---|---|
| Inventory | Core/Theme/Plugin/PHP/Host | Services/Dependencies/Images/Cloud resources |
| Patch | Update SLA و Compatibility test | Dependency/SAST/DAST patch pipeline |
| Access | Least privilege، MFA، disable stale accounts | IAM، RBAC/ABAC، service accounts |
| Input/Output | Core APIs، sanitize/validate/escape، nonce | Schema validation، encoding، parameterized queries |
| Business logic | Plugin/custom code tests | Threat model، invariant و abuse-case tests |
| Incident | Known-good restore، credential rotation | rollback، feature flag، key rotation، forensic logs |
برای Custom، Requirement امنیت باید از طراحی وارد شود. OWASP ASVS میتواند مبنای قابل آزمون قرارداد امنیت باشد؛ «از آخر Pentest میگیریم» جای Secure SDLC را نمیگیرد. برای WordPress نیز راهنمای آپدیت امن، Staging و Rollback را در Operating model قرار دهید.
سرعت و مقیاس: نام پلتفرم KPI نیست
سایت اختصاصی میتواند Queryهای N+۱، JavaScript سنگین و Cache ناقص داشته باشد؛ WordPress نیز میتواند با Theme سبک، Object/page cache، CDN، تصاویر مناسب و Query سالم سریع باشد. تصمیم را با Journey و Budget بسنجید:
- Traffic معمول و Peak، نسبت Anonymous/Logged-in و Cacheability
- Catalog/Content size، Search/filter، Write rate و Freshness
- P75 LCP/INP/CLS در Mobile واقعی و شبکه کاربران ایران
- TTFB، Cache hit، Database time، Error rate و Saturation
- Checkout/Login/API latency و Correctness، نه فقط صفحه خانه
- Load test با Dataset و Dependency نزدیک Production
بودجه Performance و RUM برای هر دو معماری لازم است. روش اندازهگیری Field و جلوگیری از Regression در راهنمای Core Web Vitals، LCP، INP و CLS آمده است.
محتوا و SEO؛ هزینه Admin را دستکم نگیرید
WordPress فقط Renderer نیست؛ Draft، Revision، Media، Taxonomy، Preview، Schedule، Role، Embed و API تحریریه را آماده میدهد. در Custom باید تصمیم بگیرید این Capabilityها Build، Buy یا حذف شوند. یک پنل با دو Textarea «CMS کامل» نیست.
| Capability | Acceptance | ریسک Custom | ریسک WordPress |
|---|---|---|---|
| URL و Redirect | Slug پایدار، ۳۰۱ map، canonical | فراموشی lifecycle | تغییر افزونه/permalink |
| Metadata | Title/meta/OG/schema قابل کنترل | پنل ناقص | خروجی تکراری چند افزونه |
| Editorial | Draft/review/preview/revision/schedule | هزینه ساخت بالا | Role بیشازحد گسترده |
| Media | Alt، crop، formats، responsive images | Pipeline ناقص | Library حجیم/بیحاکمیت |
| Sitemap/indexing | فقط URLهای canonical/indexable | Edge caseهای حذفشده | Archiveهای کمارزش |
| Internationalization | Locale، RTL، URL و ترجمه ساختاری | Data model دیرهنگام | Plugin conflict/duplicate |
برای WordPress، انتخاب Gutenberg، Block Theme، Classic Theme یا Page Builder روی Performance و قابلیت خروج اثر دارد؛ مقاله گوتنبرگ، FSE و معماری ویرایش این تصمیم را پوشش میدهد.
مالکیت را با «فایل زیپ» اشتباه نگیرید
WordPress تحت GPLv2 یا بالاتر منتشر میشود و آزادی استفاده، مطالعه، تغییر و توزیع را فراهم میکند؛ اما این واقعیت بهتنهایی مالکیت دامنه، حساب Host، License افزونه تجاری، Design asset، داده مشتری یا دسترسی Repository را حل نمیکند. در Custom نیز پرداخت فاکتور لزوماً Assignment حقوق کد یا تحویل Source نیست.
Asset register تحویل
- دامنه، Registrar، DNS، CDN، TLS و ایمیل
- Hosting/Cloud، Billing owner، Backup و Logs
- Repository، Branch protection، CI/CD و Artifact registry
- Database schema، Data dictionary، Export و Retention
- Theme/Plugin/Font/Image/Code license و Renewal
- Analytics، Search Console، Tag manager، PSP، SMS و CRM accounts
- Design system، Source file، Content inventory و URL map
- Runbook، Architecture decision record و Vendor contact
Exit test، نه Exit clause
یک Export نمونه را روی محیط مستقل Restore کنید. در WordPress بررسی کنید Posts، Custom fields، Taxonomy، Media، User mapping و Redirectها بیرون میآیند؛ Shortcode/Page-builder blob میتواند قابل حمل نباشد. در Custom، Build از Repository تازه، Infrastructure، Seed data، Secret injection و Migration را تمرین کنید. اگر فقط Vendor قادر به راهاندازی است، مالکیت عملی ندارید.
Integration پرریسک را پیش از انتخاب پلتفرم نمونهسازی کنید
بسیاری از پروژهها نه در صفحه، بلکه در اتصال ERP، موجودی، قیمت، ارسال، پیامک یا پرداخت شکست میخورند. پیش از قرارداد اصلی یک Vertical slice بسازید:
real SKU/customer fixture → read inventory and customer-specific price → create cart/order with idempotency key → redirect to payment sandbox → verify callback/webhook server-side → write ERP result / handle timeout → reconcile order and expose support evidence
Contract شامل Source of truth، Auth، Timeout، Retry، Idempotency، Rate limit، Error taxonomy، PII، Audit، Reconciliation و Sandbox است. اگر API طرف مقابل ناپایدار باشد، Custom بودن Frontend آن را درمان نمیکند. گاهی Anti-corruption layer یا Integration service جدا بهترین مرز است.
چه زمانی Hybrid بهتر از مهاجرت کامل است؟
اگر Content/SEO بالغ است اما یک Workflow محصولی ویژه دارید، «Strangler» ریسک کمتری از Big-bang دارد:
mindio-example.ir → WordPress: content, landing, docs app.mindio-example.ir → Custom app: authenticated workflow api.mindio-example.ir → Domain services and integrations shared contracts: identity handoff, design tokens, analytics, consent, canonical URLs, navigation, incident/status ownership
اما Hybrid هزینه واقعی دارد: SSO، Cookie/CORS، Preview، Search، Cache invalidation، Analytics attribution، Deployment و Support چند تیم. اگر تنها دلیل آن «مدرن بودن Headless» است، نروید. معماری و مدل مهاجرت کامل در راهنمای Headless و Hybrid بررسی شده است.
اگر WordPress انتخاب شد: اکوسیستم افزونه را اداره کنید
| Gate افزونه/قالب | Evidence | رد فوری |
|---|---|---|
| ضرورت | Capability و Alternative ثبتشده | همپوشانی با ابزار موجود |
| نگهداری | Release history، compatibility، support | Abandoned یا پاسخندادن امنیتی |
| امنیت/حریم خصوصی | Data flow، permissions، disclosure process | Secret hard-coded یا data export مبهم |
| عملکرد | Query/script/style delta روی Dataset واقعی | Global asset غیرضروری و Regression شدید |
| قابلیت خروج | Data schema/export/cleanup | Content قفلشده بدون migration path |
| Commercial | License، renewal، site count، eligibility | Terms یا خرید/تمدید غیرقابل اتکا |
برای هر افزونه Owner، Version policy، Change window و Replacement plan داشته باشید. افزونه غیرفعال اما نصبشده نیز Code سطح حمله است. Pluginهای Production را با Composer/manifest یا حداقل Inventory نسخهدار نگه دارید؛ تغییر مستقیم فایل Core/Plugin ممنوع باشد.
اگر Custom انتخاب شد: تیم نگهداری بخشی از محصول است
سایت اختصاصی پروژهای نیست که روز تحویل تمام شود. حداقل نقشها و مسئولیتها را مشخص کنید؛ یک نفر ممکن است چند نقش داشته باشد، اما مسئولیت نباید گم شود:
- Product owner برای Outcome، Scope و Backlog
- Tech lead برای Architecture، review و debt
- Frontend/Backend برای Build و automated tests
- QA برای Journey، regression، device و accessibility
- DevOps/SRE برای deploy، backup، monitoring، capacity و incident
- Security/Privacy owner برای threat model، patch و data lifecycle
- Content/SEO owner برای schema، URL، redirect و editorial workflow
Bus factor، زمان On-call، تعطیلات، جانشینی Vendor و Knowledge transfer را در TCO بگذارید. اگر سازمان نمیتواند Release ماهانه، Patch اضطراری و Restore drill را اداره کند، Custom ممکن است کنترل نظری بدهد اما ریسک عملی را بیشتر کند.
نسخه ایران؛ نیازهایی که Demo خارجی نشان نمیدهد
| موضوع | تست پذیرش | ریسک طراحی دیرهنگام |
|---|---|---|
| ریال/تومان | نمایش، ورودی، ذخیره واحد Canonical، Round و Refund | خطای ۱۰برابری و گزارش ناسازگار |
| تاریخ | Gregorian ذخیره/Contract، جلالی نمایش و Range edge cases | فیلتر و گزارش اشتباه |
| RTL/BiDi | فارسی+English+عدد+URL در فرم، جدول، PDF و ایمیل | وارونگی شناسه و تجربه شکسته |
| جستوجوی فارسی | ی/ی، ک/ک، نیمفاصله، ارقام و غلط رایج | Zero result و Duplicate |
| آدرس/ارسال | استان/شهر، کدپستی، پلاک، واحد و Mobile | Order غیرقابل تحویل |
| پرداخت | Redirect/Callback/Verify/Retry/Reconcile و تومان/ریال | پرداخت موفق، سفارش ناموفق |
| پیامک/OTP | Provider failover، rate limit، consent و delivery evidence | Lockout و هزینه انفجاری |
| Provider/License | Eligibility، Terms، پرداخت، تمدید، Support و Export همان روز | قطع سرویس یا وابستگی بیخروج |
| شبکه | RUM و synthetic از ISP/Mobile داخل و خارج | معماری سریع روی VPN دفتر، کند برای مشتری |
راه دورزدن محدودیت Provider بخشی از معماری پایدار نیست. گزینهای انتخاب کنید که Eligibility و پشتیبانی قانونی/عملی آن برای سناریوی شما روشن باشد و مسیر Export مستقل داشته باشد.
کیفیت مشترک هر دو گزینه
پلتفرم، Accessibility را تضمین نمیکند. Acceptance را بر Journeyهای واقعی و مرجع WCAG 2.2 بسازید: Keyboard، Focus، Label/Error، Contrast، Zoom/Reflow، Screen reader، Reduced motion و Touch target. Theme آماده ممکن است مشکل داشته باشد؛ Component اختصاصی نیز اگر Semantics نداشته باشد بدتر است.
Definition of Done مشترک:
- Unit/Integration/E2E برای Ruleهای بحرانی
- Responsive/RTL/Browser/Device matrix
- Accessibility automated + manual keyboard/screen-reader sampling
- Performance budget و RUM
- Security acceptance و Dependency scan
- SEO crawl، canonical، schema، sitemap و redirect
- Backup/restore، rollback و incident drill
- Content/admin training و Handover evidence
ماتریس تصمیم وزندار بسازید
وزن را پیش از دیدن Demo Vendor تعیین کنید تا نتیجه با جذابیت ارائه جابهجا نشود. امتیاز ۱ تا ۵ را فقط با Evidence بدهید.
| معیار | وزن نمونه | Evidence |
|---|---|---|
| Fit فرایند و داده | ۲۰ | Vertical slice و rule coverage |
| Time to outcome | ۱۰ | WBS، dependency و acceptance milestones |
| TCO 36ماهه | ۱۵ | Driver model با Low/Likely/High |
| امنیت/حریم خصوصی | ۱۵ | Threat model، controls و operations |
| محتوا/SEO | ۱۰ | Editorial journey و crawl prototype |
| قابلیت تغییر | ۱۰ | Change exercise و lead time |
| توان تیم/Operations | ۱۰ | RACI، on-call، update/restore drill |
| مالکیت/خروج | ۱۰ | Export/restore/rebuild evidence |
Security، Legal/Eligibility، Data correctness و Exit را Knockout کنید: گزینهای که حداقل را رد میکند با امتیاز زیبایی یا قیمت جبران نشود.
پیشنهادهای Vendor را همسطح کنید
یک RFP کوچک و Evidence-based بفرستید:
- Outcome، کاربران، Journeyها و Baseline
- Scope in/out و Assumptionها
- Data/Role/Integration/Volume/SLO/Compliance
- Option architecture و Trade-off ثبتشده
- Deliverable، Acceptance، Owner و Milestone
- قیمت Setup/Recurring/Variable/Change/Risk/Exit
- Team/CV/availability/Bus factor و Subcontractor
- Security، QA، Deployment، Support و Incident
- IP/license/accounts/repository/data/exit clauses
- Vertical slice پولی کوچک پیش از Commit اصلی
«نامحدود»، «امن»، «سئو کامل»، «سرعت عالی» و «مالکیت صددرصد» بدون Test و Boundary امتیاز نمیگیرند. Reference مشتری را درباره Upgrade، Incident، Change quote و Exit بپرسید، نه فقط رضایت از ظاهر.
Discovery دوهفتهای و Vertical slice؛ تصمیم فناوری را خروجی کنید
روزهای ۱ تا ۳: مسئله و Baseline
Journey، KPI، داده، نقش، Pain، حجم، Current cost و Constraints را ثبت کنید. راهحل از پیش تعیینشده وارد جلسه نشود.
روزهای ۴ تا ۶: Option و Knockout
Builder، WordPress standard/custom، Hybrid و Custom را روی Fit، تیم، امنیت، TCO و Exit مقایسه کنید. پیچیدگی غیرضروری را حذف کنید.
روزهای ۷ تا ۹: Vertical slice پرریسک
سختترین Integration یا Workflow را با داده نزدیک واقعیت بسازید؛ Happy path تنها کافی نیست. Timeout، Duplicate، Permission، RTL و Error recovery را آزمایش کنید.
روزهای ۱۰ تا ۱۲: Operations و Quality
Deploy، Rollback، Patch، Backup/Restore، RUM، Accessibility، Support و Handover را روی نمونه تمرین کنید.
روزهای ۱۳ و ۱۴: Investment gate
Architecture decision record، WBS، TCO range، Risks، Acceptance و Exit را تحویل دهید. اگر Evidence کافی نیست، Pilot را محدود تمدید کنید؛ Scope بزرگ را با حدس امضا نکنید.
پنج مثال نزدیک به بازار ایران
شرکت خدمات حرفهای با تیم محتوا
WordPress با Block/Pattern کنترلشده، CRM form integration و Governance افزونه معمولاً Fit است. پنل اختصاصی ارزش کمی دارد؛ بودجه را روی محتوا، Performance، Conversion و Analytics بگذارید.
فروشگاه با ۳۰۰۰ کالا و فرایند رایج
WooCommerce میتواند گزینه شروع باشد، اگر Sync موجودی، Cache، Checkout، Payment reconciliation و عملیات Update آزموده شود. «۳۰۰۰ کالا» بهتنهایی دلیل Custom نیست؛ Query pattern و Order peak مهماند.
پخش B2B با قرارداد قیمت و اعتبار
اگر هر مشتری لیست قیمت، شعبه، سقف اعتبار، تأیید فروش و ERP source of truth دارد، Plugin stacking احتمالاً بدهی میسازد. Custom domain service با WordPress برای Content یا Headless storefront قابل بررسی است.
کلینیک با معرفی پزشک و رزرو
سایت محتوایی میتواند WordPress باشد؛ رزرو و داده حساس را به سرویس تخصصی یا App جدا با Access، Audit و Retention مشخص بسپارید. اتصال سادهتر از نگهداری داده پزشکی در Custom post type عمومی است.
استارتاپ در جستوجوی Product-market fit
Landing و Content را سریع با WordPress/Builder بسازید و Core hypothesis را با Prototype جدا آزمایش کنید. بازنویسی بعد از یادگیری ممکن است ارزانتر از Foundation سنگین قبل از شناخت مسئله باشد.
چهار Runbook مستقل از انتخاب فناوری
Release شکست خورد
- Deployment را متوقف و Owner تعیین کنید.
- Error، Journey و تغییر مرتبط را ثبت کنید.
- Rollback/feature flag را طبق RTO اجرا کنید.
- Data migration را جدا Reconcile کنید.
- Root cause و Regression test اضافه کنید.
آسیبپذیری بحرانی اعلام شد
- Inventory و Exposure را مشخص کنید.
- Exploitability/impact را Triage و Mitigation موقت اعمال کنید.
- Patch را در Staging و Journeyهای بحرانی تست کنید.
- Deploy، Monitor و credential/key rotation لازم را انجام دهید.
- Evidence و SLA را ثبت کنید.
Backup باید Restore شود
- RPO/RTO و Last known good را تعیین کنید.
- Backup را در محیط ایزوله Verify کنید.
- Files/DB/config/secrets و external state را هماهنگ بازگردانید.
- Smoke test و Reconciliation انجام دهید.
- DNS/traffic را برگردانید و Postmortem بنویسید.
Vendor یا سرویس باید عوض شود
- Asset register، Contract و Export را Freeze/Snapshot کنید.
- Data/Media/URL/Account/License dependency را Map کنید.
- Rebuild/Restore را روی مقصد تمرین کنید.
- Migration را Canary و Redirect/Reconciliation را اجرا کنید.
- دسترسی قدیمی را Revoke و Retention/Deletion evidence بگیرید.
Backup بدون Restore test فقط امید است. RPO/RTO، نسخههای Immutable و تمرین کامل در راهنمای بازیابی فاجعه و Backup سایت آمده است.
هفت گزارهای که نباید مبنای تصمیم باشند
- «WordPress فقط برای سایت کوچک است»: بار، معماری، Cache، Query، افزونه و عملیات تعیینکنندهاند.
- «Custom همیشه سریعتر است»: Performance نتیجه Budget، طراحی و اندازهگیری است.
- «WordPress مالکیت ندارد»: Core آزاد است؛ Lock-in میتواند در Builder/Plugin/Host/Contract باشد.
- «Custom مالکیت کامل میدهد»: بدون Source، License، account، docs و rebuild test خیر.
- «افزونه یعنی بدون هزینه»: Evaluation، License، update، compatibility، support و exit هزینه دارند.
- «Headless سئو را بهتر میکند»: Rendering، metadata، URL، crawl و performance باید درست ساخته شوند.
- «بعداً امنیت و دسترسپذیری اضافه میکنیم»: دیرکرد، بازکاری و نقص ساختاری میسازد.
چکلیست نهایی Go/No-go
- Outcome، Baseline، کاربران و سختترین Journey شواهد دارند.
- نیاز استاندارد از منطق متمایز جدا شده است.
- پنج پله Builder/WordPress/WordPress custom/Hybrid/Custom مقایسه شدهاند.
- Quoteها Scope، Deliverable و Acceptance همسطح دارند.
- TCO سهساله Setup/Recurring/Variable/People/Risk/Exit را پوشش میدهد.
- امنیت، Privacy، Accessibility، Performance و SEO معیار آزمون دارند.
- WordPress plugin governance یا Custom SSDLC/operations بودجه دارد.
- مالکیت Repository/Data/Domain/Accounts/License و Exit test روشن است.
- ریال/تومان، جلالی، RTL، فارسی، پرداخت، پیامک و شبکه ایران تست شدهاند.
- Vertical slice پرریسک و Failure path پیش از Commit اصلی اجرا شده است.
- Release، Patch، Restore و Vendor-exit Runbook Owner دارند.
سؤالات متداول وردپرس یا طراحی اختصاصی
وردپرس بهتر است یا سایت اختصاصی؟
برای Content، سایت شرکتی و فروش استاندارد، WordPress معمولاً سریعتر و اقتصادیتر است. برای Workflow، نقش، داده و Integration متمایز، Custom یا Hybrid ممکن است Fit بهتری داشته باشد. پاسخ با نیاز و توان عملیات تعیین میشود، نه نام فناوری.
آیا سایت اختصاصی برای سئو بهتر است؟
خودکار خیر. هر دو میتوانند URL، Canonical، Schema، Sitemap، Performance و Editorial workflow خوب یا بد داشته باشند. در Custom باید Capabilityهای SEO/Admin را صریح بسازید؛ در WordPress خروجی Theme/Pluginها را کنترل کنید.
آیا وردپرس امن نیست؟
WordPress بهخاطر گستردگی هدف پرتکراری است، اما Core/Theme/Plugin بهروز، افزونه حداقلی، MFA، Least privilege، WAF، Backup، Monitoring و Incident process امنیت قابل دفاع میسازند. Custom نیز بدون Secure SDLC میتواند آسیبپذیرتر باشد.
هزینه طراحی اختصاصی چقدر بیشتر است؟
ضریب ثابت معتبری وجود ندارد. Scope، Integration، Role، داده، QA، SLO و تیم نگهداری تعیینکنندهاند. Low/Likely/High سهساله بسازید و WordPress سفارشیشده را با Custom همسطح مقایسه کنید.
آیا میتوان از وردپرس به سایت اختصاصی مهاجرت کرد؟
بله، اما Data/Media/Taxonomy/Custom field/User، URL و Redirect، SEO metadata و Integration باید Map شوند. Shortcode و Page-builder content ممکن است تبدیل بخواهد. مهاجرت تدریجی و Reconciliation از Big-bang امنتر است.
جمعبندی: WordPress مزیت آمادهبودن و اکوسیستم Content را میآورد؛ Custom کنترل Domain model و Workflow ویژه را، و Hybrid میتواند مرز این دو باشد. انتخاب حرفهای یعنی مسئله را تعریف کنید، سادهترین Option مناسب را پیدا کنید، TCO و Exit را حساب کنید و سختترین بخش را در Vertical slice شکست دهید. سایتی که تیم بتواند آن را تغییر دهد، ایمن نگه دارد و بازیابی کند، از سایتی که فقط برچسب «اختصاصی» یا «وردپرسی» دارد ارزشمندتر است.






