Skip to content

What's inside the newsletter from Farmfoods

Sender
csteam@farmfoods.co.uk
Sending platform
MailerLite
Sector
Food
Emails read
65 campaigns, 2 transactional
Period
August – October 2026

Our address was subscribed in August 2026, after the CNIL recommendation was published (April 14, 2026).

Overall score

The main finding

An open-tracking pixel is present on the last 3 campaigns.

It is the first of 13 points to fix. The highest score is deliverability (82/100), the lowest compliance (36/100), better than 38% of the 503 brands measured.

One email when a criterion changes state: the Pro version, in early access.

PDF
Share

Share this report

A single message, written by us. Their address is used for this message only and is not added to any list.

13 points to fix

Each line leads to the criterion in its family, with the excerpt that establishes it and how to fix it.

  1. Priority An open-tracking pixel is present Criterion “No open-tracking pixel” Compliance on the last 3 campaigns −30 pts out of 30
    <img src="https://lqavbqm.clicks.mlsend.com/gr/o/***" width="1" height="1" alt=…

    Open tracking is turned off in the tracking settings, at the campaign or account level.

  2. To review No separate path to refuse tracking Criterion “The recipient keeps control over tracking” Compliance measured on 64 campaigns −19.2 pts out of 20

    A path separate from the unsubscribe link leads to a preference centre where the recipient can refuse tracking (opens, clicks) without unsubscribing.

  3. To review The template is nested beyond the threshold Criterion “A shallow template” Technical measured on 64 campaigns −15.3 pts out of 20

    Flatten the template: one content block per table, placed directly in the main column, with no wrapper table around each section.

  4. To review The published DMARC policy keeps out no impersonation Criterion “DMARC policy that helps keep out some impersonation” Deliverability on all 64 campaigns −15 pts out of 15
  5. To review Some links become invisible when images are blocked Criterion “All links stay visible with images blocked” Experience on 54 of the 64 campaigns −12.7 pts out of 15
  6. To review Preheader missing, too short or too long Criterion “The message makes sense without its images, from the inbox on” Experience measured on 64 campaigns −12.5 pts out of 25
  7. To review The message puts obstacles in the way of assistive technology Criterion “The message stays readable with assistive technology” Experience measured on 64 campaigns −11.2 pts out of 20
  8. To review No untracked path leads to the site Criterion “An untracked path leads to the site” Compliance on all 64 campaigns −10 pts out of 10
  9. To review A remote stylesheet is called Criterion “No remote stylesheet” Technical on all 64 campaigns −10 pts out of 10
  10. Secondary The text version carries less than 80% of the links Criterion “The message can be rendered outside HTML” Experience measured on 64 campaigns −5 pts out of 15
  11. Secondary No link leads to the privacy policy Criterion “The message says who is writing and under which rules” Compliance measured on 64 campaigns −5 pts out of 15
  12. Secondary Some links lead nowhere Criterion “Every link leads somewhere” Technical on 15 of the 64 campaigns −2.3 pts out of 10
  13. Secondary The DKIM signature leaves part of the message uncovered Criterion “A DKIM signature that covers what matters” Deliverability measured on 64 campaigns −0.2 pts out of 5

11 criteria met, including « Unsubscribing is possible and announced » and « DKIM signature validated ». They are listed in their family, below.

Every send, at the time it arrived

One dot per message received by our subscription since August. Tap a dot to open it; the arrows move from one send to the next.

Technical reading of the send of Oct. 23, 2026 →

campaigns in 11 weeks
65
about 5.9 a week, from August to October
every day of the week
7 days a week
6 to 11 campaigns depending on the day
favourite sending hour
14 h
42% of campaigns arrive between 14:00 and 15:00
last send received
24 Oct.
« ❗5 Day Specials❗29W Lenor Midsummer Fabric Conditioner £1.29… »
Pixel
Score
58 62 62

Campaign 65 of 65

Saturday 24 Oct., 12:07

❗5 Day Specials❗29W Lenor Midsummer Fabric Conditioner £1.29❗32W Bold Midsummer Gel £2.99❗500ml Moss & Adams Handwash 99p each❗

Type
Marketing campaign
Score
analysis in progress
Pixel
—

