Search engine optimization by design

Clear to search engines.Read live from this page.

Search engine optimization is not a layer added at launch. On our new system it is built into every page: its own title and description, one address stated the same way everywhere, languages that name each other, structured data that says only what the page shows. No one can promise a ranking, and we do not. Here is what a search engine is given, read live in your browser.

Readings are taken live from this page and from this site’s own files. Diagrams are illustrative where marked.

01 · The page

Every page speaks for itself.

A search result and a shared link are assembled from what a page says about itself. This one states its own title, its own description, its own image, and one address, written identically in four places.

Live words · illustrative frame

01 · In a search result

——

—

—

02 · In a shared link

—

—

—

—

03 · One address, four places

Compared whole, character by character. Shown as paths.

The page’s address in the four places that hold it
PlaceAddress, as a pathComparison
Canonical tag——
Share card——
Structured data——
Sitemap——
—

Reading this page…

A search engine or an app lays out a result as it chooses, and may rewrite it: these frames are drawings of what the page states.

How this is read

The words · live

Everything inside the two frames is read in your browser from this page’s own head, once its address tag matches the address bar: the title, the description, the share card’s title, description and image, the site’s icon and name, and the breadcrumb names in its structured data. A length counts each character once. Nothing is sent anywhere.

The frames · illustrative

The two frames are drawn in this site’s own style. They copy no search engine and no app, and stand alone, with no other result beside them. What a search engine or an app shows is its own decision; it may rewrite a title or pick other words.

The four places · live

The canonical tag, the share card’s address and the structured data are read from the page; the sitemap is this site’s own file, asked for once per visit. The four full addresses are compared as written, character by character. Only their paths are printed, with one mark for the origin they share.

Home and About

Pressing another page asks this site for it once, reads its head without running it, and looks its address up in the same sitemap. The picture shown is the one that page names, cut by this site to the size it is painted.

Without its own words · illustrative

A drawing of this same page stating nothing: the site’s name alone for a title, the first characters of the page in reading order for a text, read from the page as it stands, an empty image frame and no address.

What the page states, field by field · This page
FieldRead fromAs statedReading
Titletitle——
Descriptionmeta · description——
Share card, titleog:title——
Share card, descriptionog:description——
Share card, imageog:image——
Canonical taglink · canonical——
Share card, addressog:url——
Structured datald+json · url——
Sitemapsitemap · loc——

02 · Two languages

French pages live at French addresses.

Each page names its twin in the other language, and the twin names it back. The French address is written in French, from one table, whole words at a time: /showcase becomes /fr/projets.

Live · this page and the sitemap

01 · This page

Reading this page…

02 · The whole site

Reading the sitemap…
English addressFrench addressFrench words of its ownReciprocal

03 · Counted in the sitemap

Pairs read
—
One address per language.
Reciprocal
—
Both entries exist and each lists the other.
French words of their own
—
The rest are French as they stand.

Reading this page…

Translate

Read just now from this page and the sitemap. The tags give a search engine what it needs to offer the right language; the choice stays its own.

How this is read

This page · its own head

The language is the one the document declares on its root element. The language tags are the alternate links in its head, each a language code and an address: one per language and region, one per language alone, and a default for everyone else. Each flag points to the address it names. They give a search engine what it needs to offer the right language; the choice stays its own.

The site · the sitemap

The sitemap is fetched once and read in your browser. Each entry lists its own address and the same page in the other language. A pair is reciprocal when both entries exist and each lists the other. It has French words of its own when its French address is not simply /fr followed by the English one. The legal pages are not listed in the sitemap, so they are not counted.

The twin · on a press

Until you press, nothing is asked of the other page, and reciprocity is the sitemap’s. The white button makes one request for the twin, on this site, and reads its head the same way: its language, its own address, its language tags. Replaying asks nothing again.

The translator · the site’s own table

The French address is produced by the function behind this site’s language switch: one table of whole words, the longest entry first, so /expertise/privacy is never read as /privacy. This pairing applies where a site has two languages; not every site is bilingual.

03 · Structured data

Data that says only what the page shows.

Beside the words you read, each page carries a short description for machines. The studio and the site are declared once; each page adds itself and points to them. No invented rating, nothing the page does not show.

Live · this page’s own markup

Declared once for the whole site. Show its facts.

Declared once for the whole site. Show its facts.

Added by the page itself. Show its facts.

—

