Vertical Shopify SEO · Food & Beverage

Shopify SEO for Food & Beverage: Recipe Content, Nutrition, and Google Merchant Center

Food and beverage Shopify SEO faces the tightest Merchant Center policies of any vertical, strict UK FSA labelling rules, and Recipe schema opportunities that most guides ignore. This is the vertical-specific playbook, with real templates.

Food and beverage Shopify stores navigate three overlapping constraints: UK Food Standards Agency (FSA) labelling and claim rules, Google Merchant Center's restricted-content food policies (alcohol, supplements, prepared food), and Recipe schema opportunities that most food stores never touch. This article covers the food and beverage-specific version of Shopify SEO - Recipe schema, nutrition information, FSA-compliant product content, and Merchant Center feed handling for consumables. It follows the same technical-SEO foundations covered in our Shopify SEO fundamentals article and the sibling vertical playbook for Shopify SEO for fashion.

The templates below come from client work at our Shopify SEO consultancy across consumables and FMCG.

By Chris Coussons · 15 July 2026 · 13 min read

Why food + beverage is different for Shopify SEO

Food and beverage Shopify stores navigate three overlapping constraints most other verticals never touch: UK Food Standards Agency (FSA) labelling and claim rules, Google Merchant Center's restricted-content food policies covering alcohol, supplements and prepared food, and Recipe schema opportunities that most food stores never wire up. Fashion and beauty stores worry about imagery and sizing; food stores worry about all of that plus a legal disclosure regime that applies to every single product page.

That sounds like a burden, and in the short term it is one. But the tradeoff is that the constraints, once handled properly, become a moat. Most competing food and drink brands treat compliance as a packaging-design problem and never bring the same data onto the product page as structured, crawlable text. That leaves the recipe-rich-result slot and the long-tail nutrition query almost entirely unclaimed by brand sites - both drive high-intent traffic straight to product pages rather than to a generic recipe publisher.

There is also a commercial reason to get this right early. Google Merchant Center treats food, drink and supplement listings with more scrutiny than almost any other category outside financial services and healthcare. A feed that has not accounted for restricted-content rules gets listings disapproved silently, and by the time a brand notices, weeks of Shopping visibility have been lost. The playbook below is built to prevent that, while also using the same compliance data to win organic rankings that competitors are leaving on the table.

We will move through FSA labelling requirements, the Recipe and NutritionInformation schema stack, Merchant Center policy for food and alcohol specifically, and the recipe-to-product content strategy that consistently converts better than any other food content format we have tested.

UK FSA labelling rules on Shopify product pages

The Food Information Regulations 2014 (FIR) implement the EU Food Information to Consumers Regulation in UK law, and they apply to online sales exactly as they apply to a physical shelf. This is the detail most Shopify theme builders miss: a product photo of the packaging label is not legally sufficient, and it is not crawlable either. The same information has to exist as accessible page text before a customer completes a purchase.

Every packaged food or drink product page must display, pre-purchase:

  • Allergens highlighted within the ingredient list (bold or a distinct style, not a separate disclaimer)
  • Full ingredient list in descending weight order
  • Net quantity
  • Minimum durability date (best before / use by), or the date format the product will carry
  • Storage conditions and any conditions of use after opening
  • Business name and address of the food business operator
  • Country of origin, where required for the category
  • Quantitative Ingredient Declaration (QUID) for any named or emphasised ingredient

In practice this means every product template needs dedicated, structured fields for allergens, ingredients, storage and business details, rather than relying on a single free-text description box. Building this as metafields rather than paragraph copy pays off twice: it satisfies FIR requirements consistently across the whole catalogue, and it gives you the exact same structured data source you need for NutritionInformation and Recipe schema later in this article.

Compliance is on-page, not on packaging

A photo of the packaging label is not sufficient under FIR, and it is invisible to search engines. The data must be rendered as accessible page content - which, conveniently, is also exactly what SEO wants from a product page.

FIR label fields

8

Mandatory pre-purchase data points required on every UK packaged food product page.

Overlapping regimes

3

FSA labelling, Merchant Center restricted-content policy and Recipe schema all apply simultaneously.

Claim tolerance

0%

