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)
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.
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ă