Işçiňiz bir zady gurmakdan öň nämeni bilýär

Her kim bir web saýtda bir modeli görkezip biler. Bular her bir sahypa üçin ulanylýan düzgünler, her bir sahypa näme üçin bar, we haýsylary çap etmekden saklaýar, haýsylary bolsa habar berýär.

Aşakdaky her bir düzgün biz işledýän bir saýtda bir waka tarapyndan tölenildi - bir reýting çukury, bir bozuk terjime, bir sahypa öz çeşme koduny görkezdi. Biz iň gowy usuly çaklamaýarys; biz näçe ýalňyşlyklar bolanyny ýazýarys, şonuň üçin siziň saýtyňyzda hem näçe ýalňyşlyklar bolanyny ýazmaýarys.

_Saýlawlar 8 _Ýa 12. Bir böklenç sahypasy sebäbi bilen işgäre gaýtarylýar we ýene synanyşar. Ol çap etmez we soňundan sizi habardar eder.

1. One page, one subject

bloklar çap et

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

Näme üçin: 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

ewatar eder

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

Näme üçin: 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

bloklar çap et

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

Näme üç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

bloklar çap et

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

Näme üçin: 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

bloklar çap et

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

Näme üçin: 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 %}

bloklar çap et

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

Näme üçin: 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

bloklar çap et

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

Näme üçin: 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

bloklar çap et

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

Näme üçin: 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

ewatar eder

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

Näme üçin: 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

ewatar eder

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

Näme üçin: 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

bloklar çap et

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

Näme üçin: 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.

Bu näme üçin bir linter we bir stil rehber däl

Bir düzgün, diňe bir görkezme içinde ýaşaýan bir teklipdir - model, köp wagtlar, ony yzarlaýar we sessizçe, galanyny yzarlamaz, we siz üç aý soňra bir trafik habarynda ony tapýarsyňyz. Şuňa görä, bular kod ýaly işleýär, sahypa ýazylyp we ol işlemäge başlap soň. Bir sahypa bloklama düzgüni bilen hata ederse, sebäbi bilen gaýtarylyp we ýene ýazylýar. Netijesi, her iki tarapda hem kabul edilendedir, sebäbi siz haýsy barlaglary işledilendigini görip bilersiňiz.

Siz buny aýtmana çenli hiç zat indekslenmez

Her bir saýt noindex başlaýar. Öň bellenen ýaly däl, siz tapmak üçin - düzgüne görä linter güýçlendirýär, sebäbi bu saýtlar bir domen paýlaşýar we bir erbet goňşy her kimiň üstüne zyýan ýetirýär. Saýty tapmak üçin, siz setirlerde indekslemegi açyp we ol gyrylmak başlaýar.

Ilki çalşyrmagy boşa çykar