Health claims like 'low sugar' require the product to meet the exact regulatory threshold - no rounding.

Health and nutrition claims sit alongside labelling. Any claim like "low sugar" or "high in fibre" must meet the specific thresholds defined in UK nutrition and health claims regulation - you cannot use the term unless the product meets the numeric criteria attached to it. Treat product copywriters and SEO copy the same way you would treat a regulatory sign-off: claims need a source figure before they go live, not after.

Recipe schema - the biggest unclaimed opportunity

Recipe schema unlocks recipe rich results in SERPs - image, cook time, star rating, calorie count and an ingredient snippet, all before the click. Very few food-brand Shopify stores mark up their recipe content properly, which is why that rich-result slot is almost always held by editorial food publishers such as BBC Good Food or Delicious, even when a brand's own recipe using its own product would satisfy the same search intent.

The Liquid pattern we use: store recipe fields in article metafields - name, recipeIngredient (as a list), recipeInstructions, prepTime, cookTime, recipeYield, recipeCategory, keywords, image and nutrition - then render both Article schema (for the blog post itself) and Recipe schema (for the recipe content) as separate JSON-LD blocks in the article template's head. The two schemas are not mutually exclusive; Google expects both when a blog article is also a recipe.

A simplified version of the Liquid injection looks like this:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Recipe",
  "name": "{{ article.metafields.recipe.name }}",
  "image": "{{ article.metafields.recipe.image }}",
  "prepTime": "PT{{ article.metafields.recipe.prep_time }}M",
  "cookTime": "PT{{ article.metafields.recipe.cook_time }}M",
  "recipeYield": "{{ article.metafields.recipe.yield }}",
  "recipeIngredient": [
    {% for item in article.metafields.recipe.ingredients.value %}
      "{{ item }}"{% unless forloop.last %},{% endunless %}
    {% endfor %}
  ],
  "recipeInstructions": "{{ article.metafields.recipe.instructions }}",
  "nutrition": { "@type": "NutritionInformation", "calories": "{{ article.metafields.recipe.calories }} calories" }
}
</script>

The internal-link pattern is what actually pays for the schema work: every recipeIngredient that matches a live SKU is linked, by product name, to that product's URL, and the article closes with a "shop this recipe" block listing every product used. That pattern is covered in full in the recipe content strategy section below - it is the single highest-converting content format we run for food and drink clients.

Try it: recipe schema generator

Fill in the fields below and copy the generated JSON-LD straight into a recipe article's head tag as a starting point - swap the placeholder instruction step for your real method.

Generated JSON-LD - paste into your recipe article's head:

{
  "@context": "https://schema.org",
  "@type": "Recipe",
  "name": "Slow-Roasted Tomato & Basil Sauce",
  "prepTime": "PT15M",
  "cookTime": "PT45M",
  "totalTime": "PT60M",
  "recipeYield": "4 servings",
  "recipeIngredient": [
    "1kg fresh tomatoes",
    "3 tbsp olive oil",
    "Fresh basil",
    "2 cloves garlic"
  ],
  "nutrition": {
    "@type": "NutritionInformation",
    "calories": "180 calories"
  },
  "recipeInstructions": [
    {
      "@type": "HowToStep",
      "text": "See full method in the article body."
    }
  ]
}

NutritionInformation schema on product pages

NutritionInformation is not a standalone schema type - it is a nested property of Product schema, sitting alongside price, availability and review data in the same JSON-LD block. Store per-100g and per-serving values in a dedicated product metafield (calories, fat, saturated fat, carbohydrates, sugars, protein, salt, servingSize), then render them as a nested NutritionInformation object inside the existing Product JSON-LD your theme already outputs for pricing and reviews.

Doing this well solves two problems with one field structure. Google can surface nutrition data on relevant SERP features and shopping surfaces, and the same structured values satisfy the FIR requirement to disclose nutrition information pre-purchase - you are not duplicating work, you are building one data source that serves compliance and SEO simultaneously.

Nested NutritionInformation JSON-LD:

