לעתים קרובות אנו רואים שהעברת וורדפרס הופכת לכאב ראש: נתיבים מוחלטים במסד הנתונים, נתונים מסודרים (serialized), גרסאות PHP שונות — והאתר נשבר. רצף הפעולות הנכון וכלים מקצועיים מפחיתים את הסיכון לאפס ואת זמן ההשבתה לדקות. לצורך העברת וורדפרס חלקה, יש צורך בשיטת העברת וורדפרס אמינה. לאחרונה העברנו חנות מקוונת עם 5000 מוצרים — זמן ההשבתה היה רק 2 דקות, כל הנתונים נשמרו. במאמר זה, אנו חולקים ניסיון אמיתי: כיצד להעביר וורדפרס ללא אובדן באמצעות WP-CLI, ומה לבדוק לפני ואחרי המעבר.
כיצד להעביר וורדפרס ללא השבתה?
התכנון מתחיל 48 שעות מראש: הורידו את ה-TTL של רשומת A ל-300 שניות. זה מקצר את זמן התפשטות ה-DNS לאחר המעבר. לצורך ההעברה בפועל, בחרו באחת משלוש הגישות:
| שיטה | מורכבות | זמן השבתה | מגבלות |
|---|---|---|---|
| WP-CLI + rsync | גבוהה | מינימלי (1-5 דקות) | דורש גישת SSH |
| All-in-One WP Migration | נמוכה | תלוי בגודל | חינם עד 512 MB |
| Duplicator | בינונית | תלוי בחבילה | אין גרסאות קודמות |
WP-CLI + rsync עדיף על פני תוספי העברה: העברת קבצים מהירה פי 10, שליטה מלאה בתהליך. WP-CLI + rsync טוב משמעותית מהעברה מבוססת תוסף עבור אתרים גדולים — זה מהיר פי 10 ואמין יותר. עבור VPS זו בבירור האפשרות המועדפת — שליטה מלאה, טיפול אוטומטי בנתונים מסודרים, אפשרות להעתקה מצטברת. באירוח משותף, קל יותר להשתמש בתוסף מוכן, אבל לבדיקה רטובה לפני מעבר DNS, השתמשו ב-/etc/hosts.
מדוע נתונים מסודרים הם בעיה?
החלפה ידנית של http://old-site.com ל-https://new-site.com באמצעות SQL היא טעות נפוצה. מחרוזות מסודרות מאחסנות את אורך הנתונים, וכאשר מחליפים, האורכים משתנים, מה ששובר את המערך. wp search-replace מטפל בזה עבורכם:
wp search-replace 'http://old-site.com' 'https://new-site.com' --all-tables --report-changed-only
# Для staging (не менять URL сразу):
wp search-replace 'old-site.com' 'new-site.com' --all-tables --skip-columns=guidכלי זה מחשב מחדש את האורכים, כך שהנתונים נשארים תקינים. מידע נוסף על נתונים מסודרים ניתן לקרוא ב-ויקיפדיה. אם אתם משתמשים ב-phpMyAdmin או sed — אתם מסתכנים באתר שבור ובזבוז זמן על שחזור.
כלים
WP-CLI + rsync — גישה מקצועית עבור VPS. שליטה מלאה, זמן השבתה מינימלי. תוסף All-in-One WP Migration נוח לאירוח משותף, בגרסה החינמית יש מגבלת גודל קובץ של 512 MB. Duplicator יוצר חבילת מתקין, מתקין כמו אתר רגיל.
העברה באמצעות WP-CLI (מומלץ)
בצעו את השלבים הבאים להעברה מוצלחת:
- התכוננו על ידי הורדת TTL של DNS ל-300 שניות לפחות 48 שעות לפני המעבר.
- ייצאו קבצים מהשרת המקורי באמצעות rsync:
wp search-replace 'http://old-site.com' 'https://new-site.com' --all-tables --report-changed-only # Для staging (не менять URL сразу): wp search-replace 'old-site.com' 'new-site.com' --all-tables --skip-columns=guid - ייצאו את מסד הנתונים:
rsync -avz --exclude='.git' --exclude='node_modules' /var/www/old-host.com/ user@new-server:/var/www/new-host.com/ wp db export --add-drop-table - | gzip > /tmp/wordpress-db.sql.gz scp /tmp/wordpress-db.sql.gz user@new-server:/tmp/ - העתיקו את גיבוי מסד הנתונים לשרת החדש:
mysql -u root -e " CREATE DATABASE wordpress_new CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER 'wp_user'@'localhost' IDENTIFIED BY 'new-password'; GRANT ALL PRIVILEGES ON wordpress_new.* TO 'wp_user'@'localhost';" gunzip -c /tmp/wordpress-db.sql.gz | mysql -u root wordpress_new - בשרת החדש, צרו את מסד הנתונים והמשתמש, ולאחר מכן ייבאו את הגיבוי:
rsync -avz --exclude='.git' --exclude='node_modules' /var/www/old-host.com/ user@new-server:/var/www/new-host.com/
wp db export --add-drop-table - | gzip > /tmp/wordpress-db.sql.gz
scp /tmp/wordpress-db.sql.gz user@new-server:/tmp/ - עדכנו את wp-config.php עם פרטי מסד הנתונים החדשים.
- החליפו את ה-URL במסד הנתונים:
define('DB_NAME', 'wordpress_new'); define('DB_USER', 'wp_user'); define('DB_PASSWORD', 'new-password'); define('DB_HOST', 'localhost');
wp search-replace 'http://old-host.com' 'https://new-host.com' --all-tables --report-changed-only מטפל נכון בנתונים מסודרים — בניגוד ל-SQL ידני UPDATE.
בדקו בשרת החדש (לפני שינוי DNS): הוסיפו ל-/etc/hosts במחשב שלכם 1.2.3.4 new-host.com www.new-host.com. בדקו: דף הבית, מוצרים/פוסטים, טפסים, תשלום, התחברות, תמונות.
שינוי DNS: לאחר המעבר, המתינו להתפשטות (בדרך כלל 1–4 שעות).
טעויות העברה נפוצות
| טעות | השלכות | פתרון |
|---|---|---|
| החלפת URL באמצעות SQL UPDATE | נתונים מסודרים פגומים | השתמשו ב-wp search-replace |
| התעלמות מגרסאות PHP | שגיאות תאימות תוספים | בדקו תאימות לפני ההעברה |
| נתיבים שגויים ב-wp-config | האתר לא נטען | ודאו נתיבים והרשאות |
מקרה: העברת חנות עם 5000 מוצרים
לקוח העביר חנות WooCommerce מאירוח משותף ל-VPS. האתר המקורי רץ על PHP 7.4, השרת החדש על PHP 8.2. לפני ההעברה, בדקנו תאימות תוספים: תוסף המטמון הישן לא תמך ב-PHP 8.2. החלפנו אותו בחלופה מודרנית לפני ההעברה. ההעברה באמצעות WP-CLI ארכה 3 שעות, זמן ההשבתה היה 2 דקות. לאחר מעבר DNS, כל המוצרים, ההזמנות והתמונות נשמרו.
מה כלול בעבודה
החבילה שלנו כוללת הכל לצורך מעבר חלק:
- גיבוי מלא של האתר המקורי (קבצים + מסד נתונים)
- העברה לשרת החדש עם הגדרת סביבה (PHP, MySQL, Nginx)
- החלפת URL במסד הנתונים באמצעות wp search-replace
- הגדרת תעודת SSL (Certbot)
- בדיקת כל הדפים הקריטיים והפונקציונליות
- הוראות לשינוי DNS
- שעת תמיכה אחת לאחר ההעברה
אנו מבטיחים אפס אובדן נתונים בכל העברה. למפתחי הוורדפרס המנוסים שלנו יש ניסיון של 5+ שנים ו-50+ העברות וורדפרס מוצלחות. החיסכון באירוח לאחר אופטימיזציה יכול להיות משמעותי — עד 40% בהשוואה לתוכניות ישנות. צרו קשר — נעריך את הפרויקט שלכם תוך יום אחד. פנו אלינו להערכת פרויקט.
גרסאות PHP שונות
אם האירוח הישן משתמש ב-PHP 7.4 והחדש ב-PHP 8.2: בדקו תאימות של כל התוספים והתבניות. רוב התוספים המודרניים תומכים ב-PHP 8.x, אבל חלק מהישנים לא. בדקו יומני PHP בשרת החדש (לדוגמה, tail -f /var/log/php/error.log). הפעילו מטמון אובייקטים לביצועים טובים יותר.
SSL בשרת החדש
לאחר ההעברה, הנפיקו תעודה באמצעות Certbot. ודאו ש-FORCE_SSL_ADMIN ב-wp-config.php מוגדר.
לוחות זמנים
העברת אתר וורדפרס עד 5 GB עם בדיקות ומעבר DNS — 3–5 שעות. אתר גדול עם אינטגרציות נוספות — 6–8 שעות. הערכה מדויקת לאחר סקירת הפרויקט. קבלו ייעוץ העברה עכשיו — לא יותר מ-15 דקות.