Sending day

  1. Mon.
  2. Tue.
  3. Wed.
  4. Thu.
  5. Fri.
  6. Sat.
  7. Sun.

Arrival time

1 change observed since August

Each campaign is compared with the previous one, criterion by criterion.

10 Oct.

The detail of this change, criterion by criterion, is reserved for the Pro version.

confirmed by the next campaign · the per-send score goes from 58 to 62

See what changed, before and after Version Pro

Criteria in detail

The 24 criteria + 1 bonus

Met The criterion is verified on every email where it applied. Counts for its full weight in the score. Partly met The criterion is verified on only some of the emails; the detail says which. Counts in proportion to the emails where it is met. Not met The criterion is verified on none of the emails where it applied. Counts as zero, and its weight stays in the denominator. Not observable Nothing in the emails received allows a conclusion: the criterion leaves the denominator and is never counted as a failure. Leaves the denominator: listed, never counted as a failure.

Compliance

These checks cover what the send imposes on the recipient and what it leaves them: measurement of their behaviour, ways to leave, tracking of their objection.

Tracking pixels: the CNIL rule Method, Compliance family better than 38% of the 503 brands measured

The calculation · 36 pts out of 100

2 met · 2 partly met · 2 not met

30 15 20 15 10 10

Weight of each criterion in the score.

No open-tracking pixel Not met Open-tracking pixel detected on the last 3 campaigns 0/30 pts

0 points out of 30 — met on 0 of the last 3 campaigns.

An invisible image tells the sending platform that the message was opened, when, and from which device: this is individual tracking of reading behavior, and the recipient sees none of it. The message does not say whether they consented or objected — that choice lives in the sending platform, not in the email.

Served from mlsend.com.

The excerpt that establishes it

<img src="https://lqavbqm.clicks.mlsend.com/gr/o/***" width="1" height="1" alt="" style="display:block;height:0px;width:0px;max-width:0px;max-height:0px;overflow:hidden;" border="0">

How to fix it

Open tracking is turned off in the tracking settings, at the campaign or account level. Look for “open tracking”.

Turning it off loses the open rate — a measure already largely distorted by mailbox privacy protections, which preload images — and changes nothing about the click rate.

Met when no tracking pixel is present. A single pixel is enough for the criterion not to be met on an email.

Unsubscribing is possible and announced Met Unsubscribing is announced, in the header and in the body on 64 campaigns 15 pts

15 points out of 15 — share of observations met across 64 campaigns.

Met when the message announces unsubscribing in its headers, through a page rather than an email to write, and in its body. The detail says which of the two is missing. Not applicable to a transactional email.

What was measured — 2 met out of 2

  • Unsubscribe announced in the header, through a page on 64 campaigns Met
  • Unsubscribe link in the body on 64 campaigns Met
The recipient keeps control over tracking Partly met The recipient has no control over tracking — none of the 2 measures is met across all 64 campaigns 0.8/20 pts

0.8 points out of 20 — share of observations met across 64 campaigns.

How to fix it

A path separate from the unsubscribe link leads to a preference centre where the recipient can refuse tracking (opens, clicks) without unsubscribing. Most email platforms offer this page; otherwise it goes in the template footer, with its own link, named for what it does (“manage my preferences”, “refuse tracking”).

The page takes an afternoon to set up and then serves every send. It is what the CNIL recommendation expects from an email that measures how its readers behave.

Two measures: does the unsubscribe link go through a tracker, and does a separate path lead to a preference center or to refusing tracking? Neither establishes that a refusal succeeds — checking would require following the link, which would record a click on the sending platform's side. They describe the control left to the recipient, not the result they would get.

What was measured — 0 met out of 2

  • Tracked unsubscribe link (59 of 64 campaigns concerned) Partly met
  • No separate path to refuse tracking on the 64 campaigns concerned Not met
  • CNIL 14/04/2026 · Postmetry
  • PM-PRIV-003
The message says who is writing and under which rules Partly met No link leads to the privacy policy on the 64 campaigns concerned (2 of 3 measures met) 10/15 pts

10 points out of 15 — share of observations met across 64 campaigns.

How to fix it

The footer of the message names the sender (company name, postal address) and links to its privacy policy with a direct link to the website, not through a tracking domain. These details go once into the base template and then appear in every send.

