Skip to content
NessFlow
Menu

E-E-A-T: your checklist depends on your business model

A hotel was losing ten trust points over a return policy it cannot have. Here are the fifteen checks that can actually be verified, which of them apply to your business, and the four traps that corrupt the reading.

The NessFlow team (Product engineering, NessFlow) · · 11 min read

Screenshot of the Trust baseline and the axes the business model calls for screen in NessFlow, on a demo dataset.

A real product screen, rendered on a fictional demo dataset: the figures shown belong to no client.

A 28 page hotel was losing ten points of trust score for not publishing a return policy. It ships nothing. It has never had anything to return.

The fault was ours, and we fixed it on 7 September 2026. It is worth telling because nothing about it is specific to our scoring. It is what every published E-E-A-T checklist does: apply one list to every site, and hold a hotel accountable for a page its business will never produce.

This article does the opposite. You are going to build your list of checks, in three layers: what every site must prove, what your business model adds, and what your sector demands on top.

What E-E-A-T is, and what it is not

E-E-A-T is not a ranking factor and it is not a score. It is the vocabulary of the guidelines Google hands to its human quality raters: experience, expertise, authoritativeness, trustworthiness. Those raters change no rankings. They rate pages, and their ratings are used to judge algorithm changes.

So there is no official formula, no published weighting, no threshold. Anyone announcing "your E-E-A-T score" has made a number up.

What does exist is a clean line between two families of signal.

On one side, what can be verified: does this page declare who publishes it, how to reach them, on what terms they sell, who wrote this text and when. These are binary facts or shares, machine readable, reproducible by anyone.

On the other side, what is judged: the real competence of the author, the site's reputation away from its own pages, first hand experience. None of that reduces to an automated check.

This article covers the first family only. That limit is deliberate, and it is useful: the verifiable part is the part you can fix this week.

The weights below are ours. They are calibrated on our own corpus, they do not come from Google, and nobody can prove they are correct. Their value is not their accuracy, it is that they are published. Without weighting, a list of checks gives you no way to decide what to fix first, and a list that ranks nothing is worth nothing.

Step 1: two questions, not one

Everybody asks "is this site a merchant?". It is the wrong question, and it is the one that cost our hotel ten points. There are two.

Do you sell anything? A hotel: yes. It has rates, availability, guest reviews. Checks on reviews and on offer completeness mean something for it.

Do you ship anything? A hotel: no. There is nothing to deliver and nothing to send back. Checks on returns and shipping mean nothing for it.

Four checks hang on those two questions, and they are worth 50 points between them. Collapsing them into one question grades a hotel out of 135 when its honest denominator is 110. The same points earned, divided by 135 instead of 110, give 44 instead of 54. The site did not change; the measurement lied.

Here are the business models we separate, and the default answer to both questions.

Model Sells Ships
Online store, marketplace yes yes
Booking, hospitality, ticketing yes no
Real estate shows a price no
Software as a service, business services yes no
Media, education, non profit, directory no no
Local business, manufacturing, lead generation varies no

The default column is a starting point, nothing more. The better reflex is to check your own markup, because markup settles the question more honestly than a declaration does.

A merchant that ships carries a Product type on its listings. A booking site carries an Offer, sometimes a Hotel, never a Product. The difference is sharp and it is readable in the page source. On a 25,586 page booking site read on 8 September 2026, 13,632 pages declared an offer and not one declared a product. The markup refuted shipping, and it did so better than any signup form could.

Step 2: your sector, and only ever additive

Five sectors put the reader's health, money or legal standing on the line: healthcare, pharmacy and beauty, finance and insurance, law and accounting, public and non profit. This is the family the rater guidelines call "your money or your life".

If you are in it, two checks are added, and they apply to your editorial pages: a named author, and a publication date. Nothing else changes.

One rule matters more than the list: a sector adds checks, it never removes any. The reason is mechanical. On our test bench, on 7 September 2026, changing a site's declared business model moved its score from 68 to 88. If a sector could remove requirements, declaring yourself institutional would become a scoring lever, and the scale would reward the most convenient declaration. A score you improve by changing a dropdown measures nothing.

Step 3: the fifteen checks

Seven apply to everyone and are worth 85 points. The other eight depend on your answers to steps 1 and 2.

Check Weight Grain Applies to Manual verification
HTTPS everywhere 10 share of pages everyone search the served source for http://
Structured data present 10 share of pages everyone Google's rich results test
Entity declared 15 site everyone an Organization or LocalBusiness block on the home page
Entity linked 10 site everyone sameAs pointing at your official profiles
Contact page 15 site everyone a page at /contact that answers 200
Legal notice and terms 15 site everyone /legal, /terms
Privacy policy 10 site everyone /privacy
Return policy 15 site you ship /returns
Shipping terms 10 site you ship /shipping
Reviews on pages that sell 15 share of transactional pages you sell AggregateRating in the markup
Complete offer 10 share of transactional pages you sell Offer with price, currency and availability
Public pricing 10 site software as a service, business services /pricing
Named team 10 site media, education, non profit, directory /about
Editorial author 15 share of editorial pages five high stakes sectors author in the article markup
Publication date 10 share of editorial pages five high stakes sectors datePublished in the markup

The denominator follows your model. A merchant that ships is graded out of 135, a booking site out of 110, a software business out of 95, a media site out of 95. It is not the score that changes from one business to another, it is what the score is about.

Two columns need a word.

Grain says what the share is computed over. Three checks are properties of the site: one page establishes them, and a contact page does not get better because there are two of them. The rest are shares, and the share is what stops the gaming. We learned that one the hard way: on 7 September 2026, an 8,716 page merchant collected its full fifteen review points because two of its pages, two, carried an aggregate rating. The useful quantity is not "does a review exist somewhere on this site", it is "what share of the pages that sell carries one".

