Overhead view of flour, shelled walnuts, eggs and cinnamon sticks on baking paper
Photo: Ksenia Chernaya on Pexels

The Nine Major Food Allergens and How to Declare Them

Jennifer Trippett

Last updated on

Federal law names nine major food allergens: milk, egg, fish, crustacean shellfish, tree nuts, wheat, peanuts, soybeans and sesame. If any of them is in your product, including inside a flavoring or a spice blend, the label has to name it. You can name it in a "Contains" line printed right after the ingredient list, or in parentheses inside the list, as in "whey (milk)". For most products the law accepts either one. A Contains line is required only when the allergen has no place in the ingredient list, such as flour dusted on a pan. A Contains line is the clearer choice for shoppers, because they can check one short line instead of reading the whole list.

Find your situation:

  • Deciding between a Contains line and parentheses, or wondering whether you need both: read more
  • Using a flavoring, spice blend or oil that might carry an allergen: read more
  • Using nuts, fish or shellfish, or goat milk or duck eggs: read more
  • Using coconut, or calling a product a tree-nut product: read more
  • Using tahini, sesame seeds or anything else with sesame: read more
  • Sharing equipment with allergens you don't put in the product: read more

Which foods count as major allergens?

The nine are defined in the federal Food, Drug, and Cosmetic Act. The definition also covers any ingredient that contains protein from one of the nine, so whey, casein, egg white powder and soy lecithin all count. Highly refined oils made from them are exempt.

Do I need a Contains statement if allergens are in the ingredient list?

Usually not. Federal law lets you use either form on its own, or both. The allergen labeling section of the Act requires that each allergen be declared one way "or" the other, and FDA's allergen labeling guidance (the fifth edition, January 2025) says the food source "must be declared either in the ingredient list or in a 'Contains' statement." FDA's consumer page on food allergies puts it the same way: the allergen has to appear at least once, in one of the two forms.

There are two cases where a Contains line is the only way to comply, because the allergen has no place in the ingredient list. One is an allergen that is used in processing but not listed as an ingredient, like wheat flour dusted on a pan or a conveyor belt. The other is the individually wrapped pieces inside a multipack, which don't carry their own ingredient list; each printed wrapper needs a Contains line if the food has an allergen (a plain, unprinted inner sleeve needs nothing).

The two forms:

  1. A Contains line: the word "Contains" followed by the food source of each allergen, printed immediately after or next to the ingredient list, in type no smaller than the ingredient list. "Contains: wheat, milk, soy."
  2. Parentheses in the ingredient list: the ingredient's usual name followed by its food source, as in "whey (milk)", "lecithin (soy)", "semolina (wheat)".

The parentheses method has two shortcuts. You can leave them off when the ingredient's name already says the source ("milk", "wheat flour", "peanuts"), and when the source already appears elsewhere in the same ingredient list. That second shortcut has a catch: the word doesn't count if it is only part of the name of an ingredient that isn't itself a major allergen. Highly refined soybean oil is exempt from allergen labeling, so "soybean oil" in your list doesn't declare soy for the lecithin; you still need "lecithin (soy)" or soy in a Contains line. Butter is where people slip. "Butter" does not contain the word milk, so you need "butter (milk)" in the list, or milk in a Contains line.

If you print a Contains line, it has to list every major allergen in the product, including the ones already obvious from the ingredient list. FDA's guidance says a Contains line that names only the allergens missing from the ingredient list is not acceptable. A partial Contains line is an easy mistake when a recipe changes and only one line of the label gets updated.

For most products the law doesn't require it, but we recommend a Contains line anyway. A shopper with a peanut allergy can check one line instead of reading a long ingredient list for "(peanut)". FDA accepts both forms equally; this is our recommendation, for your customers' sake. You can also use both, as in this example for a pecan chocolate chip cookie:

Ingredients: Enriched wheat flour (wheat flour, niacin, reduced iron, thiamine mononitrate, riboflavin, folic acid), butter (cream, salt), brown sugar, semisweet chocolate chips (sugar, chocolate liquor, cocoa butter, soy lecithin, vanilla extract), eggs, pecans, baking soda, salt.

Contains: Wheat, milk, soy, egg, pecans.

Here the ingredient list alone wouldn't be enough, because "butter (cream, salt)" never says milk. The Contains line covers it.

Which hidden ingredients still need an allergen declaration?

  • Flavorings, colorings and incidental additives are not exempt. If your natural flavor carries milk protein, it gets declared. Ask the flavor supplier in writing. Incidental additives are things used in processing that don't have to be in the ingredient list, like flour dusted on a pan; since they aren't in the list, their allergen goes in a Contains line.
  • Sesame in a spice blend must be named, either "Contains sesame" or "spices (sesame)".
  • A highly refined oil is exempt from the allergen declaration, but FDA's rules for naming ingredients still require it to be named by source in the ingredient list, as "soybean oil". Ask your supplier whether the oil is highly refined.
  • The Contains line is reserved for the nine. Don't add mustard, coconut or gluten to it, even if your customers ask about them. You can make a separate, truthful statement about other allergens.

Name the specific nut, fish or shellfish

