ممکن است سایت جدید در روز Cutover کاملاً بالا بیاید، اما سفارشهای ساعات آخر، URL تصاویر، رضایتهای بازاریابی یا وضعیت پرداخت در آن نباشد. این مهاجرت از نظر فنی «موفق» و از نظر کسبوکار شکستخورده است. خطر اصلی Replatforming کمبود Animation یا Framework مدرن نیست؛ ناشناختهبودن Capability، داده، State و مسئولیتهایی است که پلتفرم قبلی برای شما انجام میداد.
مهاجرت از سایتساز به پلتفرم جدید وقتی توجیه دارد که یک Gap اثباتشده، Outcome مهم را محدود کند و گزینه Extend/Integrate/Switch کمریسکتر نباشد. این راهنما از Decision و TCO تا Export rehearsal، Data mapping، URL/SEO، Security، تست، Cutover، Rollback و پایش پس از Launch را پوشش میدهد—با ملاحظات فارسی، پرداخت، پیامک و شبکه ایران.
مهاجرت مرحله طبیعی رشد نیست
سایتساز SaaS، فروشگاه Hosted، CMS متنباز، Headless و Custom code ابزارهایی با Boundary متفاوتاند؛ هیچکدام مرحله بالاتر تکامل دیگری نیست. یک Builder مدیریت Hosting، Patch، Availability و بخشی از Security را کم میکند. پلتفرم Custom آزادی میدهد، اما Product discovery، Architecture، Accessibility، Security، Backup، Monitoring و On-call را به تیم شما منتقل میکند.
| ادعای رایج | واقعیت قابلآزمون |
|---|---|
| Custom نامحدود است | هر معماری Capacity، budget، dependency و team limit دارد |
| Custom سریعتر است | Performance حاصل Budget، code، data و operation است |
| Custom امنتر است | Attack surface و مسئولیت Supply chain بیشتر میشود |
| Custom برای SEO بهتر است | فقط اگر Crawl/Index/URL/Content/Performance درست اجرا شود |
| Custom مالکیت داده میدهد | Contract، schema، exportability، backup و access تعیین میکنند |
| رشد یعنی خروج از Builder | Outcome و Capability gap، نه اندازه یا پرستیژ، تصمیم میسازد |
طیف راهحل؛ Build یا Nothing نیست
| گزینه | چه چیزی تغییر میکند؟ | ریسک |
|---|---|---|
| Optimize/configure | Theme، setting، workflow و content | کم |
| App/plugin/API | قابلیت محدود به پلتفرم اضافه میشود | Coupling و vendor quality |
| External service | Search/booking/CRM/automation جدا | Integration و data split |
| Switch hosted platform | Platform عوض، عملیات هنوز Managed | Data/URL migration |
| Headless | Presentation جدا، Commerce/CMS باقی | Preview/cache/forms/SEO complexity |
| Custom module/strangler | یک Domain capability جدا میشود | Dual system و consistency |
| Full replatform | Core data/workflow/runtime جایگزین | بیشترین scope و operational burden |
گاهی بهترین پاسخ، نگهداشتن Checkout روی Platform و ساخت Portal یا Configurator جداست. گاهی تغییر Hosted provider کمریسکتر از ساخت Commerce engine است. «اختصاصی» را به Boundary دقیق تبدیل کنید: کدام Capability واقعاً Build میشود و چه سرویسهایی Buy/Managed میمانند؟
Decision contract؛ چه زمانی مهاجرت موجه است؟
| فیلد | پرسش | Evidence |
|---|---|---|
| Outcome | چه نتیجهای محدود شده؟ | Revenue، task success، SLA یا risk |
| Capability gap | چه کاری واقعاً ممکن/قابلاعتماد نیست؟ | PoC، support answer، API/limit |
| Frequency/severity | چند بار و با چه اثر؟ | Incident/analytics/support logs |
| Alternatives | Configure/extend/integrate/switch؟ | گزینه و constraint |
| Target gain | بهبود قابلاندازهگیری چیست؟ | Acceptance threshold |
| TCO | Build+run+change+incident+exit؟ | سناریوی low/base/high |
| Readiness | Owner، skill، on-call و budget دارید؟ | RACI و staffing plan |
| Reversibility | اگر فرض غلط بود چه میکنید؟ | Pilot، rollback و exit |
Triggerهای معتبر
- Capability حیاتی با API/App/Workflow قابلحل نیست یا Risk غیرقابلقبول دارد؛
- Data portability، retention، audit یا residency شرط قراردادی/عملیاتی را نمیگذراند؛
- Limit مستند و آزمودهشده SLO/Capacity را میشکند؛
- Unit economics با حجم واقعی و TCO گزینه دیگر بهتر است؛
- Integration حیاتی بهدلیل Rate limit، Event gap یا State model غیرممکن است؛
- تیم توان پذیرش Security/Operations/Recovery را دارد.
Triggerهای ضعیف
- «سایت شبیه Template است» بدون آزمون Brand/Task؛
- انتخاب Framework مد روز؛
- یک Plugin یا Theme بد که قابلجایگزینی است؛
- ادعای کلی «SEO سایتساز ضعیف است» بدون Crawl/Index evidence؛
- عدد بازدید بدون Workload/limit؛
- تصور اینکه Custom هزینه Subscription را حذف میکند.
Business case و TCO کامل
Migration TCO =
Discovery + Design + Build/Buy + Data/Content migration
+ Integration + Security + Accessibility + SEO + QA
+ Parallel run + Cutover + Training + Support
+ Hosting/Observability/Backup/On-call/Maintenance
+ Change/Incident/Compliance/Exit over the decision horizonقیمت را به «چند صفحه» تقلیل ندهید. Complexity از Domain rule، داده تاریخی، Integration، نقش/مجوز، Transaction، Migration window و SLO میآید. نرخ ارز، سرویس خارجی، Payment، SMS، CDN و نیروی متخصص ایران را در سناریوهای کم/محتمل/زیاد بیاورید.
| Benefit | روش سنجش | Guardrail |
|---|---|---|
| Capability جدید | Task success/throughput | Error و support load |
| Performance | Journey field metric | Correctness/accessibility |
| Operational control | MTTR/deploy lead time | On-call/incident cost |
| Data access | Export/reconcile/report latency | Privacy/security |
| Vendor cost | Cost per outcome | Engineering/exit cost |
Inventory؛ چیزی را که نمیشناسید منتقل نمیکنید
| دامنه | Inventory | Owner |
|---|---|---|
| Domain/edge | Registrar، DNS، TLS، CDN/WAF، email records | Infra |
| URLs/SEO | page/media/PDF، canonical، hreflang، schema، sitemap | SEO |
| Content | page، blog، author، taxonomy، revision، redirect | Content |
| Catalog | product، variant، option، media، price، inventory | Commerce |
| Transaction | cart، order، payment، refund، fulfillment، return | Finance/Ops |
| Customer | profile، address، consent، segment، support history | CRM/Privacy |
| Commercial rule | discount، gift card، subscription، tax، shipping | Product/Finance |
| Integration | gateway، SMS، email، CRM، ERP، search، analytics | Integration |
| Operations | role، workflow، schedule، backup، alert، support | Operations |
Inventory را فقط از Admin menu نسازید. API، Export، webhook، sitemap، crawl، analytics، server/CDN log، Search Console، Finance reconciliation و مصاحبه با اپراتور را کنار هم بگذارید. Shadow processهای Excel/Telegram و اصلاح دستی سفارش نیز بخشی از سیستم واقعیاند.
Export rehearsal؛ قبل از قرارداد جدید
«قابل Export» به معنی «قابل بازسازی» نیست. Format ممکن است ID، رابطه، تاریخچه، فایل، custom field یا State لازم را نداشته باشد. برای نمونه، راهنمای رسمی Export سفارش Shopify توضیح میدهد CSV تاریخچه سفارش، داده تاریخی زمان سفارش را نشان میدهد و Authorization در Transaction export نیست؛ Product CSV نیز Schema و محدودیتهای خودش را دارد. این مثال عمومی است: Export هر Provider را با نمونه واقعی و تاریخ تصمیم آزمون کنید.
- یک Full export و یک API sample بگیرید؛
- Schema، ID، relationship، encoding و timezone را Profile کنید؛
- Pagination، rate limit، deleted/archived و media URL را تست کنید؛
- Count/hash/amount/status را با Source reconcile کنید؛
- Delta export یا webhook gap را بسنجید؛
- Import به Target sandbox و round-trip sample اجرا کنید؛
- زمان، هزینه، خطا و Manual exception را ثبت کنید؛
- Exit pack را پیش از وابستگی بیشتر ذخیره و مستند کنید.
قرارداد Reconciliation
Completeness = migrated eligible records / source eligible records
Financial reconciliation = Σ order/refund/payment amounts by currency/status/day
Referential integrity = valid child references / total child references
Media integrity = reachable and checksum-matched assets / expected assets
URL coverage = mapped old public URLs / eligible old public URLsCount برابر میتواند داده اشتباه داشته باشد؛ Sample semantic، Hash و Aggregate مالی لازماند. رکورد Quarantineشده Owner و Resolution deadline داشته باشد. Migration script باید Idempotent، versioned، observable و قابل تکرار باشد.
Data mapping؛ Column به Column کافی نیست
| مسئله | پرسش | ریسک |
|---|---|---|
| Identity | Source ID و Target ID چگونه پیوند میخورند؟ | Duplicate/lost relation |
| State | Statusها معنای برابر دارند؟ | Order lifecycle اشتباه |
| Time | UTC/local/Jalali display چیست؟ | ترتیب و گزارش نادرست |
| Money | ریال/تومان، precision و currency؟ | خطای مالی ×۱۰ |
| Text | Unicode، ی/ک، نیمفاصله و HTML؟ | Search/duplicate/display |
| Privacy | Purpose، retention و deletion state؟ | انتقال بیش از نیاز |
| Password | Hash سازگار و مجاز است؟ | Login failure/security |
| Media | Original/variant/alt/ownership؟ | broken/quality/accessibility |
Password را plaintext صادر یا منتقل نکنید. اگر Hash/algorithm قابلانتقال امن نیست، Password reset و Session revocation را بهعنوان Journey طراحی کنید. داده منقضی یا بدون Purpose را صرفاً «برای احتیاط» کپی نکنید؛ Legal/privacy review باید با قوانین و قراردادهای جاری انجام شود.
Target platform را از Business contract بسازید
Backlog «همهچیز مثل قبل + بهتر» قابلآزمون نیست. برای هر Capability این فیلدها را بنویسید:
| فیلد | نمونه |
|---|---|
| User/Job | اپراتور سفارش را بدون تماس اصلاح کند |
| Rule | فقط قبل از Fulfillment و با Audit |
| Source of truth | Order service |
| Integration | Payment/Inventory/CRM events |
| Acceptance | Correctness، latency، permission، recovery |
| Migration | کدام historical state لازم است؟ |
| Operations | Owner، alert، runbook، support |
| Exit | Export format/API/dependency |
Parity به معنی بازسازی تمام quirks نیست. Must preserve، Improve، Retire و Defer بسازید. Capability بازنشستهشده باید Impact، Redirect/communication و data retention plan داشته باشد.
API و Integration؛ مرزهای واقعی پلتفرم
Gateway، SMS، Email، CRM، ERP، Search، Analytics و Marketplace هرکدام Contract و Failure مستقل دارند. راهنمای طراحی API با قرارداد، امنیت و قابلیت اطمینان Version، Idempotency، Retry، Webhook، Error و Observability را پوشش میدهد.
- Webhook delivery را At-least-once فرض و handler را Idempotent طراحی کنید؛
- Backfill API و Live event بین Snapshot و Cutover Gap نداشته باشند؛
- Out-of-order event و replay آزمایش شود؛
- Payment callback با Server verification و reconciliation بسته شود؛
- Rate limit، timeout، retry budget و DLQ مشخص باشند؛
- Secret rotation و sandbox/production separation قبل از Launch اجرا شوند.
Custom یعنی پذیرش Security و Operations
پلتفرم قبلی ممکن است Runtime، Patch، DDoS، Backup، Fraud tooling یا Availability را مدیریت کرده باشد. در Target برای Infrastructure، OS، Runtime، Dependency، Code، IAM، Secret، Data، Backup، Monitoring و Incident یک RACI صریح بسازید.
OWASP ASVS برای Requirementهای قابلآزمون Application security و NIST SSDF برای Practiceهای توسعه امن مرجعهای مناسبیاند؛ Compliance خودکار نیستند و باید براساس Scope/Risk انتخاب شوند. برای API/OAuth/JWT نیز راهنمای امنیت API و OWASP را ببینید.
| حوزه | Acceptance پیش از Launch |
|---|---|
| Identity/access | MFA admin، least privilege، role test |
| Application | Threat model، validation، session، abuse |
| Supply chain | dependency/SBOM، secret، build provenance |
| Data | encryption، retention، export/delete، audit |
| Operations | patch، alert، incident، escalation |
| Recovery | backup/restore و rollback drill |
SEO migration؛ ابتدا URL را حفظ کنید
تعویض CMS الزاماً به تغییر URL نیاز ندارد. اگر Information architecture و Intent عوض نمیشود، حفظ Host/path/query semantics ریسک و هزینه Crawl را کم میکند. وقتی URL باید عوض شود، Mapping باید از Sourceهای متعدد ساخته شود: sitemap، crawl، CMS export، server/CDN log، Analytics، Search Console، backlink و media inventory.
راهنمای رسمی Google برای Site move توصیه میکند تغییرها را در صورت امکان یکییکی انجام دهید، Mapping دقیق بسازید، Redirect دائمی سمت سرور را مستقیم به مقصد نهایی بدهید، internal link/canonical/hreflang/sitemap را به URL جدید بهروز و هر دو سمت را مانیتور کنید. نوسان موقت ممکن است رخ دهد و سرعت پردازش به URL count و crawl capacity بستگی دارد؛ رشد رتبه تضمینشده نیست.
| Old URL | Target | پاسخ |
|---|---|---|
| همان محتوا/Intent | Equivalent new URL | ۳۰۱/۳۰۸ مستقیم اگر URL عوض شده |
| چند صفحه ادغامشده | Consolidated relevant URL | Permanent redirect با Mapping |
| حذف بدون جایگزین | هیچ | ۴۰۴/۴۱۰ مفید |
| URL بدون تغییر | همان URL | ۲۰۰؛ Redirect لازم نیست |
| نامرتبط | Home page | Redirect نکنید؛ Soft ۴۰۴ risk |
قرارداد URL و Annotation
- یک Old URL فقط یک مقصد نهایی و مرتبط داشته باشد؛
- Redirect chain/loop، mixed HTTP/HTTPS و slash variant حذف شوند؛
- Canonical جدید self-referencing و با Redirect/Sitemap/Internal link همسو باشد؛
- hreflang، pagination، structured data و OG URL بهروز شوند؛
- Image/PDF/download و external high-value link فراموش نشوند؛
- Old redirect حداقل بازه توصیهشده Google—عموماً یک سال—و برای کاربر ترجیحاً بیشتر حفظ شود؛
- Change of Address فقط وقتی Domain عوض میشود و Propertyها تأیید شدهاند؛
- New host ظرفیت Crawl اضافه ناشی از Redirect را داشته باشد.
برای Baseline و بازبینی Crawl/Index/Canonical/Schema/Link پس از Launch، چکلیست ممیزی کامل SEO مکمل اجرای Migration است.
Staging را امن و قابلآزمون نگه دارید
Staging عمومی با فقط robots.txt امن نیست؛ فایل robots مانع دسترسی کاربر یا مهاجم نمیشود و اگر Crawl را Block کند، موتور ممکن است noindex را نبیند. Authentication و Network/access control را لایه اصلی قرار دهید، Production secret و PII واقعی را کپی نکنید و در Launch checklist حذف Gate/noindex اشتباه را Machine-test کنید.
- داده Sanitized یا Synthetic؛
- Sandbox برای Payment/SMS/Email؛
- Domain/host allowlist و جلوگیری از ارسال واقعی؛
- Config/secret per environment؛
- Production-like schema/capacity و deploy pipeline؛
- Preview برای Content team بدون بازشدن عمومی.
UX و Accessibility را Regression نکنید
بازطراحی همزمان با Replatforming دامنه علت را بزرگ میکند. اگر لازم نیست، Platform/Domain/Layout/Content را یکجا تغییر ندهید. Flowهای Login، Search، Form، Cart، Checkout، Account و Support را با Task و Acceptance مقایسه کنید؛ «ظاهر منحصربهفرد» Outcome نیست.
WCAG 2.2 Baseline جاری قابلاستناد برای دسترسپذیری است. Keyboard/Focus، Name/Role/State، Error، Authentication، Target، Contrast، Reflow و Status را در Component و Journey تست کنید. داده migrated مثل Alt، Heading و Form label نیز باید Semantic خود را حفظ کند.
قرارداد فارسی و ایران
| بعد | Contract | Failure رایج |
|---|---|---|
| Unicode | ی/ک، نیمفاصله، normalization | Duplicate/search mismatch |
| Direction | RTL/Bidi برای متن، URL، کد و عدد | ترتیب/خوانایی شکسته |
| Money | ریال/تومان، precision، label | ضریب ده و گزارش مالی |
| Time | UTC storage، Asia/Tehran display، شمسی/میلادی | ترتیب/expiry/report |
| Phone/address | normalization، استان/کدپستی/پلاک | delivery/identity failure |
| Payment | callback، verification، idempotency | سفارش Paid نامعلوم |
| SMS/OTP | delay، resend، template، fallback | lockout/duplicate cost |
| Network/provider | ISP/region/eligibility/payment/support | دسترسی و Latency ناپایدار |
راهنمای طراحی فارسی از Locale تا RTL و QA Contract کاملتر متن، عدد، تاریخ و Bidi را ارائه میدهد. قانون، مجوز، مالیات، نگهداری داده و رضایت را با مشاور واجد صلاحیت و منابع جاری پروژه بررسی کنید؛ از Checklist عمومی بهعنوان نظر حقوقی استفاده نکنید.
الگوی مهاجرت را براساس Coupling انتخاب کنید
| الگو | مزیت | ریسک | تناسب |
|---|---|---|---|
| Big bang | Dual system کوتاه | Blast radius بزرگ | سایت کوچک و Freeze ممکن |
| Phased/section | یادگیری و محدودکردن ریسک | URL/session/integration split | Domain boundary روشن |
| Strangler | Capability تدریجی جدا | Routing/data consistency | پلتفرم بزرگ و API مناسب |
| Parallel/shadow | مقایسه Outcome و داده | Cost/privacy/side effect | Read path یا event replay |
| Blue-green | Cutover/rollback سریع Runtime | Write/data rollback سخت | Schema و state سازگار |
Rollback کد با Rollback داده یکی نیست. وقتی کاربران در Target سفارش جدید ساختهاند، بازگشت DNS به Old platform بدون Reverse sync آن سفارشها را گم میکند. برای Write، Roll-forward، compensation، dual-write محدود یا Freeze window را عمداً طراحی کنید.
Migration factory و Dry run
- Snapshot نسخهدار Source بگیرید؛
- Transform deterministic و Idempotent اجرا کنید؛
- Target را از حالت تمیز بسازید؛
- Import با checkpoint/quarantine انجام دهید؛
- Count/hash/finance/relation/media/URL reconcile کنید؛
- زمان هر Stage و Critical path را ثبت کنید؛
- Delta از زمان Snapshot را اعمال کنید؛
- Smoke/acceptance/load/security/SEO test اجرا کنید؛
- Cleanup و تکرار تا Window هدف؛
- Evidence pack و Go/No-go را امضا کنید.
اسکریپت یکبارمصرف بدون Log، version و retry در Cutover قابل اعتماد نیست. Fixture شامل فارسی، متن مختلط، media ناقص، سفارش refundشده، Variant حذفشده، user duplicate و timezone edge بسازید.
پشته آزمون پیش از Cutover
| لایه | نمونه آزمون | Gate |
|---|---|---|
| Data | count/hash/relation/money/status | Threshold و exception صفر بحرانی |
| Functional | search/form/cart/order/refund/account | Critical journey pass |
| SEO | status/redirect/canonical/noindex/sitemap/schema | URL contract pass |
| Accessibility | keyboard/AT/zoom/error/auth | Severity gate |
| Performance | field baseline/load/cache/cold | SLO و budget |
| Security | threat/role/session/API/secret/dependency | critical/high policy |
| Integration | timeout/retry/replay/out-of-order | reconcile و recovery |
| Operations | alert/on-call/runbook/backup/restore | drill pass |
Performance را با «Lighthouse یک صفحه» نبندید؛ Field/Journey و Backend capacity را مقایسه کنید. راهنمای سرعت سایت، UX و Outcome Baseline، Budget و سنجش Production را تفکیک میکند.
Cutover runbook
| بازه | کار | شاهد |
|---|---|---|
| T-۳۰ تا T-۷ | DNS/TTL، Dry run، export، quota، support، communication | readiness review |
| T-۷ تا T-۱ | Change freeze، backup/restore، final map، rollback drill | Go/No-go pack |
| T0 snapshot | write control، full/final delta، checksum | source watermark |
| Import | transform/import/quarantine/reconcile | data gates |
| Switch | deploy/routing/DNS/CDN/redirect/config/secret | version and timestamp |
| Smoke | critical journey، SEO، payment، email/SMS، admin | owner sign-off |
| Ramp | canary/traffic increase و compare | SLO/outcome/cost |
| Stabilize | reconcile write، monitor old/new، support | exit from hypercare |
Go/No-go و Kill criteria
- Critical data reconciliation خارج Threshold؛
- Payment/order/refund correctness مبهم؛
- Redirect/canonical/noindex/robots gate شکست؛
- Critical journey، Accessibility یا Security gate رد؛
- SLO/Capacity زیر Load نماینده پاس نشود؛
- Backup/restore/rollback یا Owner/escalation آماده نباشد؛
- Delta window از Cutover window عبور کند.
DNS، Domain و Email را فراموش نکنید
Cutover فقط A record نیست. Registrar access، DNSSEC، CAA، TLS، CDN origin، www/apex، IPv4/IPv6، MX/SPF/DKIM/DMARC، webhook allowlist و callback URL را Inventory کنید. DNS TTL را با زمان Cacheها و امکان Rollback واقعبینانه مدیریت کنید. راهنمای مدیریت DNS، TTL و مهاجرت دامنه Runbook دقیق این لایه را دارد.
Rollback، Backup و Decommission
Backup Source، Target، media، config، DNS و secret/reference را با Retention و encryption نگه دارید و Restore را تمرین کنید. راهنمای بازیابی فاجعه سایت و RPO/RTO Dataset و Drill را عمیقتر پوشش میدهد.
| حالت | پاسخ |
|---|---|
| Runtime bad، write کم | Traffic rollback + reconcile محدود |
| Schema/data bad | Stop write، restore/roll-forward/compensate |
| SEO config bad | hotfix/rollback routing با URL map ثابت |
| Integration bad | queue/pause/fallback/replay |
| Partial customer impact | segment/ramp stop/support/status |
Old platform را روز بعد خاموش نکنید. Read-only access، export، redirect service، invoice/audit need و قرارداد Retention را نگه دارید. Decommission فقط پس از data/SEO/finance/support sign-off، Secret revocation، backup evidence و پایان window انجام شود.
Hypercare و پایش دوطرفه
هم Old و هم New را مانیتور کنید. راهنمای Observability وبسایت Signal را به Journey/SLO/Incident وصل میکند. Dashboard Migration حداقل این موارد را داشته باشد:
- Order/payment/refund/inventory reconciliation؛
- Login/reset/OTP/form/search/cart/checkout success؛
- 4xx/5xx، redirect hit، old URL traffic و broken asset؛
- Googlebot/crawler response، indexed old/new، sitemap/canonical؛
- Latency/error/saturation/queue/dependency؛
- Email/SMS/webhook delivery و retry/DLQ؛
- Support ticket/complaint و manual workaround؛
- Cost، cache، egress و provider quota.
پنجرههای بررسی
| زمان | تمرکز |
|---|---|
| ۰–۲ ساعت | Critical journey، data write، routing و error |
| ۲–۲۴ ساعت | reconcile، integration batch، support و crawl |
| روز ۲–۷ | cohort، SEO coverage، performance و backlog |
| هفته ۲–۴ | index transition، cost، operations و defect trend |
| روز ۳۰–۹۰ | Benefit realization، debt، decommission و learning |
چکلیست مهاجرت از سایتساز
- Outcome و Capability gap با Evidence تعریف شدهاند؛
- Configure/extend/integrate/switch/headless/custom مقایسه شدهاند؛
- TCO شامل Build، Run، Change، Incident و Exit است؛
- RACI مسئولیتهای منتقلشده از SaaS را پوشش میدهد؛
- Domain/DNS/URL/content/data/integration/operation inventory کامل است؛
- Full export و API/rate-limit/media/delta واقعاً Rehearse شدهاند؛
- Data mapping برای ID/State/Time/Money/Text/Privacy/Password/Media دارد؛
- Migration script versioned، idempotent، observable و repeatable است؛
- Count/hash/finance/relation/media/URL reconciliation Gate دارند؛
- Must preserve/Improve/Retire/Defer روشن است؛
- API/webhook/payment idempotency/retry/replay تست شدهاند؛
- Security، Accessibility، Performance و Operations Acceptance دارند؛
- URLها در صورت امکان حفظ و Mapping از چند Source ساخته شده است؛
- Redirect مستقیم مرتبط؛ ۴۰۴/۴۱۰ برای حذف واقعی؛ chain/loop صفر است؛
- Canonical/hreflang/internal link/sitemap/schema/media بهروز شدهاند؛
- Staging با Authentication و داده Sanitized محافظت میشود؛
- فارسی/RTL/یک/تومانریال/زمان/شمسی/تلفن/آدرس تست شدهاند؛
- چند Dry run در Window هدف با Exception owner اجرا شدهاند؛
- Cutover، Go/No-go، Kill، rollback و write reconciliation آمادهاند؛
- Old/New monitoring، Hypercare و Decommission gate تعریف شدهاند.
جمعبندی؛ مهاجرت برنامه انتقال مسئولیت است
مهاجرت از سایتساز فقط انتقال صفحه و تصویر نیست؛ انتقال Capability، داده، Identity، Transaction، URL، Integration و مسئولیت عملیاتی است. Custom میتواند Gap مهم را حل کند، اما Speed، SEO، Security و Scale را خودکار نمیسازد. اگر Business case و Team readiness وجود ندارد، Extend یا Hosted replacement میتواند تصمیم بهتر باشد.
پروژه قابلدفاع از Export rehearsal و URL/data contract شروع میشود، با Dry run و Reconciliation قابلتکرار میشود و در Cutover با Delta، Gate و Rollback کنترل میشود. موفقیت وقتی ثابت است که Order/Payment درست، Critical journey پایدار، Old URL قابلدسترسی، تیم پاسخگو و Benefit هدف در روزهای پس از Launch قابلاندازهگیری باشد.
سؤالات متداول مهاجرت از سایتساز
چه زمانی از سایتساز به پلتفرم اختصاصی مهاجرت کنیم؟
وقتی Capability حیاتی با تنظیم، App/API یا سرویس جدا حل نمیشود؛ Gap به Outcome/ریسک قابلاندازهگیری وصل است؛ TCO و Acceptance گزینه Target بهترند؛ و تیم توان Security، Operations و Recovery را دارد. ظاهر تکراری، بازدید بالا یا Framework جدید بهتنهایی دلیل مهاجرت نیست.
آیا مهاجرت حتماً باعث افت سئو میشود؟
نوسان موقت در تغییر بزرگ ممکن است رخ دهد، اما شدت و مدت ثابت نیست. URL را تا حد ممکن حفظ کنید؛ Mapping دقیق، Redirect دائمی مستقیم، Canonical/Internal link/Sitemap هماهنگ، Crawl capacity و پایش Old/New لازماند. Migration رشد رتبه را نیز تضمین نمیکند.
آیا همه دادههای Wix، Shopify یا سایتساز دیگر قابل انتقالاند؟
بدون Export rehearsal پاسخ عمومی ندارد. Content/Product/Customer/Order ممکن است CSV یا API داشته باشند، اما Theme، App state، payment authorization، history، custom field، relation یا password شاید کامل نباشد. نمونه واقعی Export کنید، Schema را Profile و Completeness/Finance/Relation/Media را Reconcile کنید.
مهاجرت چقدر زمان و هزینه میبرد؟
عدد ثابت معتبر نیست. Scope Capability، حجم/کیفیت داده، URL count، Integration، Security/Accessibility، SLO، تعداد Dry run، Freeze/Delta و Team TCO را میسازند. ابتدا Discovery time-boxed و Export PoC انجام دهید و سپس low/base/high estimate با Contingency بسازید.
Big bang بهتر است یا مهاجرت مرحلهای؟
برای سایت کوچک با Write کم و Freeze ممکن، Big bang میتواند سادهتر باشد. برای Domainهای بزرگ و Coupling قابلتفکیک، Phased/Strangler ریسک را محدود میکند اما Dual state و routing میسازد. با Data consistency، URL/session، Cutover window و rollback evidence انتخاب کنید.






