Case Study — First-Party Project

Diagnosing and reversing a Google scaled-content suppression on a three-month-old site

This is not a client project. It happened to our own programmatic real estate platform, thailandproperty.org. We are publishing the forensics while the recovery is still in progress — impressions have been climbing since late June 2026, and we will update this page with August data. No inflated numbers, no victory lap.

01

Algorithmic suppression hit
Apr 15

Algorithmic suppression hit

02

Workflows audited line-by-line
5

Workflows audited line-by-line

03

Factual claims now source-gated
100%

Factual claims now source-gated

04

Impressions began climbing
Late Jun

Impressions began climbing

The setup

thailandproperty.org is a programmatic SEO platform covering residential real estate in Phuket and Koh Samui, monetized by passing qualified buyer leads to local brokers. The stack: Next.js on Vercel, structured listing data in a private repository, publishing via commit-triggered rebuilds. Content is produced by a pipeline of five n8n workflows with multi-model LLM generation, backed by Postgres and a vector store.

The domain was registered on March 19, 2026. Because it is our own asset — our money, our risk — we can show the parts of this story that client NDAs normally keep off the record.

The hit

Around April 15, organic visibility collapsed. The signature in Search Console was specific and worth memorizing: pages remained indexed, Googlebot kept crawling on schedule, and there was no manual action — yet impressions flatlined at effectively zero. We classified it as an algorithmic suppression consistent with Google's scaled content abuse policy.

The distinction matters. A manual action comes with a notice and a reconsideration path. An algorithmic suppression comes with nothing — no message, no checklist, no appeal. The only way out is your own forensics.

The forensics

We audited the published pages the way we would audit a client's site — assuming nothing, reading the actual markup. The findings were uncomfortable and instructive:

  • Development placeholders shipped to production. Specification fields on live pages contained values like "VERIFY WITH DEVELOPER" and "TBC" — a literal, machine-readable admission of unreviewed auto-generated content.
  • Fabricated data points. Rental yield figures appeared on pages that existed in no source document — invented by one of the models in our multi-model stack. On money-adjacent content, that is a YMYL violation, full stop.
  • Legally hazardous advice. Pages recommended a company-ownership structure that is not a legal route for foreign buyers in Thailand. We traced it back and found it prescribed directly in an agent prompt.
  • Instruction vocabulary leaking into public copy. Fragments of internal model instructions and audit-style phrasing were visible in published text.
  • Missing structured data and disclaimers. No valid JSON-LD on listing pages, and none of the disclaimers that local regulation reasonably expects.

Root causes in the pipeline

On June 10 we performed a line-by-line audit of all five workflows. Every content symptom traced back to a pipeline cause:

  • An agent prompt literally instructed the model to recommend the illegal ownership scheme.
  • The research agent generated project names and prices from a hardcoded matrix instead of source documents — hallucination by design.
  • File updates to the repository were silently failing, while the pipeline kept notifying the Indexing API about "fresh" content. Google was being told pages had changed when they had not — an illusion of freshness.
  • Credentials sat in plaintext inside a workflow export. Not a ranking factor — but a fair measure of the process debt that produced the rest.

The rebuild

The remediation was not a content patch — it was a pipeline redesign:

  • A hard validation gate before publishing: no page ships unless every factual claim carries a reference to a source span. Unsourced claims block the deploy.
  • Rewritten agent prompts with the hazardous instructions removed and legal constraints made explicit.
  • Idempotent data handling: stable keys per source URL, content hashing for change detection, deterministic vector IDs — re-runs can no longer duplicate or silently desync content.
  • A CI sweep that scans the built site for residual signals of the old generation patterns before anything reaches production.

The turn

Remediation was complete before the May core update finished rolling out in late June. The domain crossed the three-month mark on June 19. In the last days of June, impressions began to climb for the first time since the suppression.

The six-month Search Console snapshot as of July 5: 190 impressions, 4 clicks, 2.1% CTR, average position 19.9 — with a clear upward inflection in the final data points. We publish these small absolute numbers deliberately. A three-month-old site does not have big numbers; what it has is a trajectory, and trajectories are what an honest case study reports.

Our reading of why it turned, stated carefully: two factors coincided. First, sites cleaned up before a core update finishes rolling out are often reassessed on the tail of the wave — our remediation landed inside that window. Second, the domain crossed the three-month threshold, an empirical pattern we have observed repeatedly, though Google documents no such rule. We do not claim the site has recovered. We claim the trajectory reversed after the cleanup — and this page will be updated with August data either way.

What this means for your site

If your organic traffic died and Search Console shows no manual action, you are likely looking at the same class of problem — and no one is going to send you a checklist. What we look for first, because we found it on our own site: placeholders and template fragments shipped to production, factual claims with no source behind them, instruction vocabulary leaking into copy, and publish pipelines that signal freshness they do not deliver.

This is now the exact forensic audit we run on client sites — built from the inside of a suppression, not from a blog post about one.

Traffic gone without a manual action?

Book a strategic audit. We will tell you what we find — even if it is uncomfortable.