Manual verification is deliberately poor. Every one of these checks fits in a browser, with the page source and the rich results test. That is workable on ten pages. It is not workable on ten thousand, and that is the only good reason to automate it.

The four traps in verifying this

This section is the reason the article exists. Each of the four traps below cost us a working pass, and none of them is documented elsewhere.

1. The link proves nothing, the target page does. The tempting approach is to look for trust pages in anchor text: a link reading "legal notice", job done. We tried it, and anchor matching produces false positives in bulk. The word "contact" shows up in dozens of links that lead to no contact page, and a multilingual footer multiplies the variants. The stable signal is the path of the target page, and that page has to answer 200. A link to a dead page is worse than no link: it promises evidence that is not there.

2. Most of your structured data describes nothing. A site on any modern content management system declares WebSite, WebPage, BreadcrumbList and Organization on nearly every page. Those types prove a plugin is installed, not that the page is described. The types that carry information are the ones that say what the page is: Product, Offer, Article, LocalBusiness, FAQPage. When you audit your markup, count only those, or you will report 99 % coverage that measures nothing.

3. The type can arrive as a full URL. "@type": "Product" and "@type": "https://schema.org/Product" are both valid. The second form is rarer, it is perfectly conformant, and it silently defeats any naive string comparison. If you script your audit, normalise the type before you compare it.

4. The first URL segment is often the language. A rule that reads /en/products/oak-chair and concludes "template: en" files the whole site under one template. On a multilingual site the useful segment is the second one. The trap is a silly one, it is invisible on a single language site, and it wrecks any analysis by page type.

Three states, never two

The last point is the most important, and it is where checklists lie most often.

A check has three possible outcomes, never two.

  • Measured. The check applies and the signal is present, or absent. That is a fact.
  • Not applicable. The subject does not have that property. The check leaves the denominator.
  • Not measured. The check applies, but the reading could not be taken: no analysable page, collection interrupted, site unreachable. It leaves the denominator too, for an entirely different reason.

Confusing "not applicable" with zero is our hotel's mistake. Confusing "not measured" with zero is worse: it drops a score on a collection failure, and you go and fix a problem that does not exist.

And the law that holds the whole thing up: a check leaves the denominator because the subject lacks the property, never because the signal is missing. If a missing signal were enough to retire its check, every site would come out at 100. Declare nothing and be judged on nothing. A generous scale produces exactly what a healthy site would produce, which is why nobody ever catches it.

The symmetry matters too. A measurement can refute an expectation, as the booking site marking up an offer on 13,632 pages without a single product did. But a refutation must never lower a score: a check that does not apply, whose signal is present anyway, stays credited. You lose nothing by publishing a shipping page nobody expected of you.

Where to start

The order is in the weight column, corrected for effort.

The best ratio on the table is the entity block. Entity declared and entity linked are worth 25 points together, and both fit in a single structured data block on the home page: the legal name, the address, the logo, and sameAs links to your official profiles. That is half a day of work for the largest single gain on the list, and it is also the first thing a generative engine picks up when it cites a source.

Then the missing trust pages, at 15 or 10 points each depending on your model. A contact page, a legal notice, terms, a privacy policy. Check that they exist, that they answer 200, and that they are reachable from the footer of every page.

The shares last, reviews and complete offer, because they cover thousands of pages and they need a template change rather than a page to write.

A different order is defensible if your situation is. What is not defensible is starting with what is easy without knowing what it is worth.

What this method does not measure

It does not measure your expertise. It does not measure your reputation away from the site. It does not measure whether you have actually used the product you are writing about.

The fifteen checks measure one thing: whether your site makes itself verifiable. That is a necessary condition, never a sufficient one. A perfectly marked up site talking nonsense is still a site talking nonsense, and no human rater will be fooled.

The converse holds too, and it is what makes the exercise pay: real expertise that no page lets anyone verify counts for nobody, not for a rater, not for an engine, not for a reader.

Next

For the substance of a page rather than its trust signals, see our guide on semantic coverage. For what generative engines take from a well declared entity, see what can actually be measured in GEO.

The fifteen checks are read automatically on every crawl by our semantic optimization module, with their denominator and the reason behind every check that was retired.

Screenshot of the Keyword opportunities mined from Search Console screen in NessFlow, on a demo dataset.

tutorial

Keyword cannibalization: proving a conflict without counting pages

Two pages on one query prove nothing. Across 49 published detection methods, not one separates an engine that is hesitating from an engine that has decided. Here is the protocol that does, by hand, and what our own thresholds are worth.

The NessFlow team · · 14 min read

Screenshot of the Error URLs requested by crawlers screen in NessFlow, on a demo dataset.

tutorial

Getting raw access logs out of shared hosting

With no server access, logs come through a control panel. Here is the checkbox that keeps them, and why some lines belong to other people’s sites.

The NessFlow team · · 2 min read

Diagram: A claim, checked, in the NessFlow architecture.

engineering

Measuring the agentic web without trusting the user agent

A user agent string is a claim, not an identity. We built forward confirmed reverse DNS and published range checking, ran it over 39,319,497 requests on three production sites, and counted two things separately: which machine readable paths agents actually ask for, and which of the agents asking are who they say they are.

Tarek Morgene · · 18 min read

Start with a measurement, not a promise

Run an audit on your own site and read what the engine finds. If you would rather be walked through it, book a demo: we run it on your site, with your own URLs on screen.

Access opens in waves: we email you when yours is ready.