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.
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.
| Tag | Accepted attribute | Cardinality | Value format | Mapped meaning | Precedence or merge behavior | Fallback when absent | Availability |
|---|---|---|---|---|---|---|---|
nli:title | property | Scalar | Non-empty plain text | Open Graph title | Replaces configured and og:title values | Configured title XPath, then og:title | Available |
nli:description | property | Scalar | Non-empty plain text | Open Graph description | Replaces configured and og:description values | Configured description XPath, then og:description | Available |
nli:image | property | Repeatable | Absolute public HTTPS image URL | Main Open Graph image collection | The complete nli:image list replaces ordinary article images | Configured image XPath, then og:image, og:image:url, then og:image:secure_url | Available |
nli:image:alt | property | Scalar | Non-empty plain text | Main image alternative text | Replaces og:image:alt | og:image:alt | Available |
nli:type | property | Scalar | Open Graph object type, for example article | Open Graph content type | Replaces og:type | og:type | Available |
nli:url | name or property | Scalar, first match | Absolute canonical HTTPS URL | Organic canonical URL | Takes priority over the canonical link | <link rel="canonical"> | Available |
nli:content_tier | property | Scalar | Publisher-defined tier text, for example free or premium | Article content tier | Replaces the corresponding article:* value | article:content_tier using property, then name | Available |
nli:location | property | Repeatable | Non-empty place name or identifier | Article location collection | The nli:location list replaces the corresponding article:* list | article:location using property, then name | Available |
nli:opinion | property | Scalar | Publisher-defined opinion marker | Article opinion value | Replaces the corresponding article:* value | article:opinion using property, then name | Available |
nli:author | property | Repeatable | Author name or absolute profile URL | Article author collection | The nli:author list replaces the corresponding article:* list | article:author using property, then name | Available |
nli:published_time | property | Scalar | ISO 8601 date-time with time zone | Article publication time | Replaces configured and ordinary article dates | Configured date XPath, then article:published_time, then og:article:published_time | Available |
nli:modified_time | property | Scalar | ISO 8601 date-time with time zone | Article update time | Replaces the corresponding article:* value | article:modified_time using property, then name | Available |
nli:section | property | Scalar | Non-empty section name | Article section | Replaces the corresponding article:* value | article:section using property, then name | Available |
nli:tag | name | Repeatable | One tag per element | Cleaned article tag collection | Merged with article:tag and configured XPath tags; it does not replace them | Other tag sources remain available | Available |
nli:image1 | name or property | Scalar, first match | Absolute public HTTPS image URL | Custom organic image slot 1 | Independent from the main image collection | No fallback | Available |
nli:image2 | name or property | Scalar, first match | Absolute public HTTPS image URL | Custom organic image slot 2 | Independent from the main image collection | No fallback | Available |
nli:image3 | name or property | Scalar, first match | Absolute public HTTPS image URL | Custom organic image slot 3 | Independent from the main image collection | No fallback | Available |
nli:image4 | name or property | Scalar, first match | Absolute public HTTPS image URL | Custom organic image slot 4 | Independent from the main image collection | No fallback | Available |
nli:image5 | name or property | Scalar, first match | Absolute public HTTPS image URL | Custom organic image slot 5 | Independent from the main image collection | No fallback | Available |
nli:image6 | name or property | Scalar, first match | Absolute public HTTPS image URL | Custom organic image slot 6 | Independent from the main image collection | No fallback | Available |
nli:video | name or property | Scalar, first match | Direct absolute public HTTPS video URL | Standard or legacy organic video | A valid value replaces the first discovered Schema.org video URL | First valid Schema.org VideoObject; existing thumbnail discovery/import behavior applies | Available; multi-rendition association is planned in API #4640 |
nli:video:image | name or property | Scalar, first match | Absolute public HTTPS image URL | Standard rendition thumbnail | Must affect only the matching nli:video rendition | Existing standard-video thumbnail discovery | Planned in API #4640; not currently supported |
nli:short | name or property | Scalar, first match | Direct absolute public HTTPS video URL | Vertical or short rendition | Creates a rendition independent from nli:video | No short rendition | Planned in API #4640; not currently supported |
nli:short:image | name or property | Scalar, first match | Absolute public HTTPS image URL | Short rendition thumbnail | Must affect only the matching nli:short rendition | Existing short-video thumbnail discovery | Planned 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.
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.
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:
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:imageis the repeatable main article image collection;nli:image1throughnli:image6are six separate custom slots used by bot image selection;nli:video:imageis planned as the thumbnail of the standard video only;nli:short:imageis 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:
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:videoandnli:image1…nli:image6values are ignored. - For other overrides, an empty element may count as present and suppress its fallback; use non-empty content only.
- An invalid
nli:videoURL does not replace a valid Schema.org video. - A relative
nli:urlcan be resolved against the scraped page, but publishers should emit one stable absolute canonical HTTPS URL. - If
nameandpropertyversions 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.