Nothing to lose: these lines already exist on the website; they only need to be carried over.

A commercial email must make it possible to identify the advertiser (CPCE, article L. 34-5), and the recipient must be able to know who processes their data. This indicator groups what a message can show of it.

What was measured — 2 met out of 3

  • The message names its sender on 64 campaigns Met
  • A reply to the message is possible on 64 campaigns Met
  • No link leads to the privacy policy on the 64 campaigns concerned Not met
  • CPCE L. 34-5 · directive 2000/31 art. 6 · CAN-SPAM
  • PM-PRIV-004
An untracked path leads to the site Not met Every link to the site goes through a tracker on the 64 campaigns concerned 0/10 pts

0 points out of 10 — met on 0 of 64 campaigns concerned.

A recipient who simply wants to visit the site has no option but to go through the click counter.

How to fix it

At least one link in the message points directly to the brand's domain, without going through the platform's redirect domain: the logo, the legal notice or the privacy policy will do. In the editor this is set link by link (“do not track this link”, “disable click tracking”) or through an exclusion list in the account settings.

An untracked link does not count in measured clicks; choosing the logo or the footer takes nothing away from the clicks that matter.

Met when at least one link in the message leads to the brand's site without going through a click counter.

  • Postmetry
  • PM-PRIV-005
No recipient identifier in the message Met No recipient identifier in the message on 64 campaigns 10 pts

10 points out of 10 — met on 64 of 64 campaigns concerned.

Met when the recipient's address appears — neither in clear, nor encoded, nor hashed — in no URL and no proprietary header. Addressing headers do not count: they carry it by design.

  • Postmetry · RGPD art. 4 en repère
  • PM-PRIV-020

Deliverability

These checks read the authentication verdict set by our server when the message arrived. This verdict is dated by construction: we never recalculate it, which would query today's DNS rather than the DNS of the day the email was sent.

The calculation · 70 pts out of 85, scaled to 100

4 met · 1 partly met · 1 not met

20 20 15 10 15 5

Weight of each criterion in the score.

DKIM signature validated Met Valid DKIM signature on 64 campaigns 20 pts

20 points out of 20 — met on 64 of 64 campaigns concerned.

Met when our receiving server validated the DKIM signature of the email.

DMARC alignment validated Met DMARC alignment verified on 64 campaigns 20 pts

20 points out of 20 — met on 64 of 64 campaigns concerned.

Met when the domain shown in the sender matches the one that authenticated the message.

DMARC policy that helps keep out some impersonation Not met DMARC policy in observation only on the 64 campaigns concerned 0/15 pts

0 points out of 15 — met on 0 of 64 campaigns concerned.

How to fix it

A _dmarc.<domain> TXT record declares the policy: v=DMARC1; p=quarantine; rua=mailto:… at the very least, p=reject once the sending sources are aligned. The move happens in stages (p=none with reports, then quarantine, then reject) over a few weeks, reading the reports to find the tools that send on behalf of the domain.

A none policy prevents no spoofing of the domain; quarantine or reject closes the door and meets the Gmail and Yahoo requirements for bulk senders.

Met when the published policy is “reject” or “quarantine”. A “none” policy asks nothing of mail providers: it is published with no effect on messages that impersonate the domain.

No SPF failure Met No SPF failure on 64 campaigns 10 pts

10 points out of 10 — met on 64 of 64 campaigns concerned.

Met when SPF does not fail. An SPF “none” alongside a valid DKIM and DMARC is a common and legitimate configuration: it is not penalized.

One-click unsubscribe, as defined by RFC 8058 Met One-click unsubscribe as defined by RFC 8058 on 64 campaigns 15 pts

15 points out of 15 — share of observations met across 64 campaigns.

Met when the “List-Unsubscribe” header carries an https address and “List-Unsubscribe-Post” is exactly “List-Unsubscribe=One-Click”. This is what Gmail and Yahoo require of bulk senders: the mailbox's button then acts without opening a page. Not applicable to a transactional email.

What was measured — 2 met out of 2

  • The unsubscribe header carries an https address on 64 campaigns Met
  • One-click unsubscribe announced on 64 campaigns Met
  • RFC 8058 · Gmail et Yahoo
  • PM-DELIV-005
