When an AI reads a page that names "Simafri", it has to decide which entity that is. If the name stands alone, nothing helps it: it gathers whatever it finds under that name, and when two entities share it, it answers with the namesake's reputation. What you can give it is a graph: a stable identifier, pages that declare it, and profiles that point to one another.
This guide shows how to put that graph in place, on a real case: the website of Simafri, an IT provider for SMBs, recorded on 14 September 2026, before and after the fix.
Three pieces, and the link that closes the loop
- The Wikidata item: a stable identifier (the letter Q followed by a number) and sourced properties, among them the official website (P856), the GitHub username (P2037), the LinkedIn company ID (P4264), the founder (P112) and the inception date (P571). It is the open knowledge base where an entity is documented, then reviewed and corrected by third parties.
- The
Organizationnode of your website: the JSON-LD block that describes the company, with its@id, its name, its address, and thesameAsproperty, which lists the pages you assert are you. - Your profiles: GitHub, LinkedIn, a directory, a publishing space. Each carries the same description and a link to the website.
No piece proves anything on its own: anyone can write a sameAs pointing to a Wikidata item, and anyone can create an item. What removes the ambiguity is the loop: the website declares the Wikidata item and the profiles, the item declares the website and the profiles, and the profiles point back to the website. A link in one direction remains a claim; in both directions, it becomes an identification.
The example of Simafri, recorded on 14 September 2026
The Wikidata side was already in place. The item Q140183772 declares the website www.simafri.com, the GitHub organization simafri, the LinkedIn page simafri, the founder and the year 2012.
The website did not point back. Of its 856 published pages, 137 defined Simafri's Organization node, and each gave it a single sameAs: a Facebook page. Wikidata pointed to the website, the website did not point to Wikidata. The GitHub organization had no description, and its profile README presented only one of the company's four products.
| Piece | Before | After |
|---|---|---|
sameAs on the 137 pages |
a Facebook page | Wikidata, GitHub, LinkedIn, Markleex, Facebook |
| GitHub organization description | empty | the sentence that describes Simafri on its own website |
| GitHub profile README | one product out of four | the reference description, the four products, the same JSON-LD as the website |
| Wikidata item | website, GitHub, LinkedIn, founder, 2012 | unchanged |
The node, as the website has served it since:
{
"@type": "Organization",
"@id": "https://www.simafri.com/en/#organization",
"name": "Simafri",
"url": "https://www.simafri.com/en/",
"sameAs": [
"https://www.wikidata.org/wiki/Q140183772",
"https://github.com/simafri",
"https://www.linkedin.com/company/simafri/",
"https://markleex.com/@simafri",
"https://www.facebook.com/simafri.web"
]
}
Why the gap comes back on its own
Simafri's gap was not an oversight on one page: it was 137 copies of the same oversight. On a static website, each page often carries its own JSON-LD block, written by hand and then copied from page to page. A new page copied from an older one inherits its sameAs, gap included, and nothing flags it: the page renders, the links respond.
There are two ways out, depending on your website. Either the node is defined once, in the template, and every page refers to it by its @id. Or it stays copied, and a build-time check refuses any page whose node leaves out a profile. Simafri chose the second: its build now fails as soon as a definition of the node is missing one of the four links. The check was seen failing on the old version (137 faults), then passing on the new one.
What sameAs does not do
sameAs lists only pages that are the company: its official profiles, the pages it holds the pen on. It is the line that separates your surfaces from corroborations. A press article, a review, a list you appear in talk about you; they are not you, and they have no place in sameAs.
Nor does it get you recommended. It tells an engine who you are; what the engine says about you still depends on what the pages say, yours and everyone else's. Identification is the precondition, it replaces neither content nor third parties.
One description, everywhere
An identification loop holds better when every link in it says the same thing. On GitHub, Simafri used the very sentence from its website, "the technical ally of SMBs: websites, email, management software and custom applications, created, hosted and maintained since 2012", and not a variant written for the occasion. A description that changes from one profile to the next gives the engine three versions to reconcile, and the engine is the one that chooses.
In Epovest, that description is the project's Canon, and the Surfaces registry lists every page you hold with what it must restate. Simafri's GitHub profile and its two directory pages were aligned with the Canon there on the day of the check, cell by cell.
Check your loop in ten minutes
- Your website: open the source of the home page and search for
"sameAs". The list should carry your official profiles and, if you have one, your Wikidata item. Do it again on an inner page: that is often where the gap hides. - Wikidata: search for your company's name. If an item exists, check the official website (P856) and the identifiers of your profiles. If it does not, creating one follows notability criteria: an item is documented with sources.
- Your profiles: each should carry the same description and a link to the website.
- Date the move in the Logbook and follow the same questions in Tracking: whatever moves next reads against what you did.
Method
Recorded on 14 September 2026. The JSON-LD of the 856 pages of simafri.com was extracted from the build output before and after the fix; the Wikidata item was read through the official Wikidata API; the profiles, on their public pages. The figures may be reused with attribution.