Bilingual work is almost never split down the middle. One person writes the French, someone else writes the English, and a third — usually the founder — decides what gets published at all. What goes missing is not a page. It is a decision taken in one language that never reached the person working in the other.

Nobody forgets on purpose. A phrasing is agreed on Tuesday, in French, standing up, and it is settled. Three weeks later the English page ships with the old wording, because its writer was not in that conversation.

Multiply that across a main site, a product site, a careers section and a client's second brand, and the problem stops being linguistic: it becomes a question of whether the team keeps a record. A panel built to hold several sites and several people settles nothing itself, but it moves the argument into a dated entry.

Starting point · A split that is not even

One writes French, one writes English, one decides

Said out loud the arrangement sounds unremarkable, but three properties of it break ordinary workflows. The two writers rarely produce the same volume. They work to different briefs, their audiences wanting different things. And whoever approves both reads one language faster, which decides what gets scrutinised.

Search work sits badly on that. A term choice, a decision to leave a page alone, a redirect added after a complaint — each binds both sides of the site, and none gets recorded.

Game and VFX studios

English ships first

Announcements go out in English for publishers and press; the French version appears when somebody has an afternoon.

Software and AI firms

A boundary nobody wrote down

Documentation stays English because that is what users read, while everything customer-facing is expected in French.

Design and manufacturing

The founder is the bottleneck

Capability pages need approval from the one person who understands the work and cannot read twice.

Independent retail

Whoever is free that week

A Villeray shop with two locations has no writer; posts get drafted by staff in whichever language they think in.

3
people, two languages
35+
interface pages
11
external integrations
1
timeline per project
The diagnostic question. Ask each of the three, separately, why a given page uses the wording it does. Three different answers is not bad memory — it means the decision was never written down, and the next one will not be either.
The feed · Where a decision becomes a fact

My SEO Stream, and what lands in it

Stream sits in the My SEO area and resembles a chat panel. It works as something more useful: a dated project timeline that gathers material otherwise scattered across four tools.

My SEO · Stream

One project, one running feed

For portfolios where several hands touch the site and no one writes minutes.

Comes with a campaign
  • Nothing evaporates. A question and the reply to it survive as dated entries once the session ends.
  • Reports land in place. A generated report enters the timeline where it was produced, next to whatever prompted it.
  • Every link names its source. New placements show the donor domain's rating and its traffic; the placement network runs past 230,000 sites.
  • Tasks keep their context. To-do items and campaign notices run in the same timeline as the figures behind them.
4
entry types, one timeline
20
messages held per thread
230,000+
sites open to placement

For a team split across languages, the Stream feed does something a dashboard never will. A dashboard states where you stand; the timeline states how you got there. If the English writer asks in October why a page chases one phrase and not the obvious alternative, the answer is a June entry or it is nobody's to give.

It only works if people type into it on purpose: the entries worth an afternoon later are deliberate ones.

Record the decision, not the outcome. "Kept the English wording on the process page" is a fact. "Kept it because buyers abroad search that way, while the French page targets the local phrase" is a decision — the only version that stops the argument recurring in March.
The assistant · What it reads before answering

None, one, two or three blocks of the project's data

The assistant is tied to the project rather than the open web, and the mechanism explains the shape of what comes back. Every question passes a router model that weighs which data blocks bear on it — search analytics, rank data, campaign state, material you supplied — then pulls anywhere from none of them to three.

None is the case worth dwelling on. Where a question needs no project figures, none are fetched, so the reply is an explanation rather than something wearing statistics nobody opened. Three at the upper end keeps any answer traceable to inputs you could list.

Asked in the feedBlocks likely pulledHow far the reply can go
What does domain rating measureNoneDefinition only, no borrowed precision
Which tree received last month's linksCampaignThe placements logged here, with donors
Are English pages taking French queriesSearch Console, rank trackingWhat each URL was shown for, and where
Should the founder approve French firstSearch Console, customDemand evidence; the arrangement is yours

Replies build token by token in front of you, which is not decoration: one heading somewhere familiar can be stopped after two lines. A thread holds its last twenty messages, so each follow-up narrows the question without repeating the setup.

  • One subject per thread. A thread wandering across three topics drags earlier noise into every later answer, and twenty messages arrive fast.
  • Inventories go in by the batch. Keyword and URL lists are accepted in bulk, which is how anyone holding a spreadsheet should start.
  • Send the two term sets separately. A single merged upload conceals which of your two languages is the thin one.
It reports; it does not relay. The assistant reads your project's numbers, not your team's intentions. It cannot know a phrasing was approved verbally last week, nor carry that approval to whoever writes the other language. Only a written entry does that.
The queue · Four filters, three states

All, Links, Files, To-do — and the state a task is in

