Metaobjects vs metafields: how I decide
Keith Pillay · 27 September 2026 · 3 min read
Shopify gives you two ways to store custom data beyond the standard fields: metafields and metaobjects. They sound similar, and people often reach for the wrong one. Here's the rule I use.
The core difference
A metafield is an extra piece of data attached to something that already exists: a product, a variant, a collection, a customer, an order, the shop itself. It lives on that resource.
A metaobject is its own standalone record, with its own set of fields that you define. It lives by itself and can be referenced from elsewhere.
One way to think about it: a metafield is a sticky note on an existing object. A metaobject is a new kind of object.
When I use a metafield
Use a metafield when the data belongs to one specific thing and describes it:
- A product's care instructions or material.
- A variant's extra specification.
- A collection's banner colour.
- A customer's preference.
Typical sign: if you were adding another column to a spreadsheet of products, it's a metafield.
When I use a metaobject
Use a metaobject when the data is a reusable record with several fields, shared or referenced from many places:
- Size guides used by many products.
- Designers, brands or ingredients that appear on multiple products.
- FAQ entries or testimonials.
- Store locations.
- Any list of structured items that a merchant wants to manage in one place.
Typical sign: if you were creating a second spreadsheet and linking rows between them, it's a metaobject.
They work together
The usual pattern is a metafield that references a metaobject. A product has a metafield pointing at its size-guide metaobject. Edit the guide once, and every product that references it updates. You get a relationship without duplicating data.
Questions I ask
- Is this data about one object, or is it its own thing?
- Will it be reused across products or pages? If yes, lean to metaobject.
- Does it have more than one field? A single value points to a metafield. A group of related values points to a metaobject.
- Who will edit it? Both can be editable in the admin, but a metaobject gives merchants a clear place to manage a library of items.
- Where will it appear? Both can be used in themes through Liquid, so check how you'll render it in each case.
Common mistakes
- Stuffing structure into a text metafield. JSON or delimited text in a single-line field works until a merchant has to edit it. If you're encoding a list or a record in a string, you wanted a metaobject.
- Making a metaobject for a one-off value. If only one product uses it and it's a single value, it's overhead.
- Not planning for migration. When moving from another platform, decide the structure before importing. See Migrating to Shopify.
- Skipping the definition. Define field types and names deliberately. Typed definitions are easier to maintain and safer to use in code.
A quick decision table
| Data | Choose | |---|---| | One product's material | Metafield | | A size guide shared by 200 products | Metaobject, referenced by a metafield | | A collection's hero colour | Metafield | | A list of FAQs shown on several pages | Metaobject |
The takeaway
Start by asking whether the data is a property or a thing. Properties go in metafields. Things that deserve their own records go in metaobjects. When in doubt, think about who edits it and how many places use it.
Shopify's data features evolve, so check the current documentation for field types and limits before designing a data model.