A DKIM signature that covers what matters Partly met Some essential headers escape the signature (9 of 64 campaigns concerned) (2 of 3 measures met) 4.8/5 pts

4.8 points out of 5 — share of observations met across 64 campaigns.

How to fix it

The signature uses rsa-sha256 (or ed25519) with a 2048-bit key, without the l= tag (body length), and covers the From, Subject, Date and List-Unsubscribe headers in h=. These settings belong to the email platform or the SMTP server; the key is regenerated from the domain authentication page when it is too short.

A signature with l= or a 1024-bit key is still valid today, but it lets content be added after signing and will be refused by filters as they tighten.

What the signature covers, not only that it passes: an algorithm accepted by RFC 8301, the whole body signed, the From, Subject, Date and List-Unsubscribe headers signed, a signature not expired on receipt. Not applicable without a DKIM signature.

What was measured — 2 met out of 3

  • Accepted signing algorithm on 64 campaigns Met
  • Whole body signed on 64 campaigns Met
  • Some essential headers escape the signature (9 of 64 campaigns concerned) Partly met
  • Signature valid on receipt Not applicable
  • RFC 6376 · RFC 8301
  • PM-DELIV-006

Technical

These checks cover what email clients actually do with the message: truncation, style blocks removed, resources never loaded. Each threshold states where it comes from: the documented behaviour of an email client, a specification, or our own method.

Support by email client (caniemail) Method, Technical family better than 31% of the 503 brands measured

The calculation · 57 pts out of 85, scaled to 100

3 met · 2 partly met · 1 not met

25 20 15 10 10 5

Weight of each criterion in the score.

HTML under Gmail's clipping threshold Met HTML under Gmail's clipping threshold on 64 campaigns 25 pts

25 points out of 25 — met on 64 of 64 campaigns concerned.

Met when the HTML part stays under 102 KB. Beyond that, Gmail cuts off the end of the message — and the end is where the unsubscribe link and the notices are.

  • Gmail
  • PM-TECH-001
A shallow template Partly met Layout tables nested beyond the threshold (49 of 64 campaigns concerned) (0 of 1 measures met) 4.7/20 pts

4.7 points out of 20 — share of observations met across 64 campaigns.

How to fix it

Flatten the template: one content block per table, placed directly in the main column, with no wrapper table around each section.

In a block-based editor, nesting usually comes from a section placed inside another, or a column inside a column. It is fixed once, in the template, not campaign by campaign.

The technical reading of the email gives the measured nesting and its threshold: it tells you when the fix has taken effect.

Met when layout tables are nested no more than 6 levels deep. Beyond that, the Word engine shared by desktop Outlook and the diverging clients each render the template their own way.

What was measured — 0 met out of 1

  • Layout tables nested beyond the threshold (49 of 64 campaigns concerned) Partly met
  • Postmetry
  • PM-TECH-002
Well-formed HTML Met Well-formed HTML on 64 campaigns 15 pts

15 points out of 15 — share of observations met across 64 campaigns.

A doctype, a character set declared in the document, balanced tags and unique identifiers. Each client repairs incomplete markup its own way, which is what makes rendering unpredictable. End tags that HTML makes optional do not count.

What was measured — 4 met out of 4

  • Doctype declared on 64 campaigns Met
  • Character set declared in the HTML on 64 campaigns Met
  • Balanced tags on 64 campaigns Met
  • Unique identifiers on 64 campaigns Met
  • WHATWG
  • PM-TECH-030
Every link leads somewhere Partly met Some links lead nowhere (15 of 64 campaigns concerned) 7.7/10 pts

7.7 points out of 10 — met on 49 of 64 campaigns concerned.

How to fix it

Every link has an absolute https target; no href="#", no href="", no relative link and no mailto: without an address. Empty links most often come from a block copied from an earlier template, or from a button whose URL was never filled in in the editor.

An empty link loses the click and signals a message put together in a hurry; the fix is a review of the link list before sending, which most editors offer.

Met when no link is empty, reduced to “#” or written as “javascript:”. Such a link leads nowhere, and most clients neutralise it. Not applicable if the message contains no link.

  • Postmetry
  • PM-TECH-031