{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Cold-Pressed Rapeseed Oil 500ml",
  "nutrition": {
    "@type": "NutritionInformation",
    "servingSize": "15ml",
    "calories": "120 calories",
    "fatContent": "13.5g",
    "saturatedFatContent": "1g",
    "carbohydrateContent": "0g",
    "sugarContent": "0g",
    "proteinContent": "0g",
    "sodiumContent": "0g"
  }
}

Google Merchant Center policy for food + drinks

Two adjustments differentiate a food and drink feed from a standard MC feed. First, use Google's precise product taxonomy rather than a generic parent category - the food tree in Google's product taxonomy runs to more than 200 subcategories, and a listing filed under a generic parent competes on relevance against far more specific competitor listings and typically loses. Second, declare shipping restrictions accurately: perishables often require named shipping methods that Merchant Center needs to know about explicitly, and undeclared perishability is one of the more common causes of customer-satisfaction penalties in the food category.

Beyond feed hygiene, several sub-categories sit under Google's restricted-content policy and require additional review before Shopping ads can serve at all: prepared meals and meal kits, alcohol, supplements and nutraceuticals, and CBD products. Each of these has a distinct approval path, and getting the category wrong at feed-submission stage is the single most common reason a brand's Shopping campaign never launches on schedule.

The matrix below is the reference we use with clients to work out feed handling and approval requirements by food type before a feed goes live.

Ambient packaged food (tins, dry goods, condiments)

Feed handling: Standard feed. Use precise GPC food subcategory, not a generic parent.

Approval needed: None beyond standard MC

Alcohol handling

Alcohol on Shopify is entirely workable, but it has four moving parts that need to be built together rather than bolted on individually. First, age verification via a Shopify app configured to run before checkout is reached, not just at the storefront gate - checkout-stage verification is what most payment processors and regulators actually expect. Second, Shopify Markets configured to restrict shipping to legal-age jurisdictions, since UK alcohol law and destination-market alcohol law can differ, and a single default market setting is not sufficient once you ship cross-border.

Third, product page labelling compliant with UK advertising codes and, where relevant, Portman Group guidance - ABV, unit content and any required warnings need to be on the page as text, following the same principle as FSA labelling above. Fourth, Merchant Center Advertiser Programme approval for the alcohol category, which must be granted before any Shopping campaign involving alcohol products is enabled; submitting a feed without this approval in place results in blanket disapproval of every alcohol SKU, not just the ones with an issue.

The most common mistake we see is treating age verification as a front-end popup problem only. Search engines and ad platforms both expect the region-restriction logic to be enforced structurally - through Shopify Markets and checkout rules - not just displayed as a modal that any visitor can click through.

Recipe content as a content strategy

Recipe articles are the single content type that converts food traffic to product purchases better than any other format we run for consumable brands. The internal-link pattern that makes this work: every recipe article links each ingredient by name to the specific product URL it corresponds to, uses the product name itself as anchor text rather than a generic "buy here" link, and closes with a "shop this recipe" block that surfaces every product used in one CTA rather than scattering links through the body copy.

Recipes that use four to six of your own products convert at roughly three to five times the site-average rate, because the visitor arrives already committed to cooking the dish and the products are presented as the exact ingredients needed rather than as an upsell. The diagram below sets out the full loop, from the recipe article through to the product page linking back.

Recipe article published

Recipe + Article JSON-LD in the page head, targeting a recipe search query.

Recipe selection matters as much as the linking pattern. Recipes built around a single hero product (a specific sauce, spice blend or spirit) outperform recipes that use the brand's products only as background ingredients - the search intent behind "what to cook with X" is a much stronger buying signal than a generic recipe query that happens to include your product somewhere in the ingredient list.

Ingredient content for consumables

Ingredient content in food and drink is a different exercise from ingredient content in beauty, even though the page template can look similar. A beauty ingredient page is built around efficacy - what the ingredient does to skin or hair, and the clinical evidence behind it. A food ingredient page is built around taste, provenance and use-case, because that is what the searcher is actually trying to resolve: where does this come from, what does it taste like, and what do I do with it.

Useful templates for consumable ingredient pages: origin story (farm, region, producer), tasting notes, culinary pairings, storage guidance, and seasonal availability where relevant. Each ingredient page should link both to the SKUs it appears in and to the recipes that use it, closing the same content loop described in the recipe-to-product section above from the other direction.

