RevealTheme logo
Back to Blog

WordPress Custom Fields: Native vs ACF vs Meta Box

WordPress Custom Fields: Native vs ACF vs Meta Box
The RevealTheme Team

By

··Updated May 27, 2026·6 min read

Adding custom data to WordPress posts is essential for any site beyond simple blog publishing. A real estate site needs property data. A recipe site needs ingredient and time data. A case study site needs client and outcome data. The data needs to be structured (specific fields with specific types) rather than buried in post content.

The three main approaches to custom fields are: WordPress's native custom fields meta box, Advanced Custom Fields (ACF) plugin, and Meta Box plugin. Each has trade-offs that affect different use cases.

Native custom fields: the bare-bones option

WordPress has built-in custom fields. In the post editor, click Options (three dots in top right) then enable Custom Fields. A meta box appears with a key-value pair interface. You can add any key and value.

The strength: zero plugin dependency. The functionality is part of WordPress core. The data is stored in the wp_postmeta table using standard WordPress data structures.

The weakness: the interface is awful. The meta box presents a flat key-value form with no validation, no field types, no UI hints, no relationships. Adding a "price" field requires manually typing "price" as the key and entering a value. There's no enforcement that price must be a number; if you type "expensive" the system accepts it.

Native custom fields work for cases where you need to add structured data to maybe 10 posts and don't need editorial assistance. They don't scale to anything beyond that.

Advanced Custom Fields (ACF): the standard solution

ACF is the most-installed custom field plugin. Free version covers most needs; ACF Pro ($49/year personal license, $249/year unlimited) adds advanced field types and features.

The strength: comprehensive field types (text, number, image, file, repeater for arrays, flexible content for variable structures, gallery, relationship for linking between posts, taxonomy selection, user selection, date picker, time picker, color picker, true/false toggle, select dropdown, checkbox group, radio buttons). Each field type has UI appropriate for its data and validates input correctly.

The strength: field groups can be applied to specific post types, specific posts based on conditions, specific user roles, specific taxonomies, specific page templates. The conditional display lets the editor see only the fields relevant to their current context.

The strength: the development workflow is mature. Field groups can be exported to PHP or JSON for version control. Field changes in the admin sync to the JSON files. The team can manage field structure through code rather than only through the admin UI.

The weakness: like any plugin dependency, ACF could change pricing, support, or features. The Pro features are behind a paywall; some advanced field types are Pro-only.

Meta Box: the developer-leaning alternative

Meta Box is the alternative custom fields plugin. Free version is more capable than ACF's free version; the paid extensions ($39-$249 depending on bundle) add specific features.

The strength: more developer-friendly. Field definitions can live entirely in code (PHP arrays in functions.php or a custom plugin). The admin UI is functional but the primary workflow is code-based.

The strength: integration with custom post types and custom taxonomies through additional Meta Box extensions. The ecosystem of MB extensions covers most use cases.

The weakness: smaller user base than ACF. Fewer tutorials, fewer integrations from other plugins. The smaller community means less material when you're learning.

The weakness: the developer-friendly aspect can be a downside for sites where editors need to manage field configuration. ACF's admin UI is more accessible to non-developers.

The recommendation by situation

For most WordPress sites that need custom fields: ACF. The plugin is mature, the field types cover real needs, the editor experience is friendly. The free version handles most use cases; the Pro upgrade is worth the cost for sites that need the advanced features.

For developer-led sites where custom fields are defined in code as part of the development process: Meta Box. The code-first workflow integrates with development practices better.

For one-off needs where you have 5-20 posts that need 2-3 simple text fields: native custom fields. The plugin overhead isn't justified at this scale.

The data portability question

Custom fields are stored in wp_postmeta in WordPress's standard format. ACF, Meta Box, and native all store data in the same way under the hood.

This means data is portable between approaches. If you start with ACF and later want to switch to Meta Box, the data structure stays compatible. The field configuration changes; the data itself doesn't.

The portability is one reason the choice is less critical than it seems. You can change your mind on field plugins later without major data migration.

The performance consideration

Custom fields are stored as rows in wp_postmeta. Each post has one row per field. A post with 20 custom fields has 20 postmeta rows.

When WordPress loads a post, it can load all postmeta efficiently in a single query. The performance is acceptable up to ~50 custom fields per post.

Beyond ~50 custom fields, the postmeta query starts becoming a bottleneck on high-traffic sites. The optimization at that scale is to move some structured data into custom database tables rather than continuing to add postmeta fields.

For most sites, the postmeta approach is fine. The custom table optimization is a real-but-narrow consideration.

The relationship between custom fields and structured data

Custom fields and Schema.org structured data are related but different. Custom fields store data in the WordPress database. Structured data exposes that data to search engines through JSON-LD.

For full SEO benefit, structured custom fields should feed into JSON-LD structured data. ACF and Meta Box both have integrations or extensions for this. The integration ensures that when you mark a post with custom fields (price, author, rating), the same data appears in the page's structured data.

The integration isn't automatic; it requires either an SEO plugin that's aware of your custom fields or custom code that emits JSON-LD with the custom field data.

The honest framing

Custom fields are essential for WordPress sites with structured content. The plugin choice (ACF vs Meta Box) matters less than the discipline of using custom fields for structured data rather than burying everything in post content.

The mistake to avoid: storing structured data in post content as formatted text. A recipe site that puts ingredients as a bulleted list in post content can't easily filter, sort, or query the ingredients. The same data in custom fields is queryable and portable.

The investment in setting up custom fields pays off across the site's lifetime. Pages can reuse the data. Search and filtering work properly. Structured data emission is straightforward. The discipline is worth it even for sites where the immediate benefit isn't obvious.