No remote stylesheet Not met Remote stylesheet declared on the 64 campaigns concerned 0/10 pts

0 points out of 10 — met on 0 of 64 campaigns concerned.

How to fix it

CSS rules go inside the message, in a <style> block or inline on the elements; no <link rel="stylesheet"> and no @import pointing to a server. Remote fonts are not counted here: most clients ignore them, but they break nothing.

Gmail, Outlook and most clients do not load a remote stylesheet: the message shows without its styles for most readers.

Met when the message calls no external stylesheet, through “link” or “@import”. Several clients never load them. A font stylesheet does not count: without it, the text falls back to another font.

The message follows the shape of an email Met The message follows the shape of an email on 64 campaigns 5 pts

5 points out of 5 — share of observations met across 64 campaigns.

Lines of 998 bytes at most, readable Message-ID and Date, a character set announced on every text part, a transfer encoding consistent with the content (RFC 5322, RFC 2045). Most servers tolerate these deviations, each in its own way.

What was measured — 5 met out of 5

  • Lines of 998 bytes at most on 64 campaigns Met
  • Well-formed Message-ID on 64 campaigns Met
  • Readable date on 64 campaigns Met
  • Character set announced on every text part on 64 campaigns Met
  • Consistent transfer encoding on 64 campaigns Met
  • RFC 5322 · RFC 2045
  • PM-TECH-010

Experience

Four questions about what becomes of the message once received: does it stay understandable, can the recipient still act, can a client render it, can a screen display it. Automatic detection only covers what is declared in the message.

WCAG 2.2 Method, Experience family better than 41% of the 503 brands measured

The calculation · 59 pts out of 100

2 met · 4 partly met · 1 bonus

25 15 15 10 20 15

Weight of each criterion in the score.

The message makes sense without its images, from the inbox on Partly met Preheader missing, too short or too long on the 64 campaigns concerned (1 of 2 measures met) 12.5/25 pts

12.5 points out of 25 — share of observations met across 64 campaigns.

How to fix it

A preheader of 40 to 130 characters, in real text, follows the subject in the inbox; every meaningful image has an alt attribute that says what it shows; the main message is in text, not inside an image. In the editor, the preheader is a dedicated field, and the alt is filled in image by image.

Half of readers see the message without images when it first opens. An alt and a preheader take a minute per campaign.

Met when the message keeps at least 200 readable characters with images blocked, and a preheader of 40 to 130 characters announces it in the message list. Without a preheader, the inbox shows the first text of the body instead — often “View in browser”.

What was measured — 1 met out of 2

  • At least 200 characters remain readable with images blocked on 64 campaigns Met
  • Preheader missing, too short or too long on the 64 campaigns concerned Not met
  • Postmetry
  • PM-EXP-001
The message can be rendered outside HTML Partly met The text version carries less than 80% of the links on the 64 campaigns concerned (2 of 3 measures met) 10/15 pts

10 points out of 15 — share of observations met across 64 campaigns.

How to fix it

The text version (text/plain) comes with the HTML and carries the content and the links, not just a sentence saying “open this message in your browser”. Email platforms generate it from the HTML when the option is on (“auto-generate plain text”).

This is the version that watches, screen readers and some business clients read; spam filters also use it, comparing the two versions.

Met when a text version comes with the email and carries the essentials: at least 60% of its text and 80% of its links. A client that does not display HTML falls back on it; reduced to “view the web version”, it renders nothing.

What was measured — 2 met out of 3

  • A plain-text version accompanies the message on 64 campaigns Met
  • The text version carries at least 60% of the text on 64 campaigns Met
  • The text version carries less than 80% of the links on the 64 campaigns concerned Not met
  • Postmetry
  • PM-EXP-002
All links stay visible with images blocked Partly met Some links become invisible with images blocked (54 of 64 campaigns concerned) 2.3/15 pts

2.3 points out of 15 — met on 10 of 64 campaigns concerned.

How to fix it

Every important action (main button, unsubscribe) exists as text or as an HTML button, not only as a clickable image. For an image button, an alt that names the action and a background colour on the cell keep the area visible even without the image.

With images blocked, an image button becomes an empty rectangle: the reader does not know where to click.

