Özel sürüm önizlemesiGerçek ödeme alınmazSürüm ayrıntıları ↗

EN · ÖZGÜN DEPO BELGESİ

Web sitesi SEO yapılandırması

Özgün İngilizce metin. Komutlar ve kanıtlar, belgede belirtilen revizyona ve ortama aittir.

product/site/SEO.md

Bu sayfada

Technical SEO and local indexing policy

No public domain has been selected. The normal local build intentionally uses noindex, follow on every HTML page, contains no guessed canonical origin, and serves an empty XML sitemap. Go repeats noindex in the HTTP header. The service is bound to loopback. No Search Console submission, DNS or public deployment is performed by these build settings.

Build-time settings

scripts/site-settings.mjs is shared by Astro configuration and page metadata. Set environment variables in the process that builds the site:

Setting Default Meaning
SITE_URL unset Chosen HTTPS origin only, without path, port, query or credentials
SITE_INDEXING disabled Set exactly enabled only for the intended public build

With a domain but indexing disabled, canonical/social/dialect metadata remains testable while every page stays noindex and the sitemap stays empty. Enabling indexing without a domain fails the build. Local, IP, .test and .invalid origins are rejected as canonical hosts. No address is inferred from Host headers.

After a domain has actually been selected, use its exact HTTPS origin in SITE_URL; rebuild Astro and restart whichever server snapshots dist. This configures metadata only; the current local account provider and deployment boundary remain local. Domain settings do not enable public account hosting.

Implemented output

  • Page-specific titles and descriptions in Turkish and English, descriptive document summaries, Open Graph and Twitter summary metadata, local SVG favicon.
  • Absolute canonical URLs and reciprocal tr, en, x-default links for the translated public pages. Tracking/query parameters do not enter canonical URLs.
  • / preserves the Turkish homepage and canonicalizes to /tr/. It is omitted from the sitemap as a duplicate.
  • The original reference documents remain English beneath both navigation languages. Their Turkish interface is preserved, but both versions canonicalize to the English document. Only the English document enters the sitemap; no untranslated document is advertised as a Turkish translation.
  • Account, checkout, demo and 404 pages always use noindex; the private operator console uses noindex, nofollow, is unlinked and is never listed in robots.txt. These pages carry no canonical/hreflang/schema suggesting a public document, and never enter the sitemap. Authentication protects the API separately.
  • Visible breadcrumb navigation and matching BreadcrumbList JSON-LD. Homepages describe WebSite; public pages use WebPage or TechArticle. No fabricated ratings, sale offers, reviews or organization details are emitted.
  • /robots.txt permits crawling so crawlers can read noindex. In the public build it names the sitemap; blocking those HTML pages in robots would hide their indexing instruction.
  • /sitemap.xml contains 56 unique canonical public URLs in the configured indexable build. Dates are not fabricated from the time of every build.
  • Go serves XML/text with correct types, real 404 responses (including the direct /404.html URL), slash-normalizing 308 responses preserving queries, and immutable caching for content-hashed Astro assets.
  • Each HTML response receives only its own inline script hashes in CSP. JSON-LD is permitted without unsafe-inline or a site-wide expanding hash header.

Reproduce checks

From product/site:

npm run check
npm run test:unit
npm run build
python scripts/audit-seo.py --report ../../build/seo/local-files.json

To test configured metadata without publishing anything, run in a separate shell using the reserved example domain below, then restore the local build afterwards:

$env:SITE_URL = 'https://seo-validation.example.com'
$env:SITE_INDEXING = 'enabled'
npm run build
python scripts/audit-seo.py --mode indexable --origin https://seo-validation.example.com --report ../../build/seo/indexable-files.json
Remove-Item Env:SITE_URL
Remove-Item Env:SITE_INDEXING
npm run build

The audit reads the actual generated HTML, not just source helpers. It checks titles/descriptions, exactly one H1, language, indexability, canonical and reciprocal language links, social metadata, parsed structured data, sitemap membership, internal links and fragment targets. Add --base http://127.0.0.1:8766 to inspect the running Go site’s status codes, content types, HTTP noindex and all inline-script CSP hashes. Rebuild/restart Go first so it serves the same build being audited. Reports are stored under ignored build/seo.

Evidence and limits

The indexable test build passed 6,850 checks over HTTP on 2026-10-04: 90 HTML pages, 56 sitemap URLs, 4,087 internal links, no failures. Local mode and persistence verification are recorded in ASTRO-BROWSER-QA.md and ../local/README.md. The test domain was used only inside local output.

This verifies technical output. Search rankings, indexing, field Core Web Vitals, Google’s chosen canonical, and rich-result appearance cannot be certified from a private local server. After the actual domain is selected and a public deployment is authorized, those require live HTTP checks, Search Console and field data.

Implementation follows Google’s primary guidance on localized versions, canonical URLs, noindex, sitemaps and structured data.