Home / Fix a Problem / Site is Slow / Charset & collation migration to utf8mb4

Older WordPress databases often run on utf8, a charset that can’t store the full range of modern text — certain emoji, some non-Latin characters, specific punctuation — silently corrupting or truncating it on save. utf8mb4 is the fuller, current standard, and migrating to it is safe when done carefully and risky when done carelessly, since every table and column involved has to move in a coordinated way.

Why we check before we migrate, not after

A charset migration touches every table in the database, and doing it out of order, or missing a table a plugin added outside WordPress’s normal schema, can leave data silently mismatched between tables that are supposed to relate to each other.

We verify the full table list and take a complete backup before changing anything, precisely because a partial migration is worse than not migrating at all — it leaves you with an inconsistent database rather than simply an outdated one.

This is one of the fixes where the diagnosis time is not padding; confirming every table genuinely moved together is what makes the difference between a clean migration and a subtly broken one that surfaces weeks later.

Custom tables added by plugins are the most common thing missed in a rushed migration, since they don’t always appear in the same place a standard WordPress table list would show them, and a table left behind on the old charset can quietly break the very relationships this migration is meant to fix.

We treat the table inventory as its own checklist item rather than an assumption, cross-referencing what WordPress itself registers against what actually exists in the database, since the two aren’t always identical on a site that’s had several plugins come and go over the years.

DBH-014

Charset & collation migration to utf8mb4

Your database charset can't store certain modern characters correctly, silently corrupting them on save. We migrate it to utf8mb4 carefully, table by table.

$219.49 delivered in 72 hours
Needs Database access and Hosting panel. Create a limited sub-account — we never ask for your own password.
  • Full backup taken before we start
  • If we can’t fix it, you get your money back
  • We never ask for your own password

What we need from you

  • Confirmation of your current database charset, which we can check for you if you’re not sure
  • Whether you’ve noticed specific content — emoji, particular characters — displaying incorrectly
  • Full database access
  • A maintenance window, since this is safest done with the site briefly in a controlled state

This or something else?

Emoji or specific characters saving incorrectly or as garbled text This fix covers it
Preparing for a plugin or feature that specifically requires utf8mb4 This fix covers it
General database size or performance concerns, not charset-related Database size audit & reduction report
Database corruption unrelated to charset Serialized data corruption repair
General site slowness with no charset symptom Slow site diagnostic report

What we do

  1. Confirm the current charset and collation across every table, not just the main ones
  2. Take a full, verified backup before any change
  3. Migrate tables to utf8mb4 in the correct order, preserving relationships between them
  4. Check for and repair any data already corrupted under the old charset where possible
  5. Test content displaying correctly across posts, comments, and custom data
  6. Confirm plugins and custom tables are consistent with the rest of the database afterwards

What is included

  • Full charset and collation migration, verified table by table
  • Pre-existing corruption identified and repaired where recoverable
  • Testing across content types to confirm correct display
  • The pre-migration backup, kept for 30 days

Not included

  • Recovering data already lost before the migration, if it can’t be reconstructed
  • Migrating custom application databases unrelated to WordPress
  • Ongoing charset management as new plugins are added
  • Design or content changes unrelated to character encoding

Questions about this fix

How do I know if I'm actually affected?

The clearest sign is emoji or certain special characters saving as question marks or garbled symbols instead of displaying correctly. If you haven't noticed that, we can still check your current charset directly rather than you needing to spot a symptom first.

Is this migration reversible?

Not cleanly in the way a settings change is — which is exactly why the pre-migration backup matters, since restoring it is the practical way back if something needs undoing.

Will this fix content that's already corrupted?

Sometimes — data already saved incorrectly under the old charset can sometimes be recovered, but not always, depending on exactly what was lost in the original save. We tell you plainly what's recoverable and what isn't.

Do I need this if I don't use emoji?

Less urgently, but utf8mb4 also affects certain accented characters and symbols beyond emoji, and some newer plugins now require it outright regardless of whether you use emoji yourself.

Will this cause downtime?

A brief window while tables migrate, timed for low traffic, rather than an extended outage — the exact length depends on database size, which we can estimate once we've seen it.

Charset & collation migration to utf8mb4
$219.49 · delivered in 72 hours · needs Database access, Hosting panel

Related fixes

If this is the second time this year

A bad update breaking the site is a symptom of updates not being tested first. Care plans run every update on a staging clone before it reaches your live site, which is the actual fix for this happening again.

See care plans

Your access, your rules

Create a separate admin account for us and delete it when we are done. For anything else, we get in touch and agree a method — never a form field on this site, never by reply to an email.

We back up first, always

Before anything is touched we take a full backup and keep it for 30 days. If a fix goes wrong, we put the site back exactly as it was.

If it is not what you bought

If the problem turns out smaller than what you ordered, we refund the difference. If it is bigger, we stop and send a quote before doing any extra work.

If we cannot fix it

You get back what we received. Diagnosis is on us — you only pay when the problem is actually solved. The payment processor takes its fee before the money reaches us, so we never hold it and it is not ours to return. That is true here as everywhere else.

If it comes back

Reply within seven days of delivery and we put it back on the bench at no cost. The fix is not finished until it holds.

What we are responsible for

If something goes wrong with a fix, our responsibility is limited to what you paid for it. We take a full backup first so mistakes can be undone, and we tell you before doing anything outside what you bought.