This content type also tends to rank for a different keyword shape than product or recipe pages - informational queries like "what does X taste like" or "where does X come from" - which means it is additive traffic rather than cannibalising the recipe or product pages already targeting transactional intent.

Case study: food and beverage Shopify SEO in practice

One anonymised example from our client work: a UK specialist food brand had a large recipe archive that had never been marked up with Recipe schema, and product pages carried allergen and nutrition information only as an image of the packaging label. We rebuilt the product template to expose FIR-required fields as structured metafields, added nested NutritionInformation to the Product schema, and retrofitted the recipe archive with Recipe and Article schema plus the ingredient-to-product linking pattern described above.

The Merchant Center feed was also re-mapped from a generic "Food, Beverages & Tobacco" parent category to the precise subcategories for each product line, and shipping declarations were corrected for the chilled lines that had previously been filed as ambient. Within the following quarters, recipe pages began appearing with rich results for cook-time and ingredient-image search terms, and the ingredient-linked product pages saw materially higher click-through from recipe traffic than from any other referring content type on the site.

The pattern held across other consumable and FMCG clients too, including brands in the LADC, Biopreventative and AB Ellie portfolios - structured compliance data and recipe schema are not separate workstreams, they are the same underlying content asset serving two different purposes.

Frequently asked questions

If you publish recipes as content - yes. Recipe schema unlocks recipe rich results in SERPs (with images, cook time, rating, calories) and dramatically improves discovery for recipe-adjacent queries. If you sell food products but don't publish recipes, focus on NutritionInformation schema at the product level instead.

Same rules as physical products - Food Information Regulations 2014 apply to online sales. Mandatory declarations: allergens (highlighted in the ingredient list), ingredients in descending weight order, net quantity, minimum durability date, storage conditions, business name + address, country of origin where relevant, and quantitative ingredient declaration for named ingredients. All must be on the product page pre-purchase.

Yes with age verification. Set up an age gate via a Shopify app (Age Verifier or similar), configure Shopify Markets to restrict shipping to legal-age jurisdictions, add compliant labelling (ABV, warnings), and check Google Merchant Center policy - alcohol is restricted-content and requires Advertiser Programme approval before ads serve.

Add NutritionInformation as a nested property of Product schema via metafield-driven Liquid injection. A metafield stores per-100g nutrition data (calories, fat, saturated fat, carbohydrates, sugar, protein, salt), and a Liquid template renders it as NutritionInformation JSON-LD in the product page's head.

Yes - recipes live in the /blogs/ URL path like any Shopify blog article. Each recipe article gets both Article schema (for the blog article) and Recipe schema (for the recipe content), plus internal links to the specific products used. This converts recipe traffic to product purchases better than any other food content type.

Follow standard MC feed setup with two food-specific additions: precise product-category taxonomy (Google's taxonomy has 200+ food subcategories - use the exact match, not a generic parent), and shipping restrictions accurately declared (perishables often require specific shipping methods MC needs to know about).

Work With Visionary Marketing

Food & Drinks SEO Done Properly.

We ship Shopify SEO for UK food, drink and consumable brands - including FIR-compliant PDPs, Recipe schema and Merchant Center strategy.

Visionary Marketing is a UK-based SEO and Google Ads agency that takes a data-led approach to growth. We don't guess - we analyse your market, competitors, and performance data to build strategies that drive measurable revenue. Every campaign is grounded in real numbers, not assumptions.

Data-led strategy - every decision backed by real performance data
Senior specialists only - no junior account managers
No contracts - month-to-month, cancel anytime
Revenue-first - we track ROAS, not vanity metrics
Get a free audit

About the Author

Chris Coussons, Founder of Visionary Marketing

Chris Coussons

Founder · Visionary Marketing

Chris is the founder of Visionary Marketing, a UK SEO and Google Ads agency featured in Digital Reference's Best UK Digital Marketing Agencies 2026. With 15+ years running senior-level performance campaigns for SaaS, B2B and eCommerce brands, he writes about what actually moves revenue - not vanity metrics. Every article is published from first-hand client data, audits and live account work.