How we work 10 min read monitoring SEO

Google reviews: replying within the hour — and where we put the brakes

Your company's listing on Google is a shop window you don't control. Other people fill it, at any hour, in any language, and that's what your future customer reads — not your website. The most expensive thing in that window isn't a bad review. It's a review with no reply. And it isn't only about image: the number and quality of your reviews are among the signals Google uses to decide who to show first in local search.

We built a system that watches a Google Business Profile and replies to reviews on the owner's behalf. Here's how it works and, more importantly, where we deliberately put the brakes. Writing a nice sentence is something anyone can do today; the hard part starts when that sentence gets published on someone else's shop window with no one watching.

Silence under a review reads as an answer

A review with no reply isn't neutral. It tells the reader exactly what the author wrote, and adds a line of its own: "They have nothing to say to that." A one-star with a detailed account of the grievance — and silence beneath it — is a finished verdict that stays up for years.

And it does stay up for years. The first time we pulled a client's listing in full instead of skimming the top of it, we found a review that had been waiting for an answer for seven months. Not because the owner was hostile or indifferent, but because Google hadn't put it at the top of the list, nobody scrolled past the first page, and it was simply forgotten. That's the most common case by far: not a refusal to answer, but invisibility.

So the first rule of the system: look at the whole listing rather than what's shown at the top — and keep a separate mechanism that shouts when the checking stops happening.

What the machine does, and what a human does

The machine checks the listing every hour, around the clock. It finds new reviews, notes whether a reply already exists, and counts how long a review has been waiting.

Then comes the fork, and it's a hard one. We only auto-reply to straight five-star reviews. Anything below that — four, three, two, one — the machine doesn't touch at all; it escalates to a human instead. Responding to negative Google reviews is a job of its own, and a human one. The reason is simple: a five-star needs a thank-you, a one-star needs an investigation. Someone has to pull the job record, work out what actually happened, sometimes admit a mistake, sometimes calmly lay out the facts. That is not a job for automation, and pretending otherwise is the fastest way to turn a bad review into a public row.

There's also a hold and a ceiling. The reply doesn't go out instantly: the machine waits about an hour, because you may answer personally, and two voices under one review look absurd. And there's a daily limit — a listing that sprouts ten near-identical thank-yous in one hour looks exactly like what it is: a bot at work.

The main rule is to reply in the language of the review

It sounds like a small courtesy: a Spaniard wrote to you, so answer in Spanish. The real reason is technical, and we saw it on a live listing.

Google itself translates your reply for the reader, and publicly labels which language you answered in. Reply in Russian under a Spanish review and the Spaniard sees a machine translation with a line under it: "Ver original (ruso)" — "See original (Russian)" — Google announcing, on your behalf, that you spoke to this customer in a foreign language. Your original hides behind a link, and the text that reaches the reader is whatever the algorithm made of it — the careful register you chose flattened into something blunter on the way.

So the language of the reply isn't about manners. It's about whether your text survives the trip to the reader in the shape you wrote it. A reply in the language of the review is shown word for word, with no labels at all.

How we nearly lied to ourselves about language detection

Here's the most useful story of the project, and it isn't about pretty copy.

To reply in the language of the review, you have to detect that language. We measured it from the review text — logically enough. Except that for many reviews Google shows its own English translation first, with the original underneath. Our detector honestly counted the whole block and honestly saw English.

The result: twenty-six Spanish reviews sat in the database as English ones. The dashboard showed the wrong language split, and the robot would have answered those people in the wrong language — precisely what the rule existed to prevent.

The fix was to measure the language from the original only, cutting off the platform's translation.

The second temptation sits in exactly the same spot: guessing the language from the author's name. A surname ending looks like a solid signal; we measured it across hundreds of reviews where the language is known for certain — it doesn't hold. And the endings -in, -ina and -ian, which look like a safe bet, catch Martin, Joaquin and Sebastian. A name is a hint, not proof. The proof is the text the person wrote with their own hand.

The lesson is wider than this case and worth taking with you: measure what the person wrote, not what someone else's interface shows you. A platform is entitled to display whatever picture suits it; your conclusions have to stand on primary data.

Eight brakes, all of them failing toward nothing

The text of the reply is composed by a language model. That's the least interesting part of the system — and the most dangerous one to leave unattended.