Its trail —

  1. —

The facts it states

Added by the page itself

Name
—
Place
—
Languages
—
Subjects
—
Email
—
Telephone
—
Name
—
Address
—
Languages
—
Description
—
Address
—
Name
—
Description
—
Language
—
Image
—

Not shown on the page, so not in its data

Reading this page…

  • — —
  • — —
  • — —
  • — —

Read in your browser, from this page’s own markup. Another page is asked for only on a press, and only once.

How this is read
Where it sits
The description is written in script blocks in the page’s source, inside the body. One block comes with every page and declares the business and the site; the page’s own block declares the page and its trail. The stage parses each block, lays the entries side by side and indexes them by identifier.
The frames and the notches
A reference is any property whose value holds nothing but an identifier. The nesting is drawn from them: the page says it is part of the site (isPartOf), the site names the business as its publisher (publisher). The page also says who it is about (about) and where its trail is (breadcrumb). An entry of a type this drawing does not expect takes a plain frame of its own.
The match marks
Each one compares two pieces of text in your browser: the entry’s address with the canonical tag, its name with the start of the title tag, its description with the description tag, its language with the language the page declares, its image with the share image. The business’s email and telephone are compared with the mail and phone links on this page, and their values are not printed here. Addresses are shown as paths, images as file names.
What is searched for
Every entry is searched, at any depth, for these keys: aggregateRating, review, openingHours, openingHoursSpecification and streetAddress. A key that turned up would fill its socket and change the count.
Another page
About and Contact are fetched whole, once, on a press, and read the same way. The business and the site of each page are written back out as text and compared character by character.
What this does not say
The subjects the business lists and its profile link are not compared with the page. And this reading says what the data states, not how a search engine will show it.
On other kinds of site
Shops built on our new system state each product’s price and stock. Some of the sites we have built for local businesses state their trade, hours and area served.

04 · The maps

One map for search engines. One for AI assistants.

The sitemap lists every page meant for search, in both languages, each dated by the day its content last changed, not by the build. The same pages are written out in plain text for AI assistants. Both are read here, live.

Live · this site’s own files
Last changed

Reading this site’s files…

In the sitemap

EnglishEN
—
FrenchFR
—
ChangedDate
—

—

How this is read

The sitemap · live

The site’s sitemap is fetched once and read as written: each address, the other-language address it names, and its date. The tree is the English addresses split by segment. Dates are the file’s own, compared as days in UTC, so every reader sees the same day. Search engines can read this list; a listed page is not thereby an indexed one.

Open the sitemap (opens in a new tab)

The map for AI assistants · live

A plain-text file generated from the same content as the pages, refreshed at most once a day, so the comparison says what it finds. Only lines of the form “- [name](address): note” that point to this site’s own pages are counted or shown, and addresses are shown as paths. No assistant is promised to read it.

Open the map for AI assistants (opens in a new tab)

Kept out · what the site’s code sets

The privacy policy and the terms are named from the site’s own table of addresses, and their absence from both files is checked here. The site’s code also marks them as not for search; that mark is stated, not read on this stage. The robots file is read as written: its groups of readers and what each allows.

05 · Continuity

Old addresses still arrive.

A rebuilt site changes its addresses; the links pointing at it do not. Each old address is sent, permanently and in one step, to the page that replaced it, never all of them to the home page. Six of ours are walked below.

Livewalked by this site’s server

Asking this site’s server…

This site’s server could not walk its own addresses here. Nothing is guessed.

— of — arrive on a working page, each in one permanent step.

— addresses, — destination. Every old link lands on the home page.

Arrivals · former addresses of this site

Walked at —

Former addresses of this site, as its own server walked them: the answer each one gives, where it arrives, and whether that page answers.
Old addressAnswerArrives atPage
not turned yetnot turned yetnot turned yet
not turned yetnot turned yetnot turned yet
not turned yetnot turned yetnot turned yet
not turned yetnot turned yetnot turned yet
not turned yetnot turned yetnot turned yet
not turned yetnot turned yetnot turned yet
Refused before a site opens
  • a missing page
  • a temporary redirect
  • a chain

Our practiceEach old address goes to the page that replaced it, never all of them to the home page.

Press an old address to try it yourself. It opens in a new tab.

Walked by this site’s own server · — · each old address asked without following its redirect, then followed to the page it reaches

