How to use Nonli HTML meta tags

Also available in:Français

Nonli HTML meta tags let a publisher override or enrich the information collected from an article page. This reference lists every nli:* tag supported by the organic scraper, the exact HTML attribute it accepts, and what happens when the tag is absent.

Use the attribute shown in the table. Support is intentionally not uniform: most Open Graph and article overrides accept only property, nli:tag accepts only name, and newer generic fields accept both.

1. Quick start#

Place the tags in the page's <head>. Use non-empty values, explicit time zones, and absolute public HTTPS URLs for media.

html
1<meta property="nli:title" content="City council approves the 2027 budget">
2<meta property="nli:description" content="The council approved the budget after a three-hour debate.">
3<meta property="nli:type" content="article">
4<meta name="nli:url" content="https://news.example.com/politics/city-budget-2027">
5
6<meta property="nli:image" content="https://media.example.com/city-budget-wide.jpg">
7<meta property="nli:image:alt" content="Councillors voting in the city chamber">
8
9<meta property="nli:author" content="Alex Morgan">
10<meta property="nli:published_time" content="2026-08-25T09:30:00+02:00">
11<meta property="nli:modified_time" content="2026-08-25T10:15:00+02:00">
12<meta property="nli:section" content="Politics">
13<meta name="nli:tag" content="city council">
14<meta name="nli:tag" content="budget">
15
16<meta name="nli:video" content="https://media.example.com/city-budget-16x9.mp4">

2. Complete field inventory#

“First match” means that only one value is retained; do not emit the same semantic field with both name and property. “No fallback” means the destination remains empty when the tag is absent.

TagAccepted attributeCardinalityValue formatMapped meaningPrecedence or merge behaviorFallback when absentAvailability
nli:titlepropertyScalarNon-empty plain textOpen Graph titleReplaces configured and og:title valuesConfigured title XPath, then og:titleAvailable
nli:descriptionpropertyScalarNon-empty plain textOpen Graph descriptionReplaces configured and og:description valuesConfigured description XPath, then og:descriptionAvailable
nli:imagepropertyRepeatableAbsolute public HTTPS image URLMain Open Graph image collectionThe complete nli:image list replaces ordinary article imagesConfigured image XPath, then og:image, og:image:url, then og:image:secure_urlAvailable
nli:image:altpropertyScalarNon-empty plain textMain image alternative textReplaces og:image:altog:image:altAvailable
nli:typepropertyScalarOpen Graph object type, for example articleOpen Graph content typeReplaces og:typeog:typeAvailable
nli:urlname or propertyScalar, first matchAbsolute canonical HTTPS URLOrganic canonical URLTakes priority over the canonical link<link rel="canonical">Available
nli:content_tierpropertyScalarPublisher-defined tier text, for example free or premiumArticle content tierReplaces the corresponding article:* valuearticle:content_tier using property, then nameAvailable
nli:locationpropertyRepeatableNon-empty place name or identifierArticle location collectionThe nli:location list replaces the corresponding article:* listarticle:location using property, then nameAvailable
nli:opinionpropertyScalarPublisher-defined opinion markerArticle opinion valueReplaces the corresponding article:* valuearticle:opinion using property, then nameAvailable
nli:authorpropertyRepeatableAuthor name or absolute profile URLArticle author collectionThe nli:author list replaces the corresponding article:* listarticle:author using property, then nameAvailable
nli:published_timepropertyScalarISO 8601 date-time with time zoneArticle publication timeReplaces configured and ordinary article datesConfigured date XPath, then article:published_time, then og:article:published_timeAvailable
nli:modified_timepropertyScalarISO 8601 date-time with time zoneArticle update timeReplaces the corresponding article:* valuearticle:modified_time using property, then nameAvailable
nli:sectionpropertyScalarNon-empty section nameArticle sectionReplaces the corresponding article:* valuearticle:section using property, then nameAvailable
nli:tagnameRepeatableOne tag per elementCleaned article tag collectionMerged with article:tag and configured XPath tags; it does not replace themOther tag sources remain availableAvailable
nli:image1name or propertyScalar, first matchAbsolute public HTTPS image URLCustom organic image slot 1Independent from the main image collectionNo fallbackAvailable
nli:image2name or propertyScalar, first matchAbsolute public HTTPS image URLCustom organic image slot 2Independent from the main image collectionNo fallbackAvailable
nli:image3name or propertyScalar, first matchAbsolute public HTTPS image URLCustom organic image slot 3Independent from the main image collectionNo fallbackAvailable
nli:image4name or propertyScalar, first matchAbsolute public HTTPS image URLCustom organic image slot 4Independent from the main image collectionNo fallbackAvailable
nli:image5name or propertyScalar, first matchAbsolute public HTTPS image URLCustom organic image slot 5Independent from the main image collectionNo fallbackAvailable
nli:image6name or propertyScalar, first matchAbsolute public HTTPS image URLCustom organic image slot 6Independent from the main image collectionNo fallbackAvailable
nli:videoname or propertyScalar, first matchDirect absolute public HTTPS video URLStandard or legacy organic videoA valid value replaces the first discovered Schema.org video URLFirst valid Schema.org VideoObject; existing thumbnail discovery/import behavior appliesAvailable; multi-rendition association is planned in API #4640
nli:video:imagename or propertyScalar, first matchAbsolute public HTTPS image URLStandard rendition thumbnailMust affect only the matching nli:video renditionExisting standard-video thumbnail discoveryPlanned in API #4640; not currently supported
nli:shortname or propertyScalar, first matchDirect absolute public HTTPS video URLVertical or short renditionCreates a rendition independent from nli:videoNo short renditionPlanned in API #4640; not currently supported
nli:short:imagename or propertyScalar, first matchAbsolute public HTTPS image URLShort rendition thumbnailMust affect only the matching nli:short renditionExisting short-video thumbnail discoveryPlanned in API #4640; not currently supported

