How to Check a Cosmetic Ingredient List Against EU Rules, Step by Step
A step-by-step method to check ingredients in cosmetics against EU law: read the label correctly, match each INCI name, then read what the record covers.
An ingredient list on a cosmetic label is a short, dense piece of regulated text. Checking it properly means two separate jobs: reading the label the way Regulation (EC) No 1223/2009 requires it to be written, and then matching each name against the EU inventory and Annexes II to VI. Most people who search for an ingredient checker do only the second job. This is a walk-through of both, in order, using one realistic ingredient list and the records behind it.
Step 1: read the label the way the law requires it to be written
Article 19(1) of Regulation (EC) No 1223/2009 - point (g) and the paragraphs that follow it - sets the rules for the list of ingredients, and those rules change what a name on the label means before you look anything up.
- The list is in descending order of weight at the time each ingredient was added to the product. Ingredients present below 1% may appear in any order after the ones above 1% — so position in the list is only a reliable concentration signal down to the 1% mark, not below it.
- ‘An ingredient means any substance or mixture intentionally used in the cosmetic product during the process of manufacturing.’ Impurities in raw materials and subsidiary technical materials used in the mixture but not present in the final product are explicitly excluded from that definition — they are not meant to appear on the label at all.
- Perfume and aromatic compositions and their raw materials are declared as ‘parfum’ or ‘aroma’, not broken out into individual materials — except that substances whose declaration Annex III requires in its ‘Other’ column must still be named in addition to parfum or aroma. Regulation (EU) 2023/1545 extended this to a list of named fragrance allergens with their own labelling thresholds.
- Colorants other than hair colorants may be listed in any order after the other ingredients, and the CI (Colour Index) nomenclature is used where applicable. For decorative products marketed in several shades from one formulation range, all the colorants used across the range may be listed together if the words ‘may contain’ or the symbol ‘+/-’ are added — a single ingredient list then covers several finished shades, and it does not tell you which shade contains which colorant.
- Ingredients present as nanomaterials must be clearly indicated, with the name followed by ‘(nano)’ in brackets. A name without that suffix is not proof the material is conventional-scale; it may simply not qualify as a nanomaterial under the regulation's definition, or the product may predate correct labelling.
Only once the list has been read this way — order, parfum/aroma, +/- ranges, (nano) tags — does it make sense to start matching individual names against a database.
Step 2: normalise each name before you search
Article 19(6) requires the common ingredient name from the INCI glossary referred to in Article 33, and failing that a term from a generally accepted nomenclature. In practice labels still carry variant capitalisation, trade names, plural or singular forms, and CI numbers written with or without spaces. Searching an ingredient checker such as cosingchecker.com/checker/ or the site's own search handles most spelling and casing variants and searches by INCI name, CAS number, function or CI number in one pass, which is faster than guessing which exact string the source database uses.
Step 3: match each name to the inventory and to Annexes II–VI
Every INCI name normalises to one identity record (CosIng holds 28,712 as of this check) that carries CAS and EC numbers and function categories, but on its own it does not say whether the substance is prohibited, restricted, or unregulated — that comes from Annex II (prohibited), III (restricted), IV (colorants), V (preservatives) or VI (UV filters). A worked list, built from real INCI names, shows the range of outcomes.
| INCI name on label | What the record says |
|---|---|
| Aqua, Glycerin | Identity records only — CosIng carries CAS 7732-18-5 and 56-81-5 with no Annex II–VI restriction attached. No annex entry is not the same as an official safety clearance; it means the site's data holds no restriction, positive-list entry or prohibition for that name. |
| Cetearyl Alcohol | Identity record only, again with no annex entry: a mixture of C16–18 fatty alcohols with no EU concentration cap. |
| Phenoxyethanol | Annex V, entry 29 — preservative, maximum concentration 1.0% in the finished product, no restriction by product type or age group recorded. |
| Benzyl Alcohol | Two separate entries: Annex III/45 requires it to be declared in the ingredient list once its concentration (as parfum ingredient or solvent) exceeds 0.001% in leave-on or 0.01% in rinse-off products, under Regulation (EU) 2023/1545; Annex V/34 separately caps it at 1.0% when used as a preservative. The same name can carry more than one condition depending on which function it performs. |
| Sodium Benzoate | Annex V, entry 1 (together with Benzoic Acid), with concentration limits by product type: 2.5% (as acid) in rinse-off products other than oral care, 1.7% in oral care, 0.5% in leave-on products. |
| Limonene | Annex III, entry 88, under Regulation (EU) 2023/1545: a peroxide-value purity condition applies, and the ingredient-list declaration threshold is the same 0.001%/0.01% split as Benzyl Alcohol. Regulation (EU) 2023/1545 folded the former separate limonene entries (167 and 168) into this one, so entry 88 now covers all its isomers. |
| Titanium Dioxide / CI 77891 | Three separate uses, three separate entries: Annex IV/143 as a colorant (purity criteria only, no percentage cap); Annex VI/27 as a UV filter, capped at 25% in the finished product, combined with any nano form of the same substance; Annex VI/27a for the nano form specifically, which adds particle-size, coating and photostability conditions and a lung-exposure warning. The plain name and the (nano) name are two different entries with different conditions. |
| Parfum | Not an Annex entry itself. Article 19(1)(g) defines it as the umbrella term for perfume and aromatic compositions; any named allergen behind it is governed separately (see Regulation (EU) 2023/1545). |
This is the pattern worth generalising: one INCI name can map to zero, one, or several Annex entries, and each entry carries its own product-type scope, maximum concentration, other restrictions and mandatory wording — they do not merge into one verdict for the ingredient as a whole. Reading only the top-line restriction column and stopping there is how conditions get missed.
Step 4: read the conditions, not just the entry
An Annex III, IV, V or VI record is only useful once its columns are read individually:
- Product type: many entries apply only to certain product categories (for example, Titanium Dioxide's Annex III/321 entry separates face powders, hair aerosol sprays and other products with different maximum concentrations for each).
- Maximum concentration in the finished product: read the units and the basis — Sodium Benzoate's limit is expressed as acid, not as the salt on the label.
- Other restrictions: purity criteria, particle-size or coating specifications for nanomaterials, or a condition that a use is 'for purposes other than' a stated function.
- Warnings and mandatory wording: some entries require specific text on the pack, separate from the ingredient list itself.
Site-wide, of the 2,353 Annex II–VI entries currently published, 358 carry a recorded maximum concentration and 236 carry a recorded warning — concentrated mostly in Annexes III, IV, V and VI, since Annex II is a prohibition list and generally does not need either field. A formula-compare tool such as cosingchecker.com/formula-compare/ is useful once several products' lists need checking side by side against the same Annex fields, and cosingchecker.com/concentration-calculator/ helps convert a formulation percentage into the same basis the Annex entry uses (for example, acid rather than salt) before comparing it to the stated cap. cosingchecker.com/annex/ is the place to browse an Annex's entries directly rather than search one name at a time.
What an ingredient list cannot tell you
A checked, well-matched ingredient list still leaves real gaps, because Article 19(1)(g) was never designed to disclose all of the following:
- Exact concentrations. Order above 1% only ranks ingredients relative to each other; it gives no percentage, and below 1% even the order is unconstrained.
- Nano status where it is not labelled. The '(nano)' tag is mandatory once a material meets the regulation's nanomaterial definition, but a name without the tag is not evidence the material is conventional scale — it may reflect the manufacturer's own classification or a labelling error, not a laboratory finding.
- Impurities and technical processing aids. These are excluded from the legal definition of 'ingredient' in Article 19(1)(g) and are not required to appear on the label at all, however toxicologically relevant a specific impurity limit might be under an Annex entry's purity criteria.
- Fragrance components below the allergen labelling thresholds. Regulation (EU) 2023/1545 requires named allergens to be declared only above set thresholds (generally 0.001% leave-on / 0.01% rinse-off for the substances concerned); anything under that stays inside 'parfum' or 'aroma' and is invisible on the label.
- Whether the underlying safety assessment is sound. An Annex entry or an SCCS opinion referenced against it is a record of what was decided and cited, not a re-run of the toxicology. The list tells you a substance is permitted under stated conditions; it does not certify that the conditions were assessed correctly for a specific new formulation.
That is also the limit of what any ingredient checker, including this one, is built to do. A record on cosingchecker.com is identity and Annex evidence pulled from the sources cited on each entry — it is not a safe/unsafe verdict, and the absence of a rule for a given name means the site holds no rule for it, not that the substance is confirmed permitted. For a finished-product compliance decision, the ingredient list is the starting point for verification against the official Annex text and, where a condition is unclear, the underlying SCCS opinion — not the end of it.
A short checklist
- Confirm the list order, the parfum/aroma terms, any +/- colorant range, and the (nano) tags before reading further.
- Normalise each name to its INCI form and search it (cosingchecker.com/checker/ or the site search) rather than assuming one spelling matches the database.
- Check whether the name has zero, one or several Annex II–VI entries, and read each one's product type, maximum concentration, other restrictions and warnings separately.
- Remember what the list structurally cannot show: exact percentages, unlabelled nano status, impurities, sub-threshold allergens, and the soundness of the safety case behind an entry.
- Treat every result as evidence to verify against the official Annex text, not as a final compliance decision.
Sources
- Regulation (EC) No 1223/2009, Article 19 (Labelling), legislation.gov.uk mirror (UK retained law; Article 19 still matches the EU text, but later EU-only amendments such as 2023/1545 are not reflected there) — https://www.legislation.gov.uk/eur/2009/1223/article/19
- Regulation (EU) 2023/1545 amending Annexes II and III as regards fragrance allergens — https://eur-lex.europa.eu/eli/reg/2023/1545/oj
- CosIng Checker — stats endpoint (counts used in this article) — https://cosingchecker.com/api/v1/stats/
- CosIng Checker — Annex V, entry 29, Phenoxyethanol — https://cosingchecker.com/annex/v/v-29-phenoxyethanol/
- CosIng Checker — Annex III, entry 45, and Annex V, entry 34, Benzyl Alcohol — https://cosingchecker.com/annex/iii/iii-45-benzyl-alcohol/ and https://cosingchecker.com/annex/v/v-34-benzyl-alcohol/
- CosIng Checker — Annex V, entry 1, Benzoic Acid / Sodium Benzoate — https://cosingchecker.com/api/v1/entries/?cas=532-32-1
- CosIng Checker — Annex III, entry 88, Limonene — https://cosingchecker.com/api/v1/entries/?cas=5989-54-8
- CosIng Checker — Annex IV/143, Annex VI/27 and Annex VI/27a, Titanium Dioxide — https://cosingchecker.com/annex/iv/iv-143-titanium-dioxideci-77891/ , https://cosingchecker.com/annex/vi/vi-27-titanium-dioxide/ and https://cosingchecker.com/annex/vi/vi-27a-titanium-dioxide-nano/
- CosIng Checker — ingredient identity records for Aqua and Glycerin (no Annex entry) — https://cosingchecker.com/ingredients/31959-aqua/ and https://cosingchecker.com/ingredients/34040-glycerin/
- CosIng Checker tools — checker, formula compare, concentration calculator, Annex browser — https://cosingchecker.com/checker/ , https://cosingchecker.com/formula-compare/ , https://cosingchecker.com/concentration-calculator/ , https://cosingchecker.com/annex/
About this article
This article is part of the CosIng Checker blog, where we publish guides, notes and practical explainers about EU cosmetic ingredients, Annex II–VI restrictions, warnings, preservatives, UV filters, colorants and related compliance topics.