Detect pSEO Placeholder Leaks

Find template variables like {{city}} or [TBD] that leaked into production HTML.

The Problem

Programmatic SEO generates thousands of pages from templates. When a data source is missing or a variable isn’t bound, visitors (and Google) see raw template syntax: {{city_name}}, %PRICE%, or the dreaded [TBD].

Google’s Helpful Content Update penalises thin content at the site level. A handful of leaked placeholders can tank rankings for your entire domain.

The Hard Way

You’d need to crawl every generated page and regex-search the rendered HTML for patterns like {{.*}}, \$\{.*\}, %[A-Z_]+%, [TBD], [TODO], lorem ipsum, and dozens more. At 10k+ pages, this is a multi-hour scripting job that needs to run after every deployment.

The SEODiff Way

One API call. Results in under 2 seconds.

POST https://seodiff.io/api/v1/agent/evaluate

{"urls": ["https://example.com/city/springfield"], "assertions": [{"rule": "no_placeholders"}]}

Code Examples

Copy-paste examples in your preferred language:

cURL

See the full evaluation example in cURL →

Python

See the full evaluation example in Python →

Node.js

See the full evaluation example in Node.js →

Go

See the full evaluation example in Go →

PHP

See the full evaluation example in PHP →

Related Assertions

min_word_count

Prevent thin content by requiring a minimum number of words per page.

contains_string

Verify that specific text appears in the rendered page.

regex_not_match

Ensure a regex pattern does NOT match in the page HTML.

Use in CI/CD

Add this assertion to your deployment pipeline. Works with any CI platform:

🐙 GitHub Actions

Block bad deployments with automated SEO checks in your GitHub Actions CI/CD pipeline.

🦊 GitLab CI

Add automated SEO quality gates to your GitLab CI/CD pipelines.

▲ Vercel

Automatically validate SEO on every Vercel preview deployment before promoting to production.

Start testing in 30 seconds

Get an API key and run your first evaluation with a single cURL command.

Get API Key or Read full API docs