То, что знает ваш работник, прежде чем он что-то строит

Любой может указать модель на сайте. Это правила, которые применяются к каждой странице, почему каждая из них существует, и кто из них не предупреждает о ней, а прекращает ее публикацию.

Каждое правило ниже оплачивалось инцидентом на нашем сайте — ранжировочной обрывке, сломанным переводом, странице, на которой был установлен свой собственный исходный код.

Правила, блокирующие публикацию: 8 В процентах 12. Заблокированная страница передается работнику с объяснением причин, и она пытается снова. Она не публикуется и не предупреждает вас после.

1. One page, one subject

:: публикация блоков

Exactly one <h1>. A descriptive <title> of 15-60 characters.

Почему?: Title is the strongest per-page signal Google has. Google rewrites titles for the SERP most of the time, but the signal it forms from yours still affects ranking, and a generic or duplicated title reads as a quality problem.

2. A description written for a human

Предупреждение

A meta description of 140-158 characters, unique to the page.

Почему?: Description does not rank the page, it decides whether anyone clicks it. Too short wastes the snippet; too long truncates mid-sentence.

3. No shared body text, ever

:: публикация блоков

Every page gets body copy and FAQ answers written for that page. Never a shared template with a noun swapped in.

Почему?: This is the one that costs months. A site we run shipped ~1700 pages on one generic FAQ body and a site-level quality classifier suppressed the whole domain — pages still indexed, ranking gone, no manual action to appeal. Recovery ran on core-update timescale.

4. Absolute canonical, paired with hreflang

:: публикация блоков

Every page self-canonicalises with an absolute URL. Any hreflang cluster ships alongside that canonical, also absolute.

Почему?: Relative hrefs are silently dropped. hreflang without a self-canonical fills the index report with "Duplicate without user-selected canonical" — 56,801 pages on one site we run.

5. Markup may only claim what the page shows

:: публикация блоков

Structured data mirrors the visible text exactly. Schema goes on the page types that earn a rich result, not on everything.

Почему?: Schema is not a general ranking input and not required for AI search -- Google says so directly. Markup that claims a price or a question the page never shows is a violation that can earn a manual action.

6. Django comments are {% comment %}

:: публикация блоков

Never {# #}. Not even on one line.

Почему?: Django's template lexer regex has no DOTALL flag, so {# #} only closes on its own line. A multi-line one renders as visible page text, and if it contains a {% %} substring the lexer treats it as a real tag and every render crashes. Both have happened in production.

7. Positional {0} slots in translatable strings

:: публикация блоков

Any string that will be machine-translated uses {0}, {1} — never {name}.

Почему?: MT engines translate or transliterate the word inside the braces, or drop a brace entirely. A numeric slot has no word to translate and survives intact. This silently broke about 10% of non-English rows on one site before anyone noticed.

8. Nothing is indexable until it is finished

:: публикация блоков

Pages ship noindex. Indexing is a deliberate opt-in by the owner, per site.

Почему?: These sites share a wildcard domain. One spam tenant indexed on that wildcard damages every other tenant on it, and a half-finished page indexed on day one takes months to undo.

9. Build the thing, do not describe the thing

Предупреждение

A page either does something useful or says something specific. A page that only describes a tool is not a page.

Почему?: Thin wrappers around someone else's API are the clearest signal a quality classifier has. Real utility is what survives a core update.

11. Alt text and intrinsic dimensions on every image

Предупреждение

Every <img> has alt text and explicit width/height.

Почему?: Alt text is an accessibility requirement first and an indexing signal second. Missing dimensions cause layout shift, which is a Core Web Vitals failure on mobile — and mobile is what gets indexed.

12. Retired URLs return 410, verified

:: публикация блоков

A removed page returns 410 Gone, confirmed by an actual request after deploy.

Почему?: A 404 lingers as a soft-404 for months; a 410 deindexes cleanly. And per-view dispatch often intercepts the request before the 410-returning view is ever reached, so the check has to be a real HTTP request, not a code read.

Почему это пятно, а не стильное руководство

Правило, которое живет только в инструкции, является предложением: модель следует ему чаще всего, а остальное тихо не происходит, и вы узнаете об этом через три месяца в отчете о движении. Таким образом, они работают как код, после написания страницы и до того, как она включится. Страница, которая не выполняет правило блокировки, передается с объяснением причины и перезаписывается. Результат в любом случае на квитанции, так что вы можете увидеть, какие проверки были проведены.

И ничего не индексируется, пока ты не скажешь

Каждый сайт не начинается с индекса. Не как по умолчанию вы должны обнаружить — как правило, пятно, потому что эти сайты имеют общий домен и один плохой сосед причиняет вред всем на нем. Когда ваш сайт стоит найти, вы включаете индекс в настройках и начинаете ползать.

Запускайте свою первую смену бесплатно.