A model breaks instructions silently. It doesn't report that it ignored a rule; it simply produces a fine-looking text with the rule missing from it. So every rule that matters is duplicated by a check that reads the finished text before publication:

No invented promises — discounts, refunds, callbacks, deadlines. No details the review didn't contain: if the customer never mentioned having their brake pads changed, we don't mention brake pads. The name is only the one the person signed with: transliterating "Alexey" into Cyrillic is fine, swapping it for "Alexander" is not — that's a different human being. No sign-off, no emoji. Length follows the length of the review. A repetition check: if that closing line already sits under a neighboring reply, the text goes back to be rewritten. And a check for worn-out formulas — sentences that sound like a form letter rather than a living person.

The most important part is how the brake behaves when it trips. Not "fix it and publish," but publish nothing. If the text fails a check, we try again next cycle. Staying silent for a cycle or two is cheap. A published piece of nonsense under your own sign only looks free — in reality it's there forever.

How we test the brakes themselves

A brake that has never tripped is indistinguishable from a broken one. So the checks are regularly fed a dozen deliberately spoiled texts: one with an invented discount, one with the wrong name, one with an emoji, and one running four sentences under a two-word review. If any of them gets through, that isn't a reason to be pleased the system is "working quietly" — it's a check that needs fixing. The question to ask of any safeguard isn't "is it silent," but "does it catch things when it should."

We test the model the same way: two different ones are run over the same sample of reviews and compared. That's how a broken name form came out. Ukrainian changes the ending of a name when you address someone, and the cheaper model kept leaving the dictionary form — to a native ear that sounds like being greeted with your own name misspelled, in public, under every five-star review. A single model has nothing to check itself against: it produces confident text, and you hear about the defect from the customer who read it.

Sameness shows even when no two replies are identical

A separate, non-obvious problem. Every reply can be unique and the listing will still read like a template, because they all end with the same construction and open with the same run-up.

The reader doesn't compare two replies side by side. They scroll the feed and catch the rhythm. So the system keeps a list of the openings and closings already spent recently — separately for each language — and requires the model not to repeat them. A regular measurement then shows whether the listing is sliding into sameness, because that slide accumulates quietly and usually stays invisible to us until the customers spot it.

Silence doesn't mean everything is fine

The last one, and it applies to any automation, not just reviews — the same way it applies to round-the-clock monitoring.

One day our collector died: the login to the profile dropped. The scheduled task started dutifully, finished dutifully, and dutifully brought back nothing. The log was quiet. The dashboard was calm. Formally, we went on "monitoring" for another five hours.

A dead collector looks exactly like a healthy one with nothing happening under it. The only way to tell them apart is a separate mechanism that watches not the reviews but the fact that checks are happening: when the last successful collection was, and whether the full sweep of the listing has gone stale. It lives apart from the thing it watches — otherwise whatever broke would switch off its own alarm along with itself.

And it isn't one anecdote but a whole family of them. Google lets only one browser into a profile at a time — and for a while our hourly collection and the full sweep of the listing were scheduled on the same minute. The full sweep lost out every time: it quietly skipped its cycle and exited with a success code, because skipping was meant to be quiet. For two days the dashboard was green while no real full sweep had happened. The cure took two independent moves: separate them in time, and teach the watchdog to measure the age of the full sweep on its own, not just the fact of the last collection.

Another one: the login to the profile drops out roughly every other run even when nothing is wrong with it — Google simply throws the automated browser back to a sign-in form. A naive monitor would shout about that every hour and, within a week, train everyone to ignore it. So the threshold is set to tolerate one miss and shout on the second in a row.

This isn't a neat idea borrowed from a textbook. It's the consequence of specific hours we paid for the hard way.

What we don't do

We don't delete reviews — neither yours nor anyone else's — and we don't promise to. We don't offer customers a free fix in exchange for taking a one-star down: that goes directly against Google's rules and surfaces with a single screenshot of the exchange. And we don't let a machine speak for you where what's needed is your position, not politeness.

What we do instead: we remove the silence. Every review noticed within the hour, every thank-you alive and in the author's own language, every problem on a human's desk the same day rather than seven months later.

If you have a listing on Google and don't know how many reviews on it are currently unanswered — write to us. Counting that is quick, and the number is almost always higher than you expect.

Need help with your IT?

A free audit of your infrastructure — we find the weak spots and show an honest plan. No strings attached.

Free audit