What the live pages emit today
Every page on the existing Category Page type outputs the same single block: a CollectionPage whose only content is a two-item breadcrumb. Checked on 12 November on 11 chromatography pages, including the pages that are really product pages.
| Page | Type emitted | Breadcrumb in the markup |
|---|---|---|
/category/chromatography | CollectionPage | PerkinElmer › Chromatography Solutions: GC, LC & HPLC Systems |
/category/gas-chromatography | CollectionPage | PerkinElmer › Gas Chromatography |
/category/liquid-chromatography-mass-spectrometry-lc-ms | CollectionPage | PerkinElmer › QSight® 500 LC/MS/MS System |
/category/clarus-nova-gc (a product) | CollectionPage | PerkinElmer › Clarus Nova GC system |
/category/simplicitychrom-cds (a product) | CollectionPage | PerkinElmer › SimplicityChrom CDS Software |
What that means for the design:
- The breadcrumb is flat. It never shows the category level, so it does not match the new trail (Home › Chromatography › GC).
- Product pages are typed as collections. There is no
Productmarkup anywhere on www. - The page itself is not described. The block carries no name, description or image.
- Nothing site-wide exists. The home page has no structured data, and no page has Open Graph tags.
The new templates keep the one thing the live pattern gets right, a single JSON-LD block per page built from page data, and replace the rest.
Rules for both templates
These apply to every page on the new Category and Product types.
- One block per page. A single
<script type="application/ld+json">holding one@graph. The new types must not also output today'sCollectionPageblock. - In the page source. The block is in the HTML the server sends, not added by JavaScript after load.
- Every value comes from a field. Nothing is typed per page. The only fixed values are the ones listed below.
- Empty field, no property. If a field is empty, its property is left out. No empty strings and no placeholders. Software products have no part number, so they output no
skuormpn. - Plain text only. HTML tags are stripped, entities decoded and line breaks collapsed before a value is output.
- Canonical URLs. Every URL is absolute, https, on www, with no trailing slash and no query string, and is the page's canonical URL.
- Stable identifiers. Each object's
@idis the page URL plus a fixed suffix:#webpage,#breadcrumb,#listing,#product. - The breadcrumb comes from the same data as the visible trail. The names and order in the markup are the names and order the visitor sees. The last item, the current page, carries no
itemURL, as Google's breadcrumb guidance allows.
Fixed values
| Value | Used for |
|---|---|
PerkinElmer | brand.name on products |
Home, https://www.perkinelmer.com/ | First breadcrumb item |
en | inLanguage, taken from the page's language |
Category template
A category page outputs up to three objects: the page, its breadcrumb, and the list of instruments it shows.
| Object | Property | Comes from | Output when |
|---|---|---|---|
CollectionPage | url, @id | The page URL, generated from the Category field | Always |
name | Title | Always | |
description | Meta description | Always | |
image | Hero image | The page has a hero image | |
inLanguage | Page language | Always | |
breadcrumb | Points to the BreadcrumbList | Always | |
mainEntity | Points to the ItemList | The page has an instrument listing | |
BreadcrumbList | itemListElement | Category field: Home, then each level of the category tree, in order | Always |
each item's name | The name shown in the visible trail | Always | |
each item's item | That level's category page URL | Every item except the last | |
ItemList | itemListElement | The products the Instrument listing section shows for this category | The page has an instrument listing |
each item's name, url | The product's Title and URL | Per product | |
numberOfItems | Count of those products | With the list |
- All products, not the first screen. The list holds every product the listing can show for the category, in its default A to Z order. Filters and paging do not change it.
- Entry pages output no list. Chromatography Software and Chromatography Consumables have no instrument listing, so they output the page and the breadcrumb only.
- Stat points, hero button, consumables link and page sections are not marked up. They have no matching schema property that search engines use.
Sample for Gas Chromatography. The image URL is illustrative; the other values are the Batch 1 values in the IA sheet.
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "CollectionPage",
"@id": "https://www.perkinelmer.com/category/chromatography/gc#webpage",
"url": "https://www.perkinelmer.com/category/chromatography/gc",
"name": "Gas Chromatography (GC)",
"description": "PerkinElmer gas chromatography systems for volatile and semi-volatile compounds: Clarus Nova, Clarus 690 and Arnel analyzers for labs worldwide.",
"image": "https://www.perkinelmer.com/sites/default/files/example/gc-hero.jpg",
"inLanguage": "en",
"breadcrumb": { "@id": "https://www.perkinelmer.com/category/chromatography/gc#breadcrumb" },
"mainEntity": { "@id": "https://www.perkinelmer.com/category/chromatography/gc#listing" }
},
{
"@type": "BreadcrumbList",
"@id": "https://www.perkinelmer.com/category/chromatography/gc#breadcrumb",
"itemListElement": [
{ "@type": "ListItem", "position": 1, "name": "Home", "item": "https://www.perkinelmer.com/" },
{ "@type": "ListItem", "position": 2, "name": "Chromatography", "item": "https://www.perkinelmer.com/category/chromatography" },
{ "@type": "ListItem", "position": 3, "name": "GC" }
]
},
{
"@type": "ItemList",
"@id": "https://www.perkinelmer.com/category/chromatography/gc#listing",
"numberOfItems": 4,
"itemListElement": [
{ "@type": "ListItem", "position": 1, "name": "Arnel petrochemical analyzers", "url": "https://www.perkinelmer.com/product/arnel-petrochemical-analyzers" },
{ "@type": "ListItem", "position": 2, "name": "Clarus 690 GC", "url": "https://www.perkinelmer.com/product/clarus-690" },
{ "@type": "ListItem", "position": 3, "name": "Clarus Nova GC", "url": "https://www.perkinelmer.com/product/clarus-nova" },
{ "@type": "ListItem", "position": 4, "name": "GC 2400 System", "url": "https://www.perkinelmer.com/product/gc-2400" }
]
}
]
}
Product template
A product page outputs three objects: the page, its breadcrumb, and the product. Instruments and software use the same design; software simply has fewer fields filled.
| Object | Property | Comes from | Output when |
|---|---|---|---|
ItemPage | url, @id | The page URL, /product/{name} | Always |
name | Title | Always | |
description | Meta description | Always | |
inLanguage | Page language | Always | |
breadcrumb | Points to the BreadcrumbList | Always | |
mainEntity | Points to the Product | Always | |
BreadcrumbList | itemListElement | Main category: Home, each level of that category's tree, then the product | Always |
each item's name | The name shown in the visible trail | Always | |
each item's item | That level's category page URL | Every item except the last | |
Product | name | Title | Always |
description | Short description | Always | |
image | Images: every image, as a list of URLs | Always | |
sku, mpn | Part number, the same value in both | The product has a part number | |
brand | Fixed: a Brand named PerkinElmer | Always | |
category | Main category, written as its path, e.g. Chromatography > GC | Always | |
additionalProperty | Specifications: one PropertyValue per row, label as name, value as value | The product has specifications | |
url | The page URL | Always |
What is left out, and why
- No price or offer. Product pages carry no price; buying goes through Request a Quote. Markup must describe what is on the page, so there is no
offers. - No ratings or reviews. The pages have none, and they must not be invented.
- Also listed in, Applications, Resources, hero button, consumables link and page sections are not marked up. Applications could be added later as
additionalPropertyrows if PerkinElmer wants them exposed.
Sample for GC 2400 System. The short description, image URLs and specification row are illustrative, because they are read from the shop. The other values are the Batch 1 values in the IA sheet.
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "ItemPage",
"@id": "https://www.perkinelmer.com/product/gc-2400#webpage",
"url": "https://www.perkinelmer.com/product/gc-2400",
"name": "GC 2400 System",
"description": "PerkinElmer GC 2400 System: smart, simplified, sustainable gas chromatography with a detachable touchscreen for industrial, environmental and pharma labs.",
"inLanguage": "en",
"breadcrumb": { "@id": "https://www.perkinelmer.com/product/gc-2400#breadcrumb" },
"mainEntity": { "@id": "https://www.perkinelmer.com/product/gc-2400#product" }
},
{
"@type": "BreadcrumbList",
"@id": "https://www.perkinelmer.com/product/gc-2400#breadcrumb",
"itemListElement": [
{ "@type": "ListItem", "position": 1, "name": "Home", "item": "https://www.perkinelmer.com/" },
{ "@type": "ListItem", "position": 2, "name": "Chromatography", "item": "https://www.perkinelmer.com/category/chromatography" },
{ "@type": "ListItem", "position": 3, "name": "GC", "item": "https://www.perkinelmer.com/category/chromatography/gc" },
{ "@type": "ListItem", "position": 4, "name": "GC 2400" }
]
},
{
"@type": "Product",
"@id": "https://www.perkinelmer.com/product/gc-2400#product",
"url": "https://www.perkinelmer.com/product/gc-2400",
"name": "GC 2400 System",
"description": "Example short description, as read from the shop for this product.",
"image": [
"https://www.perkinelmer.com/sites/default/files/example/gc-2400-1.jpg",
"https://www.perkinelmer.com/sites/default/files/example/gc-2400-2.jpg"
],
"sku": "N6400000",
"mpn": "N6400000",
"brand": { "@type": "Brand", "name": "PerkinElmer" },
"category": "Chromatography > GC",
"additionalProperty": [
{ "@type": "PropertyValue", "name": "Technology Type", "value": "GC" }
]
}
]
}
Validation
The markup is checked on UAT before PerkinElmer's QA, on four pages that between them cover every case: one category page with a listing, one entry page, one instrument and one software product.
| Check | How | Pass when |
|---|---|---|
| One block, in the source | View the page source with JavaScript off | Exactly one JSON-LD block, and no old CollectionPage-only block |
| Valid schema | Paste the block into the Schema.org validator | No errors and no warnings |
| Values match the fields | Compare each property with the page's fields, using the tables above | Every value matches; no hand-typed values |
| Empty fields | Software product, entry page, a page with no hero image | No sku, mpn or additionalProperty; no ItemList; no image |
| Breadcrumb | Compare the markup with the visible trail | Same names, same order; last item has no URL |
| Google's view | Paste the block into the Rich Results Test | Breadcrumbs detected and valid |
UAT is not public, so both tools are used in paste-code mode. After go-live the same checks are repeated on the live URLs, and the Breadcrumbs report in Search Console is watched for the new pages.
Results on the samples in this document, 12 November
The design itself was run through both tools before build, using the two samples above plus two variants: a software product and an entry page.
| Sample | Schema.org validator | Google Rich Results Test |
|---|---|---|
| Category page with listing Gas Chromatography | 0 errors, 0 warnings | Breadcrumbs valid |
| Instrument GC 2400 System | 0 errors, 0 warnings | Breadcrumbs valid Product snippets invalid |
| Software product SimplicityChrom CDS | 0 errors, 0 warnings | Not run |
| Entry page Chromatography Software | 0 errors, 0 warnings | Not run |
These results cover the design. The built pages still need the checks in the first table, because they test the wiring to the fields.
What to expect from Google's tools on product pages
Google shows a product rich result only when the markup has a price, a review or a rating, and these pages have none (Google's product snippet rules). The Rich Results Test confirms it on the GC 2400 sample: the product item is reported invalid with one critical issue, "Either offers, review, or aggregateRating should be specified".
Expect the Product snippets report in Search Console to list the product pages the same way after go-live. That is the known result of this design and not a build defect.
What the markup delivers
The breadcrumb trail in Google's desktop results, and product facts (name, part number, brand, category, specifications) that search engines and AI systems can read without parsing the page.
It does not deliver price or star snippets. A product list is not one of the list types Google shows as a carousel, so the ItemList produces no visible feature either.
Points to confirm
For Kalai, before PERK-31 and PERK-32 build from this.
- Breadcrumb names. The IA sheet uses short names (Home › Chromatography › GC › GC 2400). The Build Standard says the Title feeds the last item, and its example uses long names (Gas Chromatography › GC 2400 System). The markup follows whatever the visible trail shows, so this needs settling once, in PERK-27. The samples above use the IA sheet's names.
- A crumb with no page. Software has no page yet, so the IA sheet shows it as plain text. Google needs a URL on every item except the last, so the recommendation is to leave that crumb out of the markup and keep it in the visible trail.
- The full instrument list. The
ItemListneeds every product for the category, whatever the paging and filters show. If that is costly to build, drop theItemList; nothing Google shows depends on it. - Product markup with no price. Google's tools will flag it, as described under Validation. The recommendation is to keep it and tell PerkinElmer in advance, so a Search Console notice is not read as a fault.
- Where today's block comes from. The current
CollectionPageblock must not appear on the new types. Pages staying on the old type, such as Mass Spectrometry and Hyphenated Technology, keep it unchanged.
Outside the two templates
Not part of PERK-16; noted so they are not lost.
- FAQ markup is left out. Google retired FAQ rich results in May 2026, so
FAQPagemarkup would show nothing in Google. It can be added later from the FAQ section if PerkinElmer wants it for other search engines. - Organization and WebSite markup. The home page has none. It belongs site-wide, once, and would let the product
brandpoint to a single PerkinElmer entity. - Open Graph tags. No page has them today. The Build Standard already says the meta title and description feed social sharing, so the templates should output
og:title,og:descriptionandog:imagefrom those fields and the hero or first product image.