Set up Nonli on your website

Last updated: June 5, 2026

Also available in:Français

This guide is for the technical team integrating Nonli on a publisher website. Nonli also provides a personalised setup page with the exact values for your domain.

1. Whitelist our IP addresses#

To prevent our crawlers from being blocked, allow the following IP addresses on your servers, firewall or WAF.

OVHGoogleHetzner
51.77.188.71130.211.76.244167.235.24.250
51.83.116.244104.155.62.41167.235.65.20
51.255.141.21434.77.85.234116.203.102.173
51.68.75.2777.42.68.147
51.38.196.17489.167.4.248
54.36.13.23889.167.13.146
54.36.18.6846.224.230.139

You can also fetch the up-to-date list programmatically: www.nonli.com/crawler-ips.json (structured) or www.nonli.com/crawler-ips.txt (plain text).

2. Choose your SDK domain#

For security and GDPR reasons, the SDK must run on a subdomain of your main domain. Create a CNAME record:

l.yourdomain.com → CNAME → tls.non.li

Important: do not enable the Cloudflare proxy (orange cloud) on this record. It would conflict with our own Cloudflare proxy, so keep it as DNS only (grey cloud).

Nonli is listed on the CNIL register of consent-exempt solutions. Since 22 January 2025, our SDK and link shortener no longer set any cookie, so no personal data from your users is collected.

3. Install the SDK#

Add this script at the end of your article pages, and any page likely to be shared on social media. Set your SDK subdomain below and copy the generated snippet.

You can also prefill it from the URL with ?domain=l.yourdomain.com.

html
1<script type="text/javascript">
2window._nli=window._nli||[],function(){var n,e,i=window._nli||(window._nli=[]);i.loaded||((n=document.createElement("script")).defer=!0,n.src="https://l.yourdomain.com/sdk.js",(e=document.getElementsByTagName("script")[0]).parentNode.insertBefore(n,e),i.loaded=!0)}();
3</script>

4. Add Open Graph meta tags#

Open Graph tags let us read your articles correctly. The dates matter the most.

html
1<meta property="og:title" content="Article title">
2<meta property="og:url" content="https://www.mysite.com/canonical-url-of-article.html">
3
4<!-- Use large uncropped images > 1000px -->
5<meta property="og:image" content="https://www.mysite.com/myimage.jpg">
6<meta property="og:description" content="Article description">
7
8<!-- These 3 meta tags are particularly important: -->
9<meta property="og:type" content="article">
10<meta property="article:published_time" content="2022-06-06T11:54:30Z">
11<meta property="article:modified_time" content="2022-06-06T12:21:12Z">
12
13<!-- article:section classifies content by section (category) -->
14<meta property="article:section" content="Sport" />
15
16<!-- article:tag classifies content with keywords, spread across several tags -->
17<meta property="article:tag" content="keyword 1" />
18<meta property="article:tag" content="keyword 2" />
19<meta property="article:tag" content="keyword 3" />

5. Add schema.org microdata#

articleSection gives us the article sections and keywords gives us the tags. Authors are usually already well described.

json
1{
2 "@context": "https://schema.org",
3 "@type": "NewsArticle",
4 "mainEntityOfPage": {
5 "@type": "WebPage",
6 "@id": "https://www.example.com/category/my-article.php"
7 },
8 // A unique identifier to avoid duplicate content very quickly
9 "identifier": "123456",
10 "headline": "Main article title",
11 "alternativeHeadline": "Alternative title or article lead",
12 "description": "Complete article description for SEO",
13 "keywords": ["keyword1", "keyword2", "keyword3"],
14 // It might be interesting to add articleSection to make it appear in the categories:
15 "articleSection": ["Main category", "Secondary category"],
16 "author": [
17 {
18 "url": "https://www.example.com/author",
19 "@type": "Person",
20 "name": "First Last",
21 "jobTitle": "Journalist",
22 "address": "City"
23 }
24 ],
25 "datePublished": "2025-09-29T10:00:00Z",
26 "dateModified": "2025-09-29T15:30:00Z",
27 "isAccessibleForFree": "False"
28}

Need a hand with the integration? Contact us.

Was this article helpful?

Our support team is here to help you.