SEO

Yanlış yerleştirilmiş üçüncü taraf komut dosyalarının tehlikeleri

Kısa bir süre önce ekip üyelerimden birine, onlarla paylaşmak için düşük asılı meyveler bulmaları için yeni bir potansiyel müşteri sitesi teşhis etmelerine yardımcı oluyordum. Bu tür algılamayı uzun zaman önce sorunla ilk karşılaştığımda ekledik.

Yanlış yerleştirilmiş bir SEO etiketi nedir, sorabilirsiniz?

Başlık, meta açıklama, kanonik vb.Gibi çoğu SEO etiketi aittir. HTML KAFASI. HTML BODY'ye yerleştirilirlerse, Google ve diğer arama motorları bunları yok sayar.

Elements sekmesine giderseniz, etiketi içinde SEO etiketlerini bulacaksınız. Ancak, bu etiketlerin 'da olması gerekir!

Böyle bir şey neden oluyor?

Sayfayı GÖRÜNÜM KAYNAĞI kullanarak kontrol edersek, kanonik etiket HTML KAFASININ içine doğru yerleştirilir (satır 56, 139. sıradadır.).

Burada neler oluyor?!

Bu, Google Chrome ile ilgili bir sorun mu?

Kanonik ayrıca Firefox'taki BODY'ye yerleştirildi.

Internet Explorer için de aynı sorunu yaşıyoruz.

Edge bir istisna değildir.

Diğer tarayıcılarda da aynı sorun yaşıyoruz.

Sözdizimi vurgulama ve sözdizimi vurgulama

KAYNAK, ama Öğeler sekmesinde kontrol ettiğimiz zaman değil mi?

Bunu anlamak için, birkaç geliştirici kavramını tanıtmam gerekiyor: sözlüksel analiz ve sözdizimi analizi.

GÖRÜNÜM KAYNAĞI kullanarak bir kaynak sayfa yüklediğimizde , tarayıcı programlama belirteçlerini (HTML etiketleri, HTML yorumları vb.) otomatik olarak renk kodları oluşturur.

bunu yaparsanız, tarayıcı kaynak sayfayı HTML belirteçlerine bölmek için temel sözlük analizleri yapar.

Bu görev genellikle bir lexer tarafından gerçekleştirilir. Basit ve düşük seviyeli bir iştir.

Tüm programlama dili derleyicileri ve tercümanları, kaynak metni dil jetonlarına ayırabilecek bir lexer kullanır.

Kaynak sayfayı Elements sekmesiyle yüklediğimizde, tarayıcı yalnızca sözdizimi vurgulama yapar, ancak aynı zamanda bir DOM ağacı oluşturur.

Bir DOM ağacı oluşturmak için, HTML etiketlerini ve normal metinden yorumları bilmek yeterli değildir, ayrıca bir etiketin ne zaman açılıp kapandığını da bilmeniz gerekir ve

Bu sözdizimsel çözümleme bir ayrıştırıcı gerektirir.

İngilizce bir yazım denetçisinin yazılı metnin benzer, iki aşamalı bir analizini yapması gerekir. Birincisi, metni isimlere, zamirlere, zarflara vb. Dönüştürmelidir. Sonra, konuşma etiketlerinin bir kısmının doğru sırada olduğundan emin olmak için dilbilgisi kurallarını uygulamalıdır.

Ama neden SEO etiketleri HTML gövdesi?

HTML'yi Python'dan ayrıştırma

Hatalı bazı örnek sayfaları getirmek ve ayrıştırmak, HTML'de herhangi bir yerde kanonik bulmak ve bulunduğu DOM yolunu yazdırmak için bir Python betiği yazdım.

HTML Gövdesi'nde yanlış yerleştirilmiş SEO etiketlerini gösteren aynı sayfayı ayrıştırırken bunları HTML kafasına doğru yerleştirilmiş olarak buluyorum.

Ne eksik?

HTML kafasında geçersiz etiketler

Bazı HTML etiketleri yalnızca geçerlidir HTML BODY. Örneğin,

ve etiketleri HTML başlığında geçersiz.

Örneğimizdeki HTML HEAD'a yakından baktığımda, kodlu bir komut dosyası buldum. Bu, komut dosyasının içine yerleştirilmesi gerektiği anlamına gelir, ancak kullanıcı yanlış bir şekilde kafasına yerleştirir.

Belki talimatlar açık değildi, satıcı bu bilgiyi atladı ya da kullanıcı bunu WordPress'te nasıl yapacağını bilmiyordu.

Senaryoyu BODY'ye taşıyarak test ettim ama yine de yanlış yerleştirilmiş kanonik sorunla karşı karşıya kaldım. [19659003] Biraz deneme yanılma işleminden sonra, onu BODY'ye taşıdığımda sorunun kaybolduğu başka bir komut dosyası buldum.

İkinci komut dosyasının sabit kodlu geçersiz etiketi olmasa da, muhtemelen bir veya daha fazla yazı yazıyordu

Başka bir deyişle, dinamik olarak yapıyordu.

Ancak, neden geçersiz etiketler eklemek, tarayıcının kafasındaki HTML'nin geri kalanını vücuda itmesine neden olur?

Web tarayıcısı hataya dayanıklılık

