• 25-11-2025, 11:55:49
    #10
    ertunc23 adlı üyeden alıntı: mesajı görüntüle
    Forumda acayip hurafe dönüyor.Bende Yabancı adsansede kayıtlı olan domainleri sildim.4 domain 'de googlede sadece site:domain.com olarak 1 indexi vardı.Türkçe adsanseye 1 hafta sonra onaya gönderdim onay almadı.Arkasına konuları düzenleyip index aldırdım.2 gün sonra bir daha onaya gönderip aynı gün 6 saat sonra onay aldım.Şİmdi yavaş yavaş sıralamada da geri geliyor.Bakın bu domain 2023 martdan beri 1 index ile devam etmiş domainler.Yani bu haliyle bakarsan ceza almış gibi duruyor.Google algoritmasını çözmek zor
    henüz böyle birşey yaşamadım bayadır yaparım hep sıralamadayım index sürekli devam ediyor
  • 25-11-2025, 11:58:53
    #11
    ertunc23 adlı üyeden alıntı: mesajı görüntüle
    Googlede index almak için belirli kritlerler var.İçeriğin yapay zeka mı değil mi diye bakmıyor.Örnek vereyim 50 tane konu açtınız.Her konunun içine Başlık,tag,kategori 'den esinlerek yazıları yapay zeka asistana yazdırdınız.Konu içinde harman olduğu ve aynı kelimeleri en az 4,5 kere yazı içinde kullandığınız için google bot taramasında değersiz içerik olarak okuyacak ve sayfanın index alması için yeşil ışık yakmayacaktır.Oto makale üretiminde bu şekilde bir risk vardır.Fakat siz her konuyu elle yapay zekaya yazdırır ve el ile manuel sitenize eklerseniz google gibi getir yapıp anında index aldığını göreceksiniz.

    Yazınıza kısmen katılıyorum her yapa zeka mutlaka gizli etiket koyuyordur ama arama moturunda index almaya engel olmuyor.Keza resimler içinde geçerlidir.Google resimin orjinalliğine bakmıyor resmin alt tagına,açıklamasına bakıyor.Evet Aİ tarafı resmi okuyabiliyor fakat hala google arama motoru tarafına resim tanı oku gibi bir özelliği kısmen getirdi.Her zaman düşüncem kelin ilacı yine kelde.Google gemininye doğru emirler ile kişisel SEO aracınız haline getirebilir ve bu araç ile çok rahat index alabilirsiniz.

    Gelelim sıralamada yükselmeye aşırı zorlu kelimelerde ai ile yükselirsiz bunu yapan arkadaşlar var.Google hala backlink,sosyal medya gücü ve hite bakıyor.Çoğu aşırı zorlu keliemelerde malesef haclink ile yükselme oluyor.Üzerine sosyal medyadan hit çekiliyor.
    burada bahsettigim seo ile alakali bir konu degil. siralama almak, index aldirmak vs konulari tamamen farkli. benim ozellikle vurguladigim konu, watermark karakterleri sebebiyle ai tarafindan yazilan, genel blog iceriklerinin index alamama veya indexlerin silinmesi konusundaki etki.
  • 25-11-2025, 11:59:06
    #12
    obisa adlı üyeden alıntı: mesajı görüntüle
    henüz böyle birşey yaşamadım bayadır yaparım hep sıralamadayım index sürekli devam ediyor
    Benim siteler kopya konular yüzünden index silinmişti.O zaman ai bu kadar canlı değildi.2018 - 2023 arası her kelimede 1.sayfa 2,3. sıradaydı.Helpful content güncellemesi sonrası 6 ayda indexler sıfırlandı.O günden beri düzelmiyordu bende ai ile tekrardan konuları yeni yeni düzenlemeye başladım.index almayan konular index almaya başladı.
  • 25-11-2025, 14:20:21
    #13
    chatgpt den aldığım içerikleri kontrol ettim gizli bir pattern , watermark vs yok . sizin bulduğunuz bu durum hangi AI tarafından yapılıyor?
  • 25-11-2025, 14:55:05
    #14
    Sceptre adlı üyeden alıntı: mesajı görüntüle
    chatgpt den aldığım içerikleri kontrol ettim gizli bir pattern , watermark vs yok . sizin bulduğunuz bu durum hangi AI tarafından yapılıyor?
    hepsinde var. burada ve burada non-unicode karakterlerin bir kismi listelenmis. basit bir apostrof (') karakterinin bile birden fazla yazilisi var. insan gozuyle hepsi ayni olsa da, bilgisayar dilinde hepsi farkli, buradan yakaliyor google.
    yazinizi test etmek farkli toollar kullanin. her tool, her karakteri yakalayamayabilir. asagida bu isi yapan birkac siteyi listeledim.

    https://www.soscisurvey.de/tools/view-chars.php
    https://originality.ai/blog/invisibl...tector-remover
    https://invisiblecharacterviewer.com/
    https://cleanpaste.site/
    https://www.agenticworkers.com/hidde...acter-detector
    https://www.gptwatermark.com/
  • 25-11-2025, 15:24:01
    #15
    Sceptre adlı üyeden alıntı: mesajı görüntüle
    chatgpt den aldığım içerikleri kontrol ettim gizli bir pattern , watermark vs yok . sizin bulduğunuz bu durum hangi AI tarafından yapılıyor?
    +1

    konu sahibi arkadaş güzel bir şeyler yakalamaya çalışmış ama;

    benim aldığım çıktılarda da unicode olmayan karakter yok.... Evet ' karakteri farklı şekilde gösterilebilir ama ben metin içine ' araması yapıyorum ve buluyor o zaman sorun yok demektir
  • 25-11-2025, 15:35:55
    #16
    import { normalize } from "unicode-normalizer";
    
    const charMap = {
        'A':'A','B':'B','C':'C','D':'D','E':'E','F':'F','G':'G','H':'H','I':'I','J':'J','K':'K','L':'L','M':'M','N':'N','O':'O','P':'P','Q':'Q','R':'R','S':'S','T':'T','U':'U','V':'V','W':'W','X':'X','Y':'Y','Z':'Z',
        'a':'a','b':'b','c':'c','d':'d','e':'e','f':'f','g':'g','h':'h','i':'i','j':'j','k':'k','l':'l','m':'m','n':'n','o':'o','p':'p','q':'q','r':'r','s':'s','t':'t','u':'u','v':'v','w':'w','x':'x','y':'y','z':'z',
        '𝐀':'A','𝐁':'B','𝐂':'C','𝐃':'D','𝐄':'E','𝐅':'F','𝐆':'G','𝐇':'H','𝐈':'I','𝐉':'J','𝐊':'K','𝐋':'L','𝐌':'M','𝐍':'N','𝐎':'O','𝐏':'P','𝐐':'Q','𝐑':'R','𝐒':'S','𝐓':'T','𝐔':'U','𝐕':'V','𝐖':'W','𝐗':'X','𝐘':'Y','𝐙':'Z',
        '𝐚':'a','𝐛':'b','𝐜':'c','𝐝':'d','𝐞':'e','𝐟':'f','𝐠':'g','𝐡':'h','𝐢':'i','𝐣':'j','𝐤':'k','𝐥':'l','𝐦':'m','𝐧':'n','𝐨':'o','𝐩':'p','𝐪':'q','𝐫':'r','𝐬':'s','𝐭':'t','𝐮':'u','𝐯':'v','𝐰':'w','𝐱':'x','𝐲':'y','𝐳':'z'
    };
    
    export function sanitize(text) {
        text = normalize(text, "NFKC");
    
        // CharMap dönüşümü
        text = text.split('').map(c => charMap[c] || c).join('');
    
        // Zero-width / invisible
        text = text.replace(/[\u200B-\u200F\uFEFF]/g, '');
        text = text.replace(/[\u2000-\u200A\u202F]/g, ' ');
    
        // Kontrol karakterleri
        text = text.replace(/[\x00-\x1F\x7F]/g, '');
    
        // Fazla boşluk
        text = text.replace(/\s+/g, ' ').trim();
    
        return text;
    }
    node.js de tüm sitede yer alan içerikleri temizletebilirsiniz böyle db de yer alan, php versiyonuda başka arkadaş yapabilir,

    • Yalnızca standart ASCII ve temel UTF-8 karakterleri kullan.
    • Matematiksel, italik, kalın Unicode veya fullwidth karakterler kullanma.
    • Zero-width, hair space, thin space veya standart olmayan boşlukları kaldır.
    • Her karakter temiz olmalı ve NFKC ile tamamen normalleştirilebilir olmalı.
    • Çıktı okunabilir, sansasyonel ve tabloid gazete gibi çarpıcı olmalı.
    • Şiirsel, akademik veya aşırı resmi üsluptan kaçın.
    • İçerik konusu : r10.net nasıl bir site bana detaylı anlatır mısın?

    bu promptla bir deneyin bakalım halen veriyor mu birlikte test edelim
  • 25-11-2025, 16:07:11
    #17
    ben biraz daha takintili davrandim, daha detayli bir class yazdim laravel icin.
    <?php
    namespace App\Services;
    
    use Illuminate\Support\Facades\Log;
    
    class ContentSanitizer
    {
        /**
         * ana temizleme metodu - agresif yaklasim
         */
        public static function sanitize(string $content): string
        {
            // control karakterleri temizle (newline/tab/space haric)
            $content = preg_replace('/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F]/u', '', $content);
    
            // kapsamli zero-width ve gorunmez karakter temizligi
            $content = self::removeInvisibleCharacters($content);
    
            // format karakterleri (direction marks, vb.)
            $content = self::removeFormatCharacters($content);
    
            // mathematical alphanumeric variants (A vs 𝐀 vs 𝐴 vs 𝑨)
            $content = self::normalizeMathematicalAlphanumerics($content);
    
            // fullwidth/halfwidth karakter normalizasyonu (A → A)
            $content = self::normalizeFullwidthCharacters($content);
    
            // exotic bosluklari temizle
            $content = self::normalizeSpaces($content);
    
            // em-dash ve en-dash temizligi
            $content = str_replace(['—', '–'], '-', $content);
    
            // fancy quoteslari normal quotesa cevir
            $content = str_replace(['\'', '\'', '"', '"'], ["'", "'", '"', '"'], $content);
    
            // ardisik bosluklari temizle
            $content = preg_replace('/[ \t]+/', ' ', $content);
            $content = preg_replace('/\n{3,}/', "\n\n", $content);
    
            // basta ve sonda bosluk kalmasin
            $content = trim($content);
    
            return $content;
        }
    
        /**
         * xero-width ve gorunmez karakterleri temizle. unicode ranges: U+200B - U+200F, U+202A - U+202E, U+FEFF, vs.
         */
        private static function removeInvisibleCharacters(string $content): string
        {
            // zero-width characters
            $patterns = [
                '/\x{200B}/u',  // zero-width space
                '/\x{200C}/u',  // zero-width non-joiner
                '/\x{200D}/u',  // zero-width joiner
                '/\x{200E}/u',  // left-to-right mark
                '/\x{200F}/u',  // right-to-left mark
                '/\x{202A}/u',  // left-to-right embedding
                '/\x{202B}/u',  // right-to-left embedding
                '/\x{202C}/u',  // Pop directional formatting
                '/\x{202D}/u',  // left-to-right override
                '/\x{202E}/u',  // right-to-left override
                '/\x{2060}/u',  // word joiner
                '/\x{2061}/u',  // function application
                '/\x{2062}/u',  // invisible times
                '/\x{2063}/u',  // invisible separator
                '/\x{2064}/u',  // invisible plus
                '/\x{206A}/u',  // inhibit symmetric swapping
                '/\x{206B}/u',  // activate symmetric swapping
                '/\x{206C}/u',  // inhibit arabic form shaping
                '/\x{206D}/u',  // activate arabic form shaping
                '/\x{206E}/u',  // national digit shapes
                '/\x{206F}/u',  // nominal digit shapes
                '/\x{FEFF}/u',  // zero-width no-break space (BOM)
                '/\x{FFF9}/u',  // interlinear annotation anchor
                '/\x{FFFA}/u',  // interlinear annotation separator
                '/\x{FFFB}/u',  // interlinear annotation terminator
                '/\x{180E}/u',  // mongolian vowel separator
                '/\x{061C}/u',  // arabic letter mark
                '/\x{17B4}/u',  // khmer vowel inherent Aq
                '/\x{17B5}/u',  // khmer vowel inherent Aa
            ];
    
            foreach ($patterns as $pattern) {
                $content = preg_replace($pattern, '', $content);
            }
    
            return $content;
        }
    
        /**
         * format karakterlerinide temizle
         */
        private static function removeFormatCharacters(string $content): string
        {
            // unicode category: Cf (format characters)
            $content = preg_replace('/\p{Cf}/u', '', $content);
    
            return $content;
        }
    
        /**
         * mathematical alphanumeric symbols normalize et
         */
        private static function normalizeMathematicalAlphanumerics(string $content): string
        {
            // mathematical bold (𝐀-𝐙, 𝐚-𝐳, 𝟎-𝟗)
            $content = preg_replace('/[\x{1D400}-\x{1D7FF}]/u', '', $content);
    
            // Circled, squared, parenthesized variants
            $content = preg_replace('/[\x{2460}-\x{24FF}]/u', '', $content); // enclosed alphanumerics
            $content = preg_replace('/[\x{1F100}-\x{1F1FF}]/u', '', $content); // enclosed alphanumeric supplement
    
            return $content;
        }
    
        /**
         * fullwidth ve halfwidth karakterleri normalize et
         */
        private static function normalizeFullwidthCharacters(string $content): string
        {
            // fullwidth ascii variants (U+FF00 - U+FFEF). bunlari normal ascii'ye cevirmek yerine kaldiralim (potansiyel watermark)
            $content = preg_replace('/[\x{FF00}-\x{FFEF}]/u', '', $content);
    
            return $content;
        }
    
        /**
         * exotic space karakteleri normal space cevir
         */
        private static function normalizeSpaces(string $content): string
        {
            $exoticSpaces = [
                '\x{00A0}',  // non-breaking space
                '\x{1680}',  // ogham space mark
                '\x{2000}',  // nn quad
                '\x{2001}',  // mm quad
                '\x{2002}',  // nn space
                '\x{2003}',  // mm space
                '\x{2004}',  // three-per-em space
                '\x{2005}',  // four-per-em space
                '\x{2006}',  // six-per-em space
                '\x{2007}',  // figure space
                '\x{2008}',  // punctuation space
                '\x{2009}',  // thin space
                '\x{200A}',  // hair space
                '\x{202F}',  // narrow no-break space
                '\x{205F}',  // medium mathematical space
                '\x{3000}',  // ideographic space
            ];
    
            foreach ($exoticSpaces as $space) {
                $content = preg_replace('/' . $space . '/u', ' ', $content);
            }
    
            return $content;
        }
    
        /**
         * icerik kalite kontrolu
         */
        public static function validate(string $content): array
        {
            $issues = [];
    
            // kelime sayisi kontrolu
            $wordCount = str_word_count($content);
            if ($wordCount < 100) {
                $issues[] = "Content too short: {$wordCount} words (minimum 150 expected)";
            } elseif ($wordCount > 250) {
                $issues[] = "Content too long: {$wordCount} words (maximum 200 expected)";
            }
    
            // em-dash kontrolu
            $emDashCount = substr_count($content, '—') + substr_count($content, '–');
            if ($emDashCount > 2) {
                $issues[] = "Too many em-dashes: {$emDashCount} (maximum 2 allowed)";
            }
    
            // cumle uzunlugu kontrolu
            $sentences = preg_split('/[.!?]+/', $content, -1, PREG_SPLIT_NO_EMPTY);
            foreach ($sentences as $index => $sentence) {
                $words = str_word_count(trim($sentence));
                if ($words > 25) {
                    $preview = substr(trim($sentence), 0, 50) . '...';
                    $issues[] = "Sentence #{$index} too long: {$words} words - \"{$preview}\"";
                }
            }
    
            // generic llm pattern kontrolu
            $genericPatterns = [
                'it is important to note',
                'it\'s important to note',
                'furthermore',
                'moreover',
                'in conclusion',
                'to summarize',
                'in summary',
                'as previously mentioned',
                'it should be noted',
                'one should consider',
                'it\'s worth noting',
            ];
    
            $contentLower = strtolower($content);
            foreach ($genericPatterns as $pattern) {
                if (stripos($contentLower, $pattern) !== false) {
                    $issues[] = "Generic AI phrase detected: \"{$pattern}\"";
                }
            }
    
            // ellipsis kontrolu
            $ellipsisCount = substr_count($content, '…') + substr_count($content, '...');
            if ($ellipsisCount > 2) {
                $issues[] = "Too many ellipsis: {$ellipsisCount} (use sparingly)";
            }
    
            return $issues;
        }
    
        /**
         * sanitize ve validate'i birlikte calistir
         */
        public static function sanitizeAndValidate(string $content, ?string $entityId = null): array
        {
            $original = $content;
            $sanitized = self::sanitize($content);
            $issues = self::validate($sanitized);
    
            // karakter degisikliklerini logla. bak bakalim ne kadar degisiklik yapmisiz.
            $removedChars = strlen($original) - strlen($sanitized);
            if ($removedChars > 0) {
                Log::info('Hidden characters removed from content', [
                    'entity_id' => $entityId,
                    'removed_char_count' => $removedChars,
                    'original_length' => strlen($original),
                    'sanitized_length' => strlen($sanitized),
                ]);
            }
    
            if (!empty($issues)) {
                Log::warning('Content quality issues detected', [
                    'entity_id' => $entityId,
                    'issues' => $issues,
                    'word_count' => str_word_count($sanitized),
                ]);
            }
    
            return [
                'content' => $sanitized,
                'issues' => $issues,
                'word_count' => str_word_count($sanitized),
                'removed_chars' => $removedChars,
            ];
        }
    }
    
    // kullanmak icin
    $sanitized = ContentSanitizer::sanitizeAndValidate($trim_content, $entity->id);
    $content = $sanitized['content'];
    artik tertemiz bir content var elimizde.
  • 25-11-2025, 17:39:10
    #18
    Analog adlı üyeden alıntı: mesajı görüntüle
    hepsinde var. burada ve burada non-unicode karakterlerin bir kismi listelenmis. basit bir apostrof (') karakterinin bile birden fazla yazilisi var. insan gozuyle hepsi ayni olsa da, bilgisayar dilinde hepsi farkli, buradan yakaliyor google.
    yazinizi test etmek farkli toollar kullanin. her tool, her karakteri yakalayamayabilir. asagida bu isi yapan birkac siteyi listeledim.

    https://www.soscisurvey.de/tools/view-chars.php
    https://originality.ai/blog/invisibl...tector-remover
    https://invisiblecharacterviewer.com/
    https://cleanpaste.site/
    https://www.agenticworkers.com/hidde...acter-detector
    https://www.gptwatermark.com/

    Verdiğiniz araçların hiçbirinde gizli karakter görünmüyor