ACF Hosting

ACF hosting for sites built on postmeta.

Custom fields turn one post into fifty rows. That is fine until something queries them, and then the postmeta table is the whole performance story.

Postmeta indexedOptions kept off autoloadRepeaters that scale
Meta indexingAutoload controlRepeater-awareDaily backupsFree SSL24/7 support
Built for custom fields

Fifty rows per post, and growing.

Everything here follows from ACF storing each field as its own row, plus a second row describing it.

A meta table that stays queryable

A field group with twenty fields writes forty rows per post, half of them the hidden reference keys. Indexes are set for the key and value lookups templates actually make.

Indexed lookups

Repeaters that do not explode

A repeater with ten rows of five fields is a hundred meta rows for one post. Those reads are grouped and cached rather than fetched one field at a time.

Grouped reads

Options pages off the autoload path

An ACF options page stores its values as a single site option that loads on every request. Left autoloading, a large one is added to the cost of the entire site.

Field groups synced as files

Local JSON keeps field definitions in the repository rather than the database, and the directory it writes to stays writable so a deploy does not silently stop syncing.

Recover a deleted field group

Removing a field group orphans its data rather than deleting it, but removing the wrong one is still a bad afternoon. Daily backups make it undoable.

Structure

The cost of a well-modelled site.

Modelling content properly with ACF is the right call and it multiplies row counts. The hosting job is making that multiplication cheap rather than talking you out of it.

  • Meta queries indexed on key and value
  • Repeater reads grouped into one fetch
  • Options pages excluded from autoload
  • Local JSON directory kept writable
Postmeta rows
Across the site
1.9M
Meta queries
Indexed
current
Autoloaded options
Under review
412 KB
Field group sync
Local JSON
running
Meta reads

Templates that ask for thirty fields.

An ACF-built template pulls dozens of values per post, and on an archive that is dozens times the number of posts on the page.

Indexed
meta key and value
Grouped
repeater reads
Trimmed
autoloaded options
MagicWP145 ms
Typical shared host1090 ms
Untuned VPS470 ms

Illustrative comparison of an archive template rendering multiple ACF fields per post. Your numbers depend on field counts and query complexity.

Configuration

What we change for ACF

One design decision drives all of it: every field is a row, and templates read many of them at once.

SettingWhat we doWhy
Postmeta indexingIndexed for key and value lookups togetherACF stores each field as its own row plus a hidden reference row, so a twenty-field group is forty rows per post before any repeater.
Repeater readsFetched as one grouped query per postA repeater row is a set of meta keys with a numeric prefix, and reading them individually is one query per field per row.
Options page storageKept out of the autoloaded options tableAn options page loads as a single site option on every request, so a large one adds its weight to pages that never reference it.
Local JSON directoryKept writable through deploysField group syncing silently stops when the directory is not writable, and nobody notices until two environments have different definitions.
Orphaned metaReviewed rather than pruned automaticallyDeleting a field group leaves its data behind, which is recoverable data and not something a host should decide to remove.
Plans

Simple, transparent pricing.

Every plan includes free migration, daily backups, SSL and 24/7 support.

MonthlyYearly 2 months free
Starter
For personal sites, blogs, and portfolios.
$20/mo
  • 1 WordPress site
  • 10 GB NVMe disk
  • Free SSL
  • Daily backups
  • One-click deployment
  • Support tickets
Start free trial
Pro★ Most popular
For growing businesses and busy stores.
$80/mo
  • 5 WordPress sites
  • 50 GB NVMe disk
  • Free SSL
  • Daily backups
  • One-click deployment
  • Priority support tickets
Start free trial
Enterprise
For agencies and high-traffic platforms.
$250/mo
  • 20 WordPress sites
  • 200 GB NVMe disk
  • Free SSL
  • Daily backups
  • One-click deployment
  • Dedicated support
Start free trial
FAQ

Questions, answered.

Why are my ACF queries slow?
Almost always meta queries against an unindexed postmeta table. Every field is a row, so a site with rich field groups has millions of them, and filtering on a value without an index scans all of them.
Should I use an ACF options page for global settings?
Yes, but it needs to stay off the autoload path. It loads as one site option on every request, so a large options page becomes a fixed cost on every page of the site.
Do repeaters cause problems at scale?
They multiply rows quickly — ten rows of five fields is a hundred meta rows per post. The fix is reading them as one grouped query rather than field by field, which is set up here.
Does ACF Pro work?
Yes, including local JSON syncing. The directory it writes to is kept writable through deploys, which is the usual reason syncing quietly stops.

Model content properly and stay fast.

Move the build across — migration is free, field groups included.