A feed gets hard to use at the point it becomes valuable: when it is long enough to hold the answer. Four filters cut it down, each helping whoever was absent most.

All

The whole timeline

Everything in date order, for rebuilding a month rather than locating one item.

Links

Placements only

Every placement logged against this project, donor rating and traffic included, each one attached to a language tree.

Files

Documents and exports

Exports and uploads lifted out of the conversation, so nobody scrolls hunting for a document.

To-do

Outstanding work

The work queue, and what a newcomer should open before suggesting anything.

Tasks carry three states — active, deferred, dismissed — and the last two earn their separation. Deferred means the work is real and the timing is not. Dismissed means considered and refused. Collapsed into one backlog, every item reads as guilt.

  • Active. Agreed, outstanding, and the only list worth opening on Monday.
  • Deferred. Waiting on a translation, a review, a season, a launch. It comes back, as it should.
  • Dismissed. Refused on purpose. Recording that stops the newest person proposing it again next quarter.

Search covers the full text of every message, which is what makes a record retrievable rather than merely present. In a team working across two languages it raises a question no tool decides for you: which language the record itself is written in.

Two options are honest. Pick one language for internal entries and hold to it, or accept mixed entries and write both forms of any term that matters, so either search finds it. Drifting with neither convention leaves a record searchable only by its author.

Search before you propose. Before adding a task, search the term it concerns. Half the time the entry exists already, in the other language, written by the person you were about to email.
Access · Two clients, two markets, one supplier

Linked accounts, per-site sharing, and taking it back

Multi-tenancy is the dullest part of holding a portfolio and carries most of the risk. Accounts link into groups here, so sites verified under separate Google logins surface together rather than one password circulating.

Workspace · Access model

Granting a site, and withdrawing it

For the ordinary case: a freelancer on one language, an agency on one client, neither on anything else.

Built into the workspace
  • Logins join into groups. Sites verified by different Google accounts appear in a single view — what you inherit after a rebrand.
  • One property at a time. A grant goes to an address you name, for one site, never for what surrounds it.
  • Authorising happens once. A single OAuth2 consent takes in Gmail, Search Console and Analytics together.
  • Taking it back is ordinary. Revoking leaves the project standing, which is why a grant need not be a gamble.
Per site
granularity of a grant
1
authorisation, three services
Group
Google logins, linked

Granularity carries weight because a Montreal agency's client list is rarely uniform. A studio may hold a Rosemont manufacturer selling into Ontario and the United States alongside a retailer whose customers are local and francophone. Neither should see the other's query data, and the freelancer writing French for the second has no reason to hold the first.

The same applies inside one client when the French work serves two markets. A Quebec audience and a French audience want different things from the same pages — different vocabulary, different competitors, different results — and whoever was hired for one should not inherit the other by default. The per-site sharing model keeps that boundary explicit.

Offboarding is nobody's job and everybody's exposure. Contracts finish; permissions rarely do, because revoking sits third on a list of three. Attach it to the closing invoice. Whatever a collaborator typed into the timeline belongs to the project and stays there.

Billing is by domain, which settles the budget before anything else. AutoSEO runs 149 USD monthly and FullSEO 500 USD — near 205 and 685 in Canadian dollars, a loose conversion rather than a quote. Two languages under a single domain make one campaign. An English site given its own domain years back, for reasons unconnected to search, makes two.

Tags · Making a bilingual portfolio legible

Site tags as a global filter, and why flat beats deep

Site tags filter the entire workspace. That matters more than it first reads: with a tag on, every view you open afterwards is already narrowed, so labelling settles the subject of a report before a single figure in it is read.

Label language first, and label the audience rather than the file. Label the market second: French for Quebec and French for France are separate jobs, and a portfolio that blends the two produces averages nobody can act on.

Tagging schemeExample labelsWhere it stands a year later
Flat, by audience languagefr, enStill correct, understood without explanation
Flat, by marketqc, ca-en, us, euStable; markets change more slowly than teams
Flat, by rolemain, product, careersSurvives a reorganisation; roles belong to the site
Deep, by ownershipstudio / web / fr / client-aWrong the day a client leaves, and wrong silently
Deep, by period2026 / q2 / relaunchAccurate one quarter, misleading the next four

Flatness wins for reasons unrelated to software. Depth bakes in an arrangement — reporting lines, who holds which account — and arrangements shift far more often than the sites themselves. When they shift, nothing breaks. The label simply stops being true and carries on filtering.

A flat label states something about the site: whether it faces French readers, whether it is still current. Facts of that kind outlive a reorganisation, and stacking two or three at reading time covers what a tree would have, minus the upkeep.

  • Tag the audience, not the folder. A French page for buyers in France takes a different label from one for customers in Verdun.
  • Keep the vocabulary short. Six or seven labels. Longer, and the third person to join applies them loosely.
  • Put the legend in the timeline. Two minutes spent recording what each label means, and a new freelancer starts there.