3. Override, repeat, or merge#

3.1. Scalar overrides#

A scalar field keeps one value. When a supported nli:* scalar is present, it has priority over its listed fallback. Emit the field once. For fields accepting both attributes, using both creates an ambiguous first-match result that depends on document order.

3.2. Repeatable replacements#

Repeat nli:image, nli:location, or nli:author once per value. If at least one Nonli-specific value is found, that list replaces the corresponding Open Graph or article:* list.

html
1<meta property="nli:image" content="https://media.example.com/story-wide.jpg">
2<meta property="nli:image" content="https://media.example.com/story-square.jpg">
3<meta property="nli:author" content="Alex Morgan">
4<meta property="nli:author" content="Sam Lee">
5<meta property="nli:location" content="Paris">
6<meta property="nli:location" content="Brussels">

3.3. Merged tags#

nli:tag is the deliberate exception. Repeat it with name; Nonli merges its values with article:tag and any configured tag extractor, then cleans the combined list.

html
1<meta property="article:tag" content="Europe">
2<meta name="nli:tag" content="European Union">
3<meta name="nli:tag" content="elections">

4. Dates and URLs#

Dates must be valid ISO 8601 date-times with an explicit time zone. These examples represent precise instants:

html
1<meta property="nli:published_time" content="2026-08-25T09:30:00+02:00">
2<meta property="nli:modified_time" content="2026-08-25T08:15:00Z">

Do not use a date-only value such as 2026-08-25 or a time without a zone such as 2026-08-25T09:30:00. An invalid date can make scraping fail instead of activating the fallback.

For images and videos, use direct, absolute HTTPS URLs that return the media file publicly. Relative URLs, HTML player pages, browser sessions, expiring signed URLs, and URLs requiring cookies are unsafe integration inputs.

5. Main images, custom slots, and video thumbnails#

These image families are independent:

  • nli:image is the repeatable main article image collection;
  • nli:image1 through nli:image6 are six separate custom slots used by bot image selection;
  • nli:video:image is planned as the thumbnail of the standard video only;
  • nli:short:image is planned as the thumbnail of the short video only.

A numbered custom image does not join or replace nli:image. A rendition thumbnail must never become an article image or the thumbnail of the other rendition.

6. Standard and short video renditions#

As of August 25, 2026, only nli:video is available. The API/domain work tracked by nonli/api#4640 is still open, so nli:short, nli:video:image, and nli:short:image must not be used as production inputs yet.

The complete target syntax below is provided for implementation planning. It becomes valid only after API #4640 is deployed and its HTML compatibility tests pass:

html
1<!-- Available today; becomes the standard rendition in the multi-rendition contract -->
2<meta name="nli:video" content="https://media.example.com/report-16x9.mp4">
3
4<!-- Planned in API #4640; not currently supported -->
5<meta name="nli:video:image" content="https://media.example.com/report-16x9.jpg">
6<meta name="nli:short" content="https://media.example.com/report-9x16.mp4">
7<meta name="nli:short:image" content="https://media.example.com/report-9x16.jpg">

Once deployed, each video may appear alone. A thumbnail without its matching video will be ignored and will not create a rendition. If a rendition has no dedicated thumbnail, it will keep that rendition's existing discovery/import behavior and will not borrow the other rendition's image.

7. Empty and invalid values#

  • Do not emit a meta element when its value is unknown.
  • Empty nli:video and nli:image1nli:image6 values are ignored.
  • For other overrides, an empty element may count as present and suppress its fallback; use non-empty content only.
  • An invalid nli:video URL does not replace a valid Schema.org video.
  • A relative nli:url can be resolved against the scraped page, but publishers should emit one stable absolute canonical HTTPS URL.
  • If name and property versions of the same generic field coexist, the first matching element wins; emit only one.

8. HTML or MRSS?#

Use these tags when Nonli scrapes an HTML article page. If your CMS exports a feed with video assets, use the video MRSS feed guide instead. It explains how to group standard and short renditions with their own thumbnails in one feed item.

Was this article helpful?

Book a personalized demo with our team.