TL;DR
Meal delivery is bought under constraint rather than preference, so the query is almost never best meal delivery. It is gluten free, under 500 calories, high protein, delivers to my area. Constraint-led queries need per-meal structured data that brands hold and publish inside JavaScript filter widgets, where retrieval cannot reach it. The fix is per-meal macros and allergens as text and markup, precise certification language, delivery geography published as data, plain subscription mechanics, and a menu architecture that survives weekly rotation.
Audience
Growth and ecommerce leads at meal delivery, prepared meal and meal kit companies competing for AI recommendations against grocery and each other.
Cortex
Cortex is modern marketing. Old marketing waited on people. Modern marketing fuses the efficiency of AI with the experience of experts. Meet your optimization engine.
Get CortexEffective
US law requires the major food allergens to be declared on packaged food labels, and sesame was added as the ninth major allergen effective in 2023. [src]
Impact
The FDA's gluten-free labelling rule sets a threshold of less than 20 parts per million of gluten for a food bearing that claim. [src]
Action
Schema.org provides NutritionInformation with per-serving properties including calories, protein, fat and carbohydrate content. [src]
Platform
Google's helpful content guidance rewards pages that let a reader accomplish their goal, which for a constrained eater means applying their constraint without a phone call. [src]
Methodology
Cortex ran 35 meal delivery queries across AI answer engines, separated constraint-led from preference-led phrasing, and compared the cited sources against the nutrition, allergen and delivery data published on meal delivery sites.
Read 50 real meal delivery searches and one thing becomes obvious. Almost nobody types best meal delivery service.
They type gluten free meal delivery. High protein meals delivered. Meal delivery under 500 calories. Prepared meals for someone with kidney disease. Meal delivery that ships to rural Montana. Dairy free meals my kids will eat.
Every one of those is a constraint, not a preference. The buyer is not browsing a shortlist, they are filtering a universe down to the subset that is possible for them, and only then choosing. Which means the winner of a meal delivery query is not the brand with the best food. It is the brand whose data an engine can actually filter.
Most meal delivery sites hold that data in full and publish it inside a JavaScript filter widget, where retrieval cannot reach it.
Constraint-Led Querying
The distinction between a preference query and a constraint query matters because they behave differently.
A preference query has a fuzzy answer. Best running shoes tolerates 5 defensible answers and an engine will happily give a range.
A constraint query has a binary gate. If a meal contains gluten, it does not qualify for a gluten-free query, full stop. There is no partial credit and no persuasion available. Either the engine can establish that your meals satisfy the constraint or you are excluded from the answer entirely.
Meal delivery is unusual in that most queries stack 2 or 3 constraints at once. Dietary pattern, a nutritional threshold, and a delivery area is a common triple, and satisfying all 3 requires 3 separate pieces of data that must be present, per meal, in a readable form.
There is a second-order effect. Because the constraints are binary, the brand that publishes the data wins by default rather than by quality, and can be a smaller or less well-known operator than the incumbents. This is one of the few categories where publishing beats brand strength reliably.
It is worth being concrete about how a stacked query fails. A buyer asking for dairy-free meals under 600 calories delivered to a named metro area is asking 3 questions of every meal on every menu. If a brand publishes calories but not allergens, it fails at step 2. If it publishes both but hides the delivery area behind a postcode form, it fails at step 3. Passing 2 of 3 gates produces exactly the same outcome as passing none, which is why partial data investment in this category returns almost nothing.
Our post on GEO for subscription box brands covers the recurring-revenue mechanics that sit alongside this.
Publishing Macros and Allergens as Data
The core fix is per-meal, per-serving data in HTML.
- Calories per serving, as a number, with the serving size defined.
- Protein, carbohydrate, fat, fibre, sodium and sugar in grams, per serving.
- The full ingredient list as text, in descending order.
- Allergen declarations covering all 9 major allergens recognised in US allergen labelling, including sesame, which became the ninth in 2023 and is still missing from a surprising number of published meal data sets.
- Cross-contact statements, stated honestly, since a facility that also processes peanuts is a fact a severely allergic buyer needs before anything else.
- Dietary tags applied consistently, with a published definition of what each tag means on your menu.
That last item is where most brands quietly fail. Keto on one menu means under 20 grams of net carbohydrate and on another means low-ish carbohydrate, and a buyer cannot tell which. Publishing your own definition, in numbers, converts a vague tag into a usable filter and makes your data more trustworthy than a competitor's identical label.
Nutrition rendered as an image is the single most common error here, and it is fatal in exactly the category where the data is the product.
There is a scale objection worth answering. A menu of 40 meals rotating weekly means a lot of data to maintain, and brands reasonably worry about the overhead. But the data already exists, because it is what feeds the filter widget and the packaging label. The work is not producing it, it is rendering it into the page template as text, which is a single template change rather than 40 pieces of content.
Certification Claims and What Each Requires
Some dietary terms are marketing words and some are defined claims with thresholds and certifying bodies behind them. Treating them as interchangeable is a real exposure.
- Gluten free is a defined claim. The FDA's rule requires less than 20 parts per million of gluten, and stating that threshold alongside the claim is both more accurate and more useful to a coeliac buyer than the phrase alone.
- Certified gluten free by a third-party programme is a stronger claim than a self-declared one, and the difference is worth stating explicitly.
- Kosher and halal certification comes from a named certifying authority, and naming it is the whole signal.
- Organic carries a regulated meaning and a percentage threshold, so partial organic content should be described precisely rather than implied.
- Keto, paleo, Whole30 and similar are not government-defined, which makes publishing your own numeric definition more important, not less.
- Diabetes-appropriate, kidney-friendly, low FODMAP and similar clinical framings should be reviewed by a credentialed professional and attributed, because they sit close to medical guidance.
For anything approaching medical dietary guidance, name a registered dietitian as the reviewer with credentials and a profile. Our guide to YMYL trust signals covers why that attribution carries weight.
Delivery Geography Is the Second Gate
Having passed the dietary filter, the buyer hits the second binary gate, and it is the same problem the perishable category has.
- Publish the delivery area as text: states or regions served, named individually, with exclusions named.
- Publish delivery days by region, since a brand delivering Tuesday and Friday in one zone and Wednesday only in another is running 2 different products.
- Publish the order cutoff with the timezone, and what happens to an order that misses it.
- State whether meals arrive fresh or frozen, because it changes the storage answer completely and buyers ask constantly.
- State the shelf life on arrival in days, refrigerated and frozen separately.
- State the minimum order and any threshold for free delivery, as real figures.
Write a worked example, as in perishable. An order placed Thursday at 3pm Eastern, after the 12pm cutoff, enters the following week's production and arrives 6 days later is the sentence that answers the question everyone has and nobody publishes.
The delivery-area page also deserves to be a page rather than a widget. A list of 34 states served, with the 16 that are not and why, is content that answers a query directly, can be cited, and takes an afternoon. A postcode lookup form answers the same question only for someone already on the site, which is the one group that did not need an AI answer.
Subscription Mechanics as Trust Content
Subscription anxiety is a documented pre-purchase blocker in this category, and the questions are asked before the first order rather than after.
- How to skip a week, in plain steps, and by when.
- How to pause, and for how long.
- How to cancel, stated plainly, with no requirement to call.
- The billing date relative to the delivery date, since the gap is where most complaints originate.
- Whether you can change plan size or meal count mid-cycle.
- What happens to an unmodified week, meaning whether a default box ships.
Publishing this clearly feels like inviting churn and does the opposite. The cancellation question is being asked by people deciding whether to start, and a plain answer is a conversion asset. It is also one of the most quoted passages an engine can find, because the alternative sources are complaint threads.
Comparison Against Grocery and Meal Kits
Three comparisons matter and the economics are genuinely arguable.
Against grocery, the honest axes are cost per serving including waste, time, and the calibration problem of cooking for 1 or 2 people. A meal at 11 dollars against ingredients at 6 dollars looks unfavourable until food waste and the 40 minutes are priced in, and showing that arithmetic openly is more persuasive than asserting convenience.
Against meal kits, the axis is effort and skill. A kit still requires 30 minutes and a working kitchen; a prepared meal requires 4 minutes and a microwave. Those are different products serving different weeks of the same person's life.
Against restaurant delivery, the axes are cost per meal, nutritional control and consistency, and this is often the comparison where prepared meals win most clearly. A 12 dollar prepared meal against a 26 dollar delivery order with fees and tip is a 14 dollar difference per meal, which compounds to real money across 5 weeknights, and the nutritional variance between the 2 is larger still.
Concede honestly in each. For someone who enjoys cooking and shops well, grocery is cheaper and better, and saying so makes the rest of the comparison credible. Our post on GEO for restaurants covers the adjacent category's mechanics.
Structuring Nutrition for Retrieval
Markup should mirror the visible data rather than replace it.
Use NutritionInformation with per-serving values for calories, protein, fat, carbohydrate, fibre and sodium, attached to the appropriate meal entity. Where a meal has genuine recipe structure, Recipe markup may be appropriate, and our guide to recipe schema covers that implementation.
Two rules keep this honest. The visible HTML must carry the same numbers, because markup supports interpretation while the rendered text is what gets extracted. And the serving basis must be stated, since a per-100-gram figure and a per-meal figure differ by a factor of 3 or more and buyers reading a protein number rarely check which they are looking at.
Our guide to merchant listing schema covers the commercial data layer that sits alongside.
Surviving Weekly Menu Rotation
A menu that changes every week breaks the usual model where a page accrues authority over years.
Three structural choices solve it.
Keep permanent pages for the things that do not rotate: dietary programmes, nutritional approach, delivery mechanics, and the constraint-led landing pages such as the high-protein or gluten-free explanation. These are where authority accumulates.
Give recurring meals stable URLs. A dish that returns every 6 weeks should return to the same page with its history intact, not to a new URL each time.
Do not delete rotated-out meals. Mark them as not currently on the menu, state when they typically return, and link to what is available now. A 404 discards accumulated signal and returns nothing useful to somebody who searched the dish by name.
The same logic applies to discontinued programmes. A plan that ran for 2 years and was retired should keep its page, say what replaced it, and redirect intent rather than traffic. Buyers who remember a programme by name are high-intent and currently land on nothing.
Common Mistakes
- Nutrition published only inside a filter widget. The data is the product and retrieval cannot see it.
- Nutrition facts as an image. Fatal in the one category where the numbers decide the purchase.
- Sesame missing from allergen data. It has been the ninth major allergen since 2023.
- Dietary tags with no published definition. Keto means 2 different things across 2 menus and buyers cannot tell.
- Gluten free without the threshold or certifier. A defined claim, treated as a marketing word.
- Delivery area shown only at checkout. The second binary gate, answered too late to matter.
- Cancellation terms hidden. The question is asked before signup, and silence sends it to complaint threads.
- Rotated meals deleted. Throws away accumulated authority every single week.
Implementation Sequence
- Publish per-meal nutrition as HTML text: calories, protein, carbohydrate, fat, fibre, sodium and sugar per defined serving.
- Publish full ingredient lists and all 9 major allergens per meal, plus honest cross-contact statements.
- Define every dietary tag numerically on a published page and apply the definitions consistently.
- State certification claims precisely, with thresholds and certifying bodies named.
- Publish the delivery map, delivery days by region, cutoff with timezone, and a worked ordering example.
- Publish skip, pause, cancel and billing mechanics in plain steps.
- Add
NutritionInformationmarkup mirroring the visible numbers, with the serving basis stated. - Build permanent constraint-led landing pages, give recurring meals stable URLs, and stop deleting rotated-out dishes.
Frequently Asked Questions
Why do smaller meal delivery brands sometimes win AI recommendations over large ones?
Because constraint queries are binary. If an engine cannot establish that a large brand's meals meet a gluten-free or calorie constraint, that brand is excluded regardless of size, and a smaller operator that published readable per-meal data qualifies by default.
Is a filter widget not enough if the data is technically on the site?
No. Data loaded and rendered by JavaScript inside a filter interface is generally not available to retrieval, which means the most commercially important information on the site contributes nothing. The same data needs to exist as HTML text on meal pages.
How specific should dietary tag definitions be?
Numeric. Publish that your keto meals are under a stated net carbohydrate figure and your high-protein meals are above a stated gram figure. A defined tag is a usable filter; an undefined one is a word that means something different on every competitor's menu.
Does publishing cancellation instructions increase churn?
It reduces friction at signup, which is where the question is actually being asked. The people reading cancellation terms most closely are prospects deciding whether to risk starting, and clarity converts them. Hiding the terms sends the answer to complaint threads instead.
What should happen to a meal that rotates off the menu?
Keep the page, mark it as not currently available, state when it typically returns, and link to current alternatives. Deleting it discards accumulated authority every week and returns a 404 to somebody searching the dish by name.
Key Takeaways
- -Constraint-led phrasing dominates, and each constraint is a filter an engine must be able to apply.
- -Macros and allergens belong in HTML and markup, not only inside a filter widget.
- -Gluten free and similar terms are defined claims with thresholds attached.
- -Delivery geography and cutoffs are the second gate and are usually unpublished.
- -Subscription mechanics are pre-purchase trust content, not fine print.
Ready to optimize for the AI era?
Get a free AEO audit and discover how your brand shows up in AI-powered search.
Get Your Free Audit