Output · Documents that state their own scope

Exports, limits and what the charts are for

Reports get read by people who were not in the analysis: a founder between meetings, a client, whoever decides whether the retainer continues. Their first question is which part of the business the number covers — in a bilingual portfolio, not rhetorical.

10,000
row ceiling, CSV and JSON
250
row ceiling, exported PDF
50–200
rows shown per page
Live
sync, nothing to press

Treat the caps as guidance about purpose. Ten thousand rows of CSV or JSON hold a complete query dump, which belongs in whatever tool you analyse with. The PDF stops at two hundred and fifty rows and is drawn on the server — not meanness, but a statement that this file is read end to end by a person. Branding, logo and colours matter the moment it leaves your office.

Charts split along the same line. Series over time carry movement; metric cards hold the two or three numbers that belong up front; sortable, filterable tables run at fifty to two hundred rows a page; sparklines give a lone figure its trend; heatmaps break the picture down by country and device. On a French-language property that heatmap governs how everything above it reads, since it exposes how much visibility belongs to a market you cannot sell into.

An untitled report is an argument waiting to happen. A figure with no stated scope is assumed to cover everything. "Queries · French pages · Quebec only · 28 days to 14 April" is an inelegant title and an honest one. Without it, the first ten minutes go to establishing what everyone is reading.

Workers in the background keep everything synchronised, so what you open is current without a refresh — which kills one wearying failure mode, where two colleagues read the same screen a day apart and end up defending incompatible figures. The report builder draws on the same analytics sections.

Frequently asked questions

Can a freelancer working on our French pages see the English site's data?

Not unless you hand them that site. A grant covers one property and goes to an address you name, so somebody hired for the French pages holds the French pages. Widen it later if the work demands; narrowing afterwards is the harder direction.

Which language should we keep the feed in?

Whichever your whole team reads comfortably, used consistently. Choosing badly is not the failure; alternating is, because search then only works for whoever typed the entry.

Does the assistant look things up on the web?

No. It reads what belongs to the project. A router weighs each question and pulls anywhere from none to three blocks: search analytics, rank data, campaign state, material you supplied. Nothing bearing on the question means nothing fetched.

We serve clients in Quebec and clients in France. Can one report cover both?

Technically yes; sensibly no. Those audiences face different rivals and partly different vocabulary, so one average fits neither of them. Label by market, filter, issue two documents. Both come out shorter and both hold up when questioned.

What happens to the history when someone's access ends?

The timeline is the project's, not the person's. Whatever was written while they had access — replies, reports, placements, task states — stays where it was. That is the argument for putting decisions there instead of in a mailbox.

Practice · A week, and its limits

A week in practice, and the part it cannot do

None of this asks for much time. It asks for the same modest amount in the same places, so the record piles up alongside the work instead of competing with it.

WhenWhat happensWhere
Monday, 15 minPromote whatever was parked and is now due; kill the dead itemsTo-do filter
Monday, 10 minCheck the week's new placements and which tree they fedLinks filter
Wednesday, 20 minRun one view under each language label; write down the divergenceSite tags
Thursday, 10 minPut one narrow question to the assistant; log your conclusionStream
Friday, 15 minSend a report whose scope is stated; note the decision it causedReport builder
Month end, 45 minQuery every service name in both languages; find the thin sideSearch box

Call it seventy minutes. It keeps a portfolio in two languages coherent in a way a monthly review does not, because the writing happens while the work happens. Our service pages describe the same rhythm when an outside team owns one of the languages.

Name the human part plainly. Ranking candidate terms by opportunity is something software does well; knowing the studio's announcement lands in October and recruitment can wait until April is not. Diagnosis works the same way. The timeline shows English clicks dropping in week nine. Whether the redesign did it, a rival's new page did it, or a partner quietly pulled a link, you learn by talking to people.

The boundary, stated plainly. Targets and client conversations do not delegate. A panel says what moved and by how much. It holds no view on what a strong year looks like for your firm, nor will it put a flat quarter to a client in the tone that client expects. Reckon on four to eight weeks before movement is measurable, and on doing the explaining. FullSEO adds specialists, developers and writers to the automation; that shifts the hands, not the judgement.

The disputes a shared workspace ends were never strategic ones: who edited what, which version a figure belongs to, whether an item was parked or killed, whether the founder's decision ever reached the person writing in the other language. Across a year those eat more attention than any ranking factor.

To measure the drift between your two sides, load both properties into one workspace and label them by audience. Connect a Google account and open your dashboard — Search Console and Analytics arrive through a single authorisation, the two trees line up next to each other, and an hour is generally enough to see the gap. More of this series sits on our blog.