How this is checked
The walk
A browser cannot read a redirect’s status or count its steps, so this site’s own server does: it asks for each old address without following the redirect, notes the answer and where it points, then follows it to the page it reaches and notes that page’s status. It takes no input and asks only this site.
Permanent
“Permanent” is the server’s own answer: a redirect that says the move is for good. A temporary redirect, a chain of several steps or a missing page would show on the board with a dashed outline and a hollow mark, and the sentence above it would count it.
The time
The walk is made once and kept for up to an hour, so a visit costs one read; the time on the board is when it was made. Replay turns the board again from the same walk: nothing is asked twice.
A blanket redirect
A drawing of a common shortcut when a site is rebuilt, no particular site: every old address sent to the home page. The addresses are this site’s; the destination and the last column are drawn.

06 · The proof

Thirteen things in place. Then one switch.

A new site is built in private, with search switched off. Thirteen things are put in place and checked first, then one switch opens it. Here are the same thirteen, read from this page, and the three answers that switch gives.

Live · thirteen readings of this page

In place before opening

What people see

Where it lives

What it means

Who may read it

— of 13 in place

Search enginesSearchReading… live

A search engine asks

  1. May I crawl?May I crawl?

    not read yet

    the robots file

  2. May I list this page?List this page?

    not read yet

    this page’s robots tag

  3. Which pages are there?Which pages?

    not read yet

    the sitemap

Reading this page…

Read in your browser, from this page and four of this site’s files.

How this is read

Everything here is read in your browser when this section comes near the screen, each thing once: this page’s own tags, the copy around the readings, and four of this site’s files. The readings stay in your browser, and a replay asks for nothing again.

The thirteen readings

Title and description
title · meta[name="description"]
One address
link[rel="canonical"] · og:url
Share card
og:title · og:description · og:url · og:locale · og:locale:alternate · og:type · og:site_name · twitter:card
Preview image
og:image · og:image:alt
Language tags
link[rel="alternate"][hreflang]
Structured data
script[type="application/ld+json"]
Search policy
meta[name="robots"] · /robots.txt
Sitemap
/sitemap.xml
Icons
link[rel~="icon"] · link[rel="apple-touch-icon"]
App manifest
link[rel="manifest"]
Map for AI assistants
/llms.txt
Keywords
meta[name="keywords"]
Visits counted
script[data-website-id]

The robots file, rule by rule

—

The closed side · drawn

The three closed answers are a drawing of what the same code gives before a site opens: everything disallowed, no indexing, an empty sitemap. The answers marked live are the ones read just now.

The page as served

This page is also asked for once as plain text and parsed without running any script: what a search engine is given first. Its tags are then compared with the ones read in the live page.

After opening

Once a site is open, a person registers it with the search engines. Speed is not read here; it has a page of its own: Performance by design

The thirteen readings of this page
ThingFoundRead from
Title and descriptionnot read yetthis page’s title tag and its description tag
One addressnot read yetthis page’s address tag, compared with the address its share card states
Share cardnot read yetthe share tags in this page’s head
Preview imagenot read yetthe share card’s image tag and the text that stands in for it
Language tagsnot read yetthe language tags in this page’s head, one for each language and region
Structured datanot read yetthe structured data blocks this page carries
Search policynot read yetthis page’s robots tag and this site’s robots file; their answers stand past the gate
Sitemapnot read yetthis site’s sitemap, where this page is listed with the day its content last changed
Iconsnot read yetthe icon links in this page’s head
App manifestnot read yetthe manifest link in this page’s head, then the file it names
Map for AI assistantsnot read yetthis site’s plain-text map for AI assistants, where this page is listed
Keywordsnot read yetthis page’s keywords tag; each keyword is then looked up in the page’s own copy, around the readings
Visits countednot read yetthe live page: the visit counter is added after it loads, on the live site only
The three answers a search engine is given
QuestionAnswerRead from
May I crawl?not read yetthe robots file
May I list this page?not read yetthis page’s robots tag
Which pages are there?not read yetthe sitemap

The practice

Being found starts with being read.

No studio can promise a position, and we do not. What we can do is remove every reason a search engine might misread you: two addresses for one page, a French page with no twin, a description that claims what the page does not show, an old link that leads nowhere. We write those decisions down, check them before a site opens, and check again once it is live.

What this page shows is our new system, the way we build today. Sites we delivered before it may not include it.

Want a site search engines read correctly?

Send us your address. We will read it the way this page reads itself.