For tree nuts, fish and crustacean shellfish, the law requires the specific type, not the group. FDA's guidance says a label cannot declare "tree nuts," "fish," or "Crustacean shellfish" as the allergen. "Contains: tree nuts" is wrong. "Contains: almonds, cashews" is right.

For fish and crustaceans, use the market name or common name from FDA's Seafood List in the ingredient list. In the Contains line you may use the general name, such as "salmon" for chum salmon. Ingredients made from other ingredients, called compound ingredients, count too. If the Worcestershire sauce in your marinade lists anchovies, the marinade label needs "anchovy" declared.

Molluscan shellfish (oysters, clams, mussels, scallops) are not major food allergens; only crustaceans are. They still go in the ingredient list by name like any ingredient.

The January 2025 guidance also widened two definitions. "Milk" used to mean cow's milk; FDA now reads it as milk from domesticated cows, goats, sheep or other ruminants. "Eggs" used to mean chicken eggs; it now covers ducks, geese, quail and other fowl. If your product uses goat milk or duck eggs, FDA recommends naming the animal: "Contains goat milk" or "ovalbumin (duck egg)".

Is coconut still a tree nut allergen?

No. On January 6, 2025, FDA narrowed the list of tree nuts it treats as major allergens. The guidance now lists twelve:

Tree nuts FDA considers major food allergens
Almond
Black walnut
Brazil nut
California walnut
Cashew
Filbert/hazelnut
Heartnut/Japanese walnut
Macadamia nut/bush nut
Pecan
Pine nut/pinon nut
Pistachio
Walnut (English, Persian)

Coconut is off the list. So are beech nut, butternut, chestnut, chinquapin, cola/kola nut, ginkgo nut, hickory nut, palm nut, pili nut, shea nut and lichee nut, according to FDA's allergen labeling FAQ.

If your Contains line says "coconut," FDA's position is that it should not be there. Coconut still goes in the ingredient list by its common name. The FAQ says labels can be corrected the next time they are printed, or covered with a sticker. If you make macaroons or coconut granola and have been calling them tree-nut products, your allergen paperwork and any "made in a facility with tree nuts" language may need a second look.

Sesame has been a major allergen since 2023

The FASTER Act added sesame, and as of January 1, 2023, sesame must be labeled as an allergen on packaged foods. If your labels were designed before 2023 and you use tahini, sesame seeds or a seasoning blend with sesame in it, check them.

When sesame became a major allergen, some manufacturers who ran sesame on shared lines faced a choice. They could clean and validate their lines well enough to keep sesame out of sesame-free products, or they could add a small amount of sesame on purpose and declare it. Some chose the second.

In a July 2023 FDA Voices piece, then-Commissioner Robert Califf wrote that some manufacturers "are intentionally adding sesame to products that previously did not contain sesame." He noted that this keeps them within the labeling law, and said FDA does not support the practice because it removes safe choices for people allergic to sesame.

If sesame is in the recipe, declare it. If sesame is not in the recipe but shares your oven, mixer or sheet pans with something that has it, you have a cross-contact question, covered next. Adding sesame to avoid that question is legal, and it is the outcome FDA said it does not support.

When can you print "may contain"?

FDA's food safety rules for manufacturers define allergen cross-contact as "the unintentional incorporation of a food allergen into a food." It happens through shared equipment, rework (leftover product folded into a later batch), production order, or flour dust drifting across the kitchen.

The allergen labeling law covers allergens you put in the food on purpose. It does not apply to allergens present only through cross-contact. Those same food safety rules still require you to protect food against it.

Statements such as "may contain tree nuts" or "made on shared equipment with peanuts" are voluntary. No regulation defines them. FDA's guidance sets three limits:

  • A "may contain" line does not replace good manufacturing practices or allergen controls, and it must be truthful and not misleading.
  • Don't put "may contain milk" on a product that lists milk as an ingredient. It implies the milk is unintended.
  • Don't pair an allergen-free claim with a "may contain" for the same allergen. A "milk-free" claim means FDA expects no milk at all, including from cross-contact.

A "may contain" line is honest when you have done what you reasonably can (separate scheduling, cleaning between runs, dedicated utensils) and a real chance of carry-over remains. Printed on every product regardless of what actually happens in your kitchen, it can fail the truthful-and-not-misleading test.

If you sell under a state cottage food law, your state may have its own allergen labeling rules on top of these. Check with the agency that runs the program.

How do I keep allergen information current?

The source of truth for allergens is your supplier's specification sheet and the label on each ingredient you receive. Read both when you add an ingredient, again when you switch suppliers, and when a supplier tells you a formula changed. If you keep several versions of a recipe, check the allergens on each one; managing recipe versions covers how to keep them apart.

KitchenSync is nutrition label and recipe costing software for small food businesses. Its allergen detection flags likely allergens on each ingredient in a recipe and drafts a Contains line you can copy, which gives you a second pass to compare against your spec sheets. Run it on the recipe you label next.

This is general information about federal labeling rules, not legal advice. State rules, and the details of your own products and kitchen, can change the answer. For anything you're unsure of, ask your state agriculture or health department.

Sources

Check allergens before you print

KitchenSync is built for small bakeries and snack makers who write their own labels. It flags the major allergens in each recipe so you can check every product before it ships.

Sign Up Free →

Need more recipes? See KitchenSync plans and pricing