← All notes

Notes · · 2 min read

A page is a query, not a template

EmlakAklı publishes district-level housing data for 81 provinces. ToolCompare lists more than 500 software tools by verified starting price. Neither is a template with a name swapped — and that is the only reason they are worth indexing.

Programmatic SEO has a bad reputation because most of it is one page copied across a thousand place names. The page rank is the same, the data is thin, and the only thing that changes is the noun. Search engines have seen it before, and so have readers.

Start with a question

The unit of a useful programmatic page is not a keyword. It is a question someone can finish: what does a square metre cost in this district, and is that number recent? The page has to answer both halves. A number without a date is a rumour, not an answer.

One schema, several page types

ToolCompare publishes category pages, tool pages and head-to-head comparisons. All three are generated from a single product schema. Adding a field once changes every page that needs it. The alternative — three templates drifting apart — produces contradictions that readers notice and search engines eventually punish.

Provenance belongs in the data

EmlakAklı attaches a source and a last-update date to each index value. Where the data is stale, the page says so instead of presenting it as current. That is not decoration. For a housing index, the source and the date are part of the answer, because they tell the reader how much weight the number deserves.

Order by a fact, not a score

ToolCompare sorts by the lowest monthly price verified on the vendor's own page, and does not score products. “Free” means a free plan or tier, not a trial, and that distinction is enforced in the data model rather than left to copywriting. A ranking that a reader can reproduce is worth more than one they have to trust.

The work is in the data

Programmatic pages fail when the data is thin. Eighty-one provinces is not valuable by itself. The value is the quality of each figure, how fresh it is, whether the page can explain where it came from, and whether the filters let someone find their own district. That is a verification workflow, not a volume discount.

The checklist we use before generating a page type is short:

  • One schema that covers every page type we intend to publish
  • A source and a checked date attached to every fact
  • A sort order the reader can verify without trusting us
  • A public explanation of how the data works

If a page cannot answer its question better than the result above it, it should not be generated. The template is the easy part.