News:

SMF - Just Installed!

Main Menu

1.1.30

Started by hitsumo, Sep 15, 2026, 03:49 PM

Previous topic - Next topic

hitsumo

# Anime Tracker 1.1.30

**Yayın tarihi:** 2026-08-23

Bu sürüm siteyi arama motorlarına tanıtır — **ve tanıtmaması gereken
kurulumları da açıkça gizler.** İkisi aynı işin iki yüzü olduğu için birlikte
yapıldı.

Şimdiye kadar sayfaların `<head>` bölümünde yalnızca başlık vardı: açıklama
yok, canonical yok, paylaşım etiketi yok. `robots.txt` yoktu, `sitemap.xml`
yoktu. Yani ne arama motoruna "şu sayfalar var" denebiliyordu, ne de "buraya
hiç bakma" denebiliyordu.

## Önce gizlilik: kendi sunucuna kuranlar için

**Kişisel kurulumlar artık arama motorlarına kapalı.** Tek kullanıcılı
(self-host) modda uygulamanın girişi yoktur — bu tasarım gereğidir, sayfayı
açan herkes o tek kullanıcıdır. Uygulamayı kendi sunucusuna kurup kişisel
listesini tutan biri, bugüne kadar hem herkese açık hem de **arama
motorlarında çıkabilir** durumdaydı. Bu bir SEO eksiği değil, gizlilik
kusuruydu.

Artık indeksleme moda bağlı:

| Kurulum | Davranış |
| --- | --- |
| **Tek kullanıcılı (self-host)** | Her sayfa "indeksleme" der; `robots.txt` her şeyi kapatır; `sitemap.xml` yayımlanmaz |
| **Çok kullanıcılı (online)** | Sayfalar indekslenebilir; site haritası yayımlanır |

Yeni bir ayar eklenmedi — karar zaten var olan `MULTI_USER_MODE` anahtarına
bağlandı. Kişisel bir kurulum, sahibi hiçbir kutucuk keşfetmeden kapalı
olmalı. Fikrini değiştiren `config.php`'de o anahtarı `true` yapar.

## Site haritası (`sitemap.xml`)

Yeni bir `sitemap.xml` adresi var ve içeriği her istekte güncel üretilir.
İçine girenler:

- ana liste sayfası, hakkında ve altı yardım sayfası,
- **her anime kaydının detay sayfası**,
- kronoloji işareti olan animelerin **izleme sırası** sayfası,
- her seri için **bir tane** seri kronolojisi sayfası.

Sitemap'in asıl gerekçesi listenin sayfalanması: liste varsayılan olarak
sayfa başına 10 kayıt gösterir, yani katalog büyüdükçe derindeki animelere
bağlantıyla ulaşmak pratikte imkânsızlaşır. Site haritası her kaydı doğrudan
adresiyle bildirir.

**Katalog büyürse harita kendini böler.** 2000 kayıttan sonra tek dosya
yerine bir "harita indeksi" ve parçalar üretilir; bu, arama motorlarının
beklediği standart yapıdır ve otomatik olur.

**+18 işaretli kayıtlar haritada yer almaz.** Detay sayfası onları zaten
tercih arkasında gizliyor; anonim bir ziyaretçi (ve arama motoru) yalnızca
nötr uyarıyı görür. Yer tutucu döndüren bir adresi listelemenin anlamı yok.

## `robots.txt`

Artık var ve moda göre yazılır. Çok kullanıcılı kurulumda ana sayfalar açık
kalır; giriş, kayıt, hesap, düzenleme, yönetim ve "tıklayınca iş yapan"
adresler kapatılır. Site haritasının adresi de burada bildirilir.

Yandex için ayrı bir bölüm var: liste sayfasının sıralama ve filtre
parametreleri `Clean-param` ile bildiriliyor, böylece aynı listenin onlarca
farklı adresi ayrı sayfa sanılmıyor.

## Sayfa başlıklarına eklenen etiketler

Her sayfaya **açıklama**, **canonical** ve **paylaşım etiketleri** (Open
Graph / Twitter kartı) eklendi. Somut karşılığı:

- **Arama sonucunda** başlığın altında artık anlamlı bir açıklama çıkar.
  Anime detay sayfalarında bu açıklama **katalog konusundan** üretilir.
- **Bir bağlantıyı WhatsApp'a, Discord'a ya da bir foruma yapıştırdığında**
  başlık, açıklama ve **poster** görünen bir kart çıkar; çıplak adres değil.

**Kişisel konu metni bu açıklamalara hiç girmez.** Açıklama yalnızca katalog
konusundan üretilir; kişisel konu senin kendi notundur, meta açıklama ise
tüm dünyaya yayımlanır.

### Canonical: aynı içeriğin tek adresi

- **Liste sayfası:** sıralama, filtre, arama ve sayfa numarası
  parametrelerinin hepsi çıplak liste adresini işaret eder.
