Cum migrezi de pe Drupal 7 pe Drupal 10/11: ghid tehnic complet cu checklist SEO
Drupal 7 a ajuns la End of Life pe 5 ianuarie 2025 — nu mai primește patch-uri de securitate din comunitate, iar site-urile rămase pe D7 sunt vulnerabile și non-conforme cu standardele FedRAMP, PCI, HIPAA și SOC 2. Dacă ai un site pe Drupal 7, migrarea nu mai este opțională — este urgentă. Acest ghid este complementar cu comparația Drupal vs WordPress — dacă te întrebi „pe ce migrez?", citește mai întâi acel articol.
Vestea bună: Drupal 10/11 oferă un sistem de migrare matur (Migrate API), iar procesul este bine documentat. Vestea mai puțin bună: migrarea D7 → D10/D11 nu este un simplu update — este o migrare completă (conținut transferat via ETL pipeline, teme și module custom rescrise). Acest ghid acoperă tot procesul tehnic, de la evaluarea inițială până la go-live cu SEO intact.
Statistică critică: Ultimul release Drupal 7 a fost 7.103 (decembrie 2024). Extended Security Support este disponibil doar prin vendori certificați (HeroDevs, Tag1 Consulting, DropSolid) — contra cost. Fiecare lună de întârziere crește riscul de breach și costul total al migrării.
De ce trebuie să migrezi de pe Drupal 7 acum?
Există 5 motive tehnice și business concrete:
| Motiv | Impact | Urgență |
|---|---|---|
| Securitate — fără patch-uri | Vulnerabilități noi nu sunt reparate | Critic |
| PHP incompatibil | D7 rulează pe PHP 7.4-8.1 (EOL), D11 necesită PHP 8.3+ | Mare |
| Module abandonate | Module contrib D7 nu mai sunt menținute | Mare |
| Compliance non-conform | FedRAMP, HIPAA, PCI, SOC 2 — nu treci audit pe D7 | Critic |
| Performance limitată | Fără BigPipe, Dynamic Page Cache, cache tags | Mediu |
Dacă vrei să înțelegi cum un redesign complet al site-ului se planifică corect, inclusiv migrarea SEO, verifică ghidul dedicat.
Alternate paths dacă nu vrei Drupal 10/11:
- Drupal → headless (Drupal backend + Next.js frontend) — cel mai performant, dar cost mai mare
- Drupal → WordPress — posibil via WP All Import, dar pierzi granularitatea content model Drupal
- Drupal → alt CMS headless — Strapi, Sanity, Contentful — pierzi ecosistemul Drupal
Recomandare: Dacă ai investit în content modeling Drupal (entități, câmpuri, referințe), rămâi pe Drupal 10/11. Reconstrucția pe alt CMS costă mai mult decât migrarea.
Ce diferă între migrare D7→D10 și upgrade D9→D10?
Aceasta este confuzia cea mai frecventă. Sunt procese fundamental diferite:
| Aspect | D7 → D10/D11 (migrare) | D9 → D10 → D11 (upgrade) |
|---|---|---|
| Proces | ETL pipeline — extrage, transformă, încarcă | Composer update + deprecation fixes |
| Cod custom | Rescriere completă (procedural → OOP/Symfony) | Ajustări minore (remove deprecated) |
| Teme | Refacere completă (PHPTemplate → Twig) | Actualizare Twig minor |
| Conținut | Migrat via Migrate API | Rămâne in-place |
| Timp estimat | Săptămâni — luni | Ore — zile |
| Risc SEO | Mare — URL-uri, structură, meta se pot schimba | Mic — totul rămâne la locul lui |
Dacă ești pe D8 sau D9: nu ai nevoie de acest ghid — rulezi composer update drupal/core cu fix-uri pe deprecări. Procesul este similar cu un update WordPress major.
Dacă ești pe D7: citește mai departe — ai nevoie de o migrare planificată.
Care sunt etapele complete ale migrării Drupal 7?
Pasul 1: Auditează site-ul Drupal 7 existent
Înainte de orice migrare, documentează complet ce ai:
- Inventar module:
drush pm:list --status=enabled— listează toate modulele active. Verifică echivalent D10/D11 pe drupal.org - Content types: documentează fiecare content type, câmpurile, referințele, taxonomiile
- Custom modules: identifică module custom — acestea necesită rescriere completă
- Teme: tema custom D7 (PHPTemplate) trebuie refăcută în Twig
- URL aliases: exportă toate URL aliases existente (Pathauto patterns + custom aliases)
- Integrări externe: API-uri, SSO, payment gateways, CRM — verifică compatibilitate
- Volum conținut: câte noduri, utilizatori, media files — influențează durata migrării
Output audit: document cu inventar complet, gap analysis (ce module D7 nu au echivalent D10), estimare efort per componentă.
Regulă practică: Timpul de migrare = 1 săptămână per 10 module custom + 1-2 săptămâni per temă custom + 1-3 zile per integrare externă. Site simplu D7 cu temă stock: 2-3 săptămâni. Enterprise complex: 2-4 luni.
Cum funcționează Migrate API din Drupal core?
Pasul 2: Configurează și rulează migrarea conținutului
Drupal core include un sistem de migrare matur bazat pe ETL (Extract, Transform, Load):
Module core necesare:
- Migrate — framework-ul ETL generic
- Migrate Drupal — plugin-uri specifice D6/D7 (nodes, users, taxonomy, menus, Views config)
- Migrate Drupal UI — interfață browser pentru migrare (alternativă la Drush)
Module contribuite recomandate:
- Migrate Plus — plugin-uri proces avansate (DOM manipulation, lookup, skip)
- Migrate Tools — comenzi Drush extinse (import, rollback, status)
- Migrate Upgrade — generează configurația de migrare din baza de date sursă
Workflow de migrare:
| Etapă | Comandă/Acțiune | Ce face |
|---|---|---|
| 1. Setup | composer require drupal/migrate_upgrade drupal/migrate_plus drupal/migrate_tools | Instalează module migrare |
| 2. Config | drush migrate:upgrade --legacy-db-url=mysql://user:pass@host/d7db --configure-only | Generează config migrare din DB sursă |
| 3. Review | Editează fișierele YAML de migrare | Ajustează mapping-uri, transformări |
| 4. Test run | drush migrate:import --tag=content --limit=100 | Migrează primele 100 noduri pentru verificare |
| 5. Full import | drush migrate:import --all | Rulează migrarea completă |
| 6. Verify | drush migrate:status | Verifică status per tip de migrare |
| 7. Rollback (dacă e nevoie) | drush migrate:rollback --all | Șterge conținutul migrat, retry |
Ce se migrează automat: noduri (conținut), utilizatori, taxonomii, meniuri, fișiere, blocuri, comentarii, traduceri.
Ce NU se migrează automat: teme, Views complexe, module custom, reguli CSS, setări specifice module contrib.
Ce provocări tehnice apar frecvent în migrare?
| Provocare | Cauză | Soluție |
|---|---|---|
| Module custom D7 | Cod procedural incompatibil cu D10 OOP | Rescriere module ca Symfony services/plugins |
| Module contrib fără echivalent D10 | Modul abandonat sau neportat | Găsește alternativă sau dezvoltă custom |
| Paragraphs migration | Paragraphs D7 → D10 are mapping complex | Paragraphs Migration module + config manuală |
| Media migration | D7 file fields → D10 Media entities | Media Migration module + mapping types |
| Date fields | Format date diferit D7 vs D10 | Process plugin custom sau Migrate Plus DOM |
| Entity references circulare | Noduri care se referă reciproc | Migrare în 2 pași: noduri fără referințe → update referințe |
| Volum mare (100K+ noduri) | Timeout, memorie | Batch processing, --limit flag, cron migrare |
Pasul 3: Rezolvă gap-urile de module și funcționalitate
Cele mai frecvente module D7 cu echivalente D10/D11:
| Modul D7 | Echivalent D10/D11 | Note |
|---|---|---|
| Views (contrib) | Views (core) | Inclus în core din D8 |
| Pathauto | Pathauto | Disponibil, funcționează similar |
| Token | Token | Disponibil |
| Metatag | Metatag | Disponibil, API diferit |
| Webform | Webform | Disponibil, major rewrite |
| Rules | ECA (Events, Conditions, Actions) | Alternativă modernă |
| Context | Context sau Block Visibility Groups | Disponibil |
| Display Suite | Display Suite sau Layout Builder (core) | Layout Builder e core |
| Panels | Layout Builder (core) | Core replacement |
| Features | Config Management (core) | Core din D8 |
Pro tip: Folosește Upgrade Status module pe site-ul D7 curent — analizează automat compatibilitatea tuturor modulelor active și raportează ce necesită acțiune.
Cum preservi SEO-ul în timpul migrării?
Pasul 4: Implementează redirect-uri 301 și preservă metadata SEO
Aceasta este partea cea mai importantă și cea mai des neglijată. O migrare fără plan SEO poate pierde 30-70% din traficul organic.
Checklist SEO pre-migrare:
- Exportă toate URL-urile indexate: Google Search Console → Coverage → Valid → exportă CSV
- Exportă toate URL aliases D7:
drush sql-query "SELECT source, alias FROM url_alias"→ CSV - Mapează URL-uri D7 → D10: majoritatea se pot menține identice dacă folosești Pathauto cu aceleași pattern-uri
- Configurează Redirect module: pentru URL-urile care SE SCHIMBĂ, creează redirect-uri 301
Implementare redirect-uri 301:
| Situație | Acțiune |
|---|---|
| URL identic D7 → D10 | Nu e nevoie de redirect |
| URL se schimbă (ex: /node/123 → /blog/articol) | Redirect 301 via Redirect module |
| Pagină D7 fără echivalent D10 | Redirect 301 → pagina cea mai relevantă |
| Pagină D7 cu trafic 0 | Lasă să returneze 404 (cleanup) |
Meta tags preservation:
- Instalează Metatag module pe D10
- Configurează patterns default (title, description, OG tags)
- Migrează meta tags custom via Migrate API (plugin migrare Metatag disponibil)
- Verifică cu auditul SEO post-migrare
Sitemap și indexare:
- Instalează Simple Sitemap pe D10
- Configurează toate content types în sitemap
- Submit sitemap nou în Google Search Console
- Monitorizează Coverage report 4-8 săptămâni post-migrare
Regulă critică: Nu lansa niciodată o migrare fără redirect-uri 301 complete. Fiecare URL care returnează 404 în loc de 301 pierde link equity acumulat. Recuperarea poate dura 6-12 luni.
Cât durează și cât costă o migrare Drupal 7?
| Complexitate site | Module custom | Conținut | Timp estimat | Cost estimat |
|---|---|---|---|---|
| Simplu (blog/firmă) | 0-3 | Sub 1.000 pagini | 2-4 săptămâni | €3.000-6.000 |
| Mediu (corporate) | 3-10 | 1.000-10.000 pagini | 1-2 luni | €8.000-15.000 |
| Complex (portal/enterprise) | 10-30+ | 10.000-100.000+ pagini | 2-4 luni | €15.000-40.000 |
| Enterprise multisite | 20+ per site | 100.000+ | 4-8 luni | €30.000-80.000+ |
Factori care cresc costul:
- Module custom care necesită rescriere completă (cel mai mare cost)
- Integrări externe (SSO, payment, CRM) care necesită reconectare
- Temă custom complexă cu funcționalitate front-end specifică
- Multilingual cu 5+ limbi (migrarea traducerilor este complexă)
- Cerințe de downtime zero (necesită migrare incrementală + DNS cutover)
Pentru execuție end-to-end fără bottleneck pe development intern, vezi servicii dezvoltare web cu expertiză Drupal enterprise — echipă specializată pe migrări D7→D10/11 cu SEO preservation completă.
Ce timeline realist ar trebui să planifici?
Pasul 5: Planifică timeline-ul de migrare cu bufere
| Fază | Durată | Activități |
|---|---|---|
| Audit și planning | 1-2 săptămâni | Inventar, gap analysis, estimare |
| Setup D10/D11 | 1 săptămână | Instalare, configurare, module |
| Temă nouă | 2-4 săptămâni | Design + implementare Twig |
| Module custom | 2-6 săptămâni | Rescriere OOP/Symfony |
| Migrare conținut | 1-2 săptămâni | Config Migrate API, test runs |
| QA și testing | 1-2 săptămâni | Funcțional, visual, SEO |
| SEO redirect-uri | 2-3 zile | Mapping URL, Redirect module |
| Go-live | 1 zi | DNS cutover, final import, monitor |
| Post-launch monitor | 2-4 săptămâni | GSC, 404s, performance, GA4 |
Buffer recomandat: Adaugă 25-30% la estimarea inițială. Migrările Drupal au întotdeauna surprize — module care nu funcționează cum te aștepți, conținut cu structură inconsistentă, edge cases în transformări.
Cum testezi migrarea înainte de go-live?
Workflow de testare recomandat:
- Staging environment: Clonează D10/D11 pe un subdomeniu (staging.site.ro)
- Migrare completă pe staging: Rulează tot pipeline-ul Migrate API
- Visual regression testing: Compară pagini D7 vs D10 — verifică layout, imagini, fonturi
- Content spot-check: Verifică manual 50-100 pagini aleator — text, imagini, meta tags, URL-uri
- Link checking: Crawl cu Screaming Frog — identifică broken links
- Core Web Vitals check: PageSpeed Insights pe 10-20 pagini reprezentative
- Redirect testing: Verifică 301-uri pe URL-uri cheie (top 50 trafic)
- Funcțional testing: Formulare, search, filtre, login, checkout (dacă e cazul)
Criteriu go/no-go: Zero 404-uri pe URL-uri cu trafic, Core Web Vitals green, toate redirect-urile funcționează, meta tags identice. Folosește keyword research pentru a prioritiza URL-urile cu cel mai mare potențial SEO.
Pentru o evaluare completă post-migrare, urmează checklist-ul de SEO on-page pe primele 20-30 pagini și asigură-te că SEO tehnic este corect configurat (sitemap, robots.txt, canonical, HTTPS).
Dacă planifici migrarea ca parte a unei strategii digitale mai ample, asigură-te că ai conversion tracking configurat pe noul site și că Google Analytics 4 trackuiește corect de la prima zi. Nu uita de Consent Mode — site-ul nou trebuie să fie GDPR compliant din start.
Dacă nu ai echipă internă pentru migrare, verifică criteriile de alegere firmă web design — caută specific experiență Drupal migration.
Ce greșeli frecvente se fac la migrarea Drupal 7?
- Amânare indefinită — fiecare lună pe D7 post-EOL crește riscul de breach și costul de Extended Support
- Nu fac audit complet înainte — descoperă probleme la jumătatea migrării, depășesc bugetul
- Ignoră SEO — nu mapează URL-uri, nu setează redirect-uri → pierd 50%+ trafic organic
- Rescriere totală în loc de migrare — „hai să facem totul de la zero" costă 3-5x mai mult
- Nu testează pe staging — go-live direct = dezastru garantat
- Migrare „big bang" fără rollback plan — dacă ceva nu merge, nu au cum să revină
- Ignoră training echipă — admin UI D10 este diferit de D7, echipa de conținut trebuie instruită
- Nu monitorizează post-launch — 404-uri, indexed pages drop, viteze lente — nedetectate săptămâni
- Subestimează efortul pe module custom — rescrierea cod procedural → OOP durează 2-5x mai mult decât estimarea inițială
- Nu implementează tracking-ul corect — pierd date conversii în tranziție
Glosar termeni migrare Drupal
- Migrate API — framework ETL din Drupal core pentru transferul de date între sisteme
- Drush — CLI tool Drupal (echivalent WP-CLI) pentru comenzi de management
- Composer — package manager PHP pentru dependențe Drupal 10/11
- EOL (End of Life) — data după care un software nu mai primește patch-uri de securitate
- Extended Security Support — suport de securitate plătit post-EOL de la vendori certificați
- ETL (Extract, Transform, Load) — pattern de migrare date: extrage din sursă, transformă, încarcă în destinație
- Twig — motor de templating Symfony, înlocuiește PHPTemplate din D7
- Content Moderation — modul core D10 pentru workflow editorial (draft/review/publish)
- Pathauto — modul pentru generare automată URL aliases bazat pe pattern-uri
- Redirect module — modul pentru gestionare redirect-uri 301/302 în Drupal
Ai un site pe Drupal 7 care trebuie migrat? Echipa Digital Rocket realizează migrări Drupal 7 → 10/11 cu zero downtime și SEO preservation completă. De la audit și planning, până la go-live și monitorizare post-lansare. Contactează-ne pentru o evaluare gratuită și un plan de migrare personalizat.
Pentru detalii suplimentare pe topice conexe migrării: costul real al unui proiect Drupal 2026, security best practices pentru Drupal post-migrare, iar pentru proiecte instituționale (.gov.ro, .edu.ro), ghidul Drupal pentru sectorul public RO.
Ai nevoie de ajutor cu campaniile PPC?
Echipa Digital Rocket te poate ajuta să obții rezultate mai bune din publicitatea online.
Cere o consultație gratuită