WordPress hosting for sites migrating from Drupal.
Drupal models content in a way WordPress does not, so the decisions made before the import matter far more than the import itself.
What has to be decided before anything is imported.
A Drupal site is a content model. Importing it without deciding how that model translates produces content nobody can edit.
Content types mapped to post types
Drupal nodes and their fields have no automatic WordPress counterpart. The mapping is agreed first, because guessing produces a site your editors cannot work in.
Path aliases preserved
Drupal aliases are arbitrary rather than derived from titles, so the URL a page has today usually cannot be reconstructed. Each one is captured and redirected.
Taxonomy decided, not flattened
A default import turns every vocabulary into tags and loses the structure the site was organised around. Each vocabulary is mapped deliberately.
Accounts move, passwords cannot
Drupal's password hashes are not readable by WordPress, so accounts transfer with a forced reset rather than silently failing at first login.
Multilingual planned against an approach
Drupal handles translations natively and WordPress needs a plugin, so the choice of plugin shapes how the content has to be imported.
Agree the model, then move the content.
This is the migration where rushing the import costs the most, because unpicking a bad content model afterwards means touching every entry.
- Content model and field mapping agreed before import
- Alias redirect map captured
- Cutover at a time you choose
- Drupal site left live until you confirm
Simpler stack, same content.
Most Drupal sites that move are being run by a team that no longer wants to maintain Drupal. The performance is a side effect of the stack getting simpler.
What this move needs that a host migration does not
Every item here is a decision rather than a setting, and each one is expensive to revisit after the content has landed.
| Setting | What we do | Why |
|---|---|---|
| Content types and fields | Mapped to post types and custom fields before any import runs | Drupal nodes and their fields have no WordPress equivalent, and an unmapped import produces content that technically exists but nobody can edit. |
| Path aliases | Captured individually and preserved as redirects | Drupal aliases are arbitrary rather than generated from titles, so a page's current URL usually cannot be derived from anything else. |
| Taxonomy | Each vocabulary mapped to categories, tags or a custom taxonomy by decision | A default import flattens every vocabulary into tags, discarding the structure the site was actually organised around. |
| User accounts | Migrated with a forced password reset | Drupal password hashes cannot be read by WordPress, so pretending accounts transfer intact means every user fails to log in on day one. |
| Multilingual content | Planned against a specific WordPress approach before import | Drupal translates natively while WordPress needs a plugin, and which plugin you choose determines the shape the content has to arrive in. |
Simple, transparent pricing.
Every plan includes free migration, daily backups, SSL and 24/7 support.
- 1 WordPress site
- 10 GB NVMe disk
- Free SSL
- Daily backups
- One-click deployment
- Support tickets
- 5 WordPress sites
- 50 GB NVMe disk
- Free SSL
- Daily backups
- One-click deployment
- Priority support tickets
- 20 WordPress sites
- 200 GB NVMe disk
- Free SSL
- Daily backups
- One-click deployment
- Dedicated support
Questions, answered.
Will my Drupal content types survive the move?
What happens to my URLs?
Can my users keep their passwords?
My site is multilingual. Does that complicate things?
How are my taxonomy vocabularies handled?
Leave Drupal with the content model intact.
Free migration, fields mapped before import, and every path alias redirected.