Met when no link is carried by a single image without alternative text: such a link leaves nothing on screen. Not applicable if the message contains no links.

  • Postmetry
  • PM-EXP-003
Tap targets large enough Met Tap targets of sufficient size on 64 campaigns 10 pts

10 points out of 10 — met on 64 of 64 campaigns concerned.

Met when no sized tap target falls below 24 px a side (WCAG 2.2, criterion 2.5.8). Only targets with a declared dimension are measured; the criterion's exceptions — a target within a line of text, sufficient spacing — are not. Not applicable if the message declares no dimensions.

The message stays readable with assistive technology Partly met The message puts obstacles in the way of assistive technology — 1 of 4 measures met 8.8/20 pts

8.8 points out of 20 — share of observations met across 64 campaigns.

How to fix it

Four fixes, all in the template: declare the message language on the <html> tag (lang="en" for an email in English), describe each content image in its alt attribute, mark layout tables with role="presentation", and write links that say where they lead rather than “click here”.

The criterion detail shows which ones are missing from your emails; the others are already met.

A decorative image — divider, spacer — keeps an empty alt="": that is what keeps it silent, not an oversight.

Declared language, described content images, layout tables marked as such, link texts that say where they lead: what a screen reader needs to render the message. The detail says which of these measures is missing.

What was measured — 1 met out of 4

  • Message language not declared (15 of 64 campaigns concerned) Partly met
  • Some content images are not described on the 64 campaigns concerned Not met
  • Layout tables announced as data tables on the 64 campaigns concerned Not met
  • Every link says where it leads on 64 campaigns Met
The message declares its adaptation to screens Met The message declares its adaptation to screens on 64 campaigns 15 pts

15 points out of 15 — share of observations met across 64 campaigns.

Met when the message declares its viewport and its adaptation to screen width. Without them, it displays on a phone at its original width, and is read by zooming and scrolling sideways.

What was measured — 2 met out of 2

  • Viewport declared on 64 campaigns Met
  • Adaptation to screen width declared on 64 campaigns Met
Dark mode declared Bonus point not earned The message does not declare its support for dark mode on the 64 campaigns concerned +0 pts

0 points out of 5 — met on 0 of 64 campaigns concerned.

Earned when the message declares color-scheme or a prefers-color-scheme rule. No standard requires it — clients that force dark mode invert the colors themselves — but declaring it leaves control to the template rather than to the mail client.

  • caniemail
  • PM-EXP-027

Findings outside scoring

Observed, not scored

These findings are not part of any score: their threshold has no citable source. They are still shown in full.

Every link in the message goes through a tracker

detected by the form of its address

Each click is recorded and tied to the recipient before being redirected. No link leads directly to the site: there is no way to visit the brand from this message without being measured.

The evidence — excerpt from your email
https://lqavbqm.clicks.mlsend.com/ty/c/***
https://click.mlsend.com/link/c/***.mPZxik-nml8XSoWzY0Q6Q4Qb-TcsSiYkb2WHt5mspnU
https://click.mlsend.com/link/c/***.OQyM_U85zr2kbUKcCDxksEE6jlB35w2zaAbqokxY1ME

Sector comparison

Food — 43 brands with at least one campaign analyzed. The shares below are counted on them, never on the catalog.

Reading notes

How to read this page

  1. A criterion that is not observable or not applicable leaves the calculation. It stays listed, never counted as zero: its weight leaves the denominator rather than weighing as a failure.

  2. Each line describes an observable finding, with the excerpt that establishes it. No legal qualification is ever attached to it.

  3. The measurements come from deterministic analyzers: the same message always gives the same result, and a disputed finding can be redone identically from the archive.

  4. Every share is published on an observed basis, and names it: “26 of 30 brands analyzed.” A brand with no email received enters no denominator.

  5. The deliverability score is borrowed: its verdict comes from the server that received the message. All the other families come from our own analyzers.

Does this analysis speak to you?

Let's go through it together, in 20 minutes.

We go over the 13 points with you, the evidence for each and the order in which to fix them. By video call, no commitment.

Pick a time slot Cal.com calendar

Or take it with you: the PDF report

Is this analysis useful to you?

One click, and you help us make it better.