- **Seri kronolojisi:** bu sayfa aynı seriyi her üyesi için aynı şekilde
  çizer, yani bir sayfanın birden çok adresi olurdu. Artık seri başına tek
  bir adres asıl kabul ediliyor.
- **İzleme sırası:** görünüm modu (yayın sırası / hikâye sırası) adrese
  yazılsa da asıl adres tektir.

### İndekslenmeyen üç sayfa

**Son Güncellenenler**, **İstatistikler** ve **Ne İzlesem?** bilerek arama
sonuçlarının dışında tutuldu: üçü de her ziyarette değişir, istatistikler
zaten tek kişinin listesini anlatır ve "Ne İzlesem?" sürpriz modunda her
istekte başka bir anime döndürür. Bu sayfalardaki bağlantılar yine takip
edilir — tarama emeği detay sayfalarına gitsin diye.

## Küçük ama önemli bir düzeltme

Olmayan bir anime numarasıyla girilen detay sayfası "bulunamadı" yazıyor ama
sunucu **"her şey yolunda" cevabı** veriyordu. Arama motoru bunu "bu sayfa
var" diye okur ve tek satırlık hata metnini içerik sanar. Artık düzgün bir
"bulunamadı" cevabı dönüyor. Ekranda görünen bir değişiklik yok.

## Yapılandırma: `SITE_URL` (isteğe bağlı)

Arama motorları mutlak adres ister; uygulama ise her yerde göreli bağlantı
kullanır. Adres artık isteğin kendisinden kuruluyor, yani **hiçbir şey
yapmana gerek yok** — alt dizine kurulmuş bir uygulama da doğru adresi
üretir.

Tek istisna: uygulama bir ters vekil ya da CDN arkasındaysa, gelen istek
sitenin gerçek adresini söylemeyebilir. O durumda `config.php`'ye
`SITE_URL` yazılabilir. Örnek yapılandırma dosyasında açıklamasıyla birlikte
duruyor, varsayılan olarak kapalı. Eski `config.php` dosyaları hiç
dokunulmadan çalışmaya devam eder.

## Sürümden sonra yapılacak (koddan bağımsız)

Site haritasının bir işe yaraması için arama motorlarına bildirilmesi
gerekir: Google Search Console, Bing Webmaster (aynı kayıt DuckDuckGo,
Ecosia ve Yahoo'yu da kapsar) ve Yandex Webmaster. Üçüne de **aynı** site
haritası adresi verilir; motor başına ayrı dosya gerekmez. Site sahipliği
doğrulaması **DNS TXT kaydıyla** yapılırsa siteye hiçbir dosya eklenmez —
en temiz yol budur.

## Değişen dosyalar

**Yeni:**

```
files/functions/seo_helpers.php
files/sitemap.php
files/robots.php
files/migration/1.1.30/upgrade.sql (yalnızca sürüm damgası)
```

**Değişen:**

```
files/.htaccess                    (/robots.txt ve /sitemap.xml yönlendirmeleri)
files/functions.php                (yeni yardımcı dosyanın yüklenmesi)
files/config_example.php           (isteğe bağlı SITE_URL)
files/index.php                    (meta + canonical)
files/anime_details.php            (meta + canonical + "bulunamadı" cevabı)
files/chronology.php               (meta + canonical)
files/series_timeline.php          (meta + seri başına tek canonical)
files/about.php, files/help.php    (meta + canonical)
files/help/help_basics.php, help_fields.php, help_sync.php,
files/help/help_discovery.php, help_series.php, help_timezone.php
files/recent.php, files/statistics.php, files/recommendations.php
                                   (indekslenmeme etiketi)
files/lang/tr.php, files/lang/en.php  (11'er yeni metin)
files/version.txt
```

## Dağıtım notu

- `files/functions.php` ile `files/functions/seo_helpers.php` **birlikte**
  yüklenmelidir. Yalnızca sayfalar güncellenirse olmayan bir fonksiyon
  çağrılır ve sayfa açılmaz.
- `files/.htaccess` eski kalırsa `/robots.txt` adresi çalışmaz (sunucu `.txt`
  uzantısını topluca engelliyor); `robots.php` ve `sitemap.php` kendi
  adlarıyla yine açılır.
- Dil dosyaları eski kalırsa açıklama metni yerine anahtar adı görünür —
  zararsız ama çirkin.
- Veritabanı şeması değişmedi; merkez katalog sunucusunda elle yapılacak bir
  iş yok.
- **Dağıtım sunucusunda** iki işlevsel adım her zamanki gibi: yayımlanan
  `version.txt` 1.1.30'a çekilmeli — yoksa "Güncelleme Denetle" hâlâ 1.1.29'u
  son sürüm sanar — ve `updates/1.1.30/anime-tracker-1.1.30.zip` paketi
  yayımlanmalı, yoksa "Güncelle" düğmesi indirme adresinde 404 alır.
- Yükledikten sonra bakılacak tek şey: canlı `config.php`'de çok kullanıcılı
  mod açık olmalı, yoksa site kendini arama motorlarına kapatır.