Tartıştığım sorunları içeren birkaç örnek HTML dosyası oluşturdum ve bunları ne olacağını göstermek için Chrome'a ​​yükledim.

İlk örnekte açılış BODY etiketini yorumladım. Bu kaldırır.

Chrome'un otomatik olarak bir tane eklediğini görebilirsiniz.

Şimdi, HTML KAFASINA geçersiz bir

eklersem ne olacağını görelim.

Burası ilginç hale geliyor. Chrome, HTML HEAD'ı erken kapattı ve standart etiketimiz ve

dahil olmak üzere HEAD öğelerinin geri kalanını vücuda itti. Başka bir deyişle, Chrome bir açılış etiketini unuttuğumuzu varsaydı!

HEAD'deki yanlış yerleştirilmiş etiketlerin neden SEO etiketlerimizin BODY'de sonuçlanmasına neden olabileceğini açıklığa kavuşturalım.

Şimdi, kodlanmış geçersiz bir etikete sahip olmadığımız ikinci durumumuza bakalım, ancak bir komut dosyası dinamik olarak bir tane yazabilir Burada, bir komut dosyası HTML kafasına geçersiz bir etiket yazarsa, tarayıcının daha önce olduğu gibi kapatılmasına neden olacağını görürsünüz. Tam olarak aynı sorunumuz var!

Python ayrıştırıcımızla sorunu görmedik çünkü lxml (Python ayrıştırma kütüphanesi) HTML hatalarını düzeltmeye çalışmaz.

Tarayıcılar bunu neden yapıyor?

Tarayıcıların Python betiğimizin yapması gerekmeyen sayfaları oluşturması gerekir. Hataları düzeltmeden önce oluşturmaya çalışırlarsa, sayfalar tamamen bozuk görünecektir.

Web, web tarayıcıları hatalara uymazsa tamamen kırılacak sayfalarla doludur.

HTML5Rocks'tan bu makale büyüleyici bir görünüm sağlar. web tarayıcılarının içinde ve örneklerimizde gördüğümüz davranışın açıklanmasına yardımcı olur.

“HTML5 özelliği bu gereksinimlerin bazılarını tanımlamaktadır. (WebKit, HTML ayrıştırıcı sınıfının başındaki yorumda bunu güzel bir şekilde özetler.)

Maalesef, iyi biçimlendirilmemiş birçok HTML belgesini işlememiz gerekiyor, bu nedenle ayrıştırıcının hatalara karşı toleranslı olması gerekiyor.

En azından aşağıdaki hata koşullarına dikkat etmeliyiz:

Eklenen eleman, bazı dış etiketlerin içinde açıkça yasaklanmıştır. Bu durumda, öğeyi yasaklayana kadar tüm etiketleri kapatmalı ve daha sonra eklemeliyiz.

Lütfen makalenin tamamını okuyun veya en azından “Tarayıcı Hata Toleransı” bölümünü okuduğunuzdan emin olun. “Daha iyi bir bağlam elde etmek için.”

Bunu nasıl düzeltebilirim

Neyse ki, bu sorunu çözmek aslında çok basittir. İki alternatifimiz var. Tembel ve uygun olanı.

Uygun düzeltme, kafasına geçersiz HTML etiketleri ekleyen komut dosyalarını izlemek ve bunları HTML gövdesine taşımaktır.

Tembel ve en hızlı düzeltme tüm SEO etiketlerini ( ve diğer önemli etiketler). Tercihen, etiketini açtıktan hemen sonra.

Bunu nasıl yaptığımı burada görebilirsiniz.

HTML kafasında hala aynı geçersiz etiket ve komut dosyası var ve SEO etiketleri de kafada. [19659003] Bu yaygın bir sorun mu?

Bu sorunun uzun yıllardır meydana geldiğini görüyorum ve Patrick Stox da aynı sorunun kurumsal sitelerde sık sık görüldüğünü bildirdi.

Teknikle ilgili en büyük yanılgılardan biri SEO bir kez yapmak ve bitti. Siteler değişmezse kullanıcılar / geliştiriciler hata yapmadı ve / veya Googlebot davranışı da değişmedi.

Şu an için durum pek de zor değil.

teknik SEO'ların geliştirici becerilerini öğrenmesini umuyorum ve umarım bu vaka çalışması bunun artan önemini göstermektedir.

Bu ipucunu beğendiyseniz, ile ilgili SMX West oturumuma katıldığınızdan emin olun. gelecek ay. Diğer şeylerin yanı sıra, Googlebot ve Bingbot'un burada bahsettiklerim gibi komut dosyası ve HTML sorunlarını nasıl ele aldığı konusunda ileri düzey araştırmaları paylaşacağım. Personel yazarları burada listelenmiştir.


Yazar Hakkında

Hamlet Batista, çevrimiçi perakendeciler ve üreticiler için çevik bir SEO platformu olan RankSense'in CEO'su ve kurucusudur. Yenilikçi SEO teknolojilerinde ABD patentlerini elinde tutuyor, 2002 yılında başarılı bir bağlı kuruluş pazarlamacısı olarak SEO yapmaya başladı ve harika SEO sonuçlarının 6 ay sürmemesi gerektiğine inanıyor. !