Meta veri

Belge yapısı bölümünde, bir HTML dokümanının <head> bölümünde (neredeyse) her zaman karşılaştığınız bileşenler hakkında bilgi edindiniz. <title>, <link>, <script>, <style> ve daha az kullanılan <base> dahil olmak üzere <head> içindeki her şey aslında "meta veri" olsa da meta veriler için bu diğer öğelerle temsil edilemeyen bir <meta> etiketi vardır.

Spesifikasyon birkaç meta türü içerir ve herhangi bir resmi spesifikasyonda yer almayan, uygulama tarafından desteklenen çok sayıda başka meta tür de mevcuttur. Bu bölümde spesifikasyonlarda yer alan özellikler ve değerler, bazı yaygın meta adlar ve içerik değerleri ile arama motoru optimizasyonu, sosyal medya yayını ve kullanıcı deneyimi için son derece yararlı olan birkaç meta türü ele alacağız. Bunlar, WHEREWG veya W3C tarafından resmi olarak tanımlanmamıştır.

Zorunlu <meta> etiketleri, yeniden ziyaret edildi

Önceden ele alınmış iki gerekli <meta> etiketine (karakter grubu bildirimi ve viewport meta etiketi) tekrar göz atalım ve süreçteki <meta> etiketini daha iyi anlayalım.

<meta> öğesinin charset özelliği benzersiz bir şekilde ortaya çıktı. İlk başta karakter kümesi meta verileri <meta http-equiv="Content-Type" content="text/html; charset=<characterset>" /> olarak yazılmıştı, ancak çok sayıda geliştirici content özelliğini content="text/html" charset="<characterset>" olarak yanlış yazdı ve tarayıcılar özellik olarak karakter kümesini desteklemeye başladı. Artık HTML yaşam standardında <meta charset="<charset>" /> olarak standart hale getirilmiştir. Burada, HTML için <charset> büyük/küçük harfe duyarlı olmayan "utf-8" dizesidir. ,

Orijinal karakter kümesi meta bildiriminin http-equiv özelliğini eklemek için kullanıldığını fark etmiş olabilirsiniz. Meta etiket temel olarak HTTP üstbilgisinde ayarlanabilecek değeri kopyaladığından, "http-equivalent"in kısaltmasıdır. charset istisnasının dışında, WHEREWG HTML spesifikasyonunda tanımlanan diğer tüm meta etiketler http-equiv veya name özelliğini içerir.

Resmi olarak tanımlanmış meta etiketler

İki ana meta etiket türü vardır: önceden sahip olduğunuz karakter kümesi meta etiketi gibi http-equiv özelliğine sahip pragma yönergeleri ve doküman yapısı bölümünde ele aldığımız name özelliğini içeren görüntü alanı meta etiketi gibi adlandırılmış meta türler. Hem name hem de http-equiv meta türleri, listelenen meta veri türü için içeriği tanımlayan content özelliğini içermelidir.

Pragma yönergeleri

http-equiv özelliğinin değeri olarak bir pragma yönergesi vardır. Bu yönergeler, sayfanın nasıl ayrıştırılması gerektiğini açıklar. Desteklenen http-equiv değerleri, HTTP üstbilgilerini doğrudan ayarlayamadığınızda ayar yönergelerini etkinleştirir.

Spesifikasyonda yedi pragma yönergesi tanımlanır. Bunların çoğu, ayarlanması için başka yöntemler kullanır. Örneğin, <meta http-equiv="content-language" content="en-us" /> ile bir dil yönergesi ekleyebilirsiniz ancak bunun yerine kullanılması gereken HTML öğesinde lang özelliğinin kullanılması konusunu daha önce ele almıştık.

En yaygın pragma yönergesi refresh yönergesidir.

<meta http-equiv="refresh" content="60; https://machinelearningworkshop.com/regTimeout" />

Bir yönergeyi, content özelliğinde ayarlanan saniye sayısı aralığında yenilenecek ve hatta farklı bir URL'ye yönlendirecek şekilde ayarlayabilirsiniz. Ancak bu tavsiye edilmez. Kullanıcının açık bir isteği olmadan içeriğin yenilenmesi ve yönlendirilmesi, kullanılabilirliği olumsuz etkiler ve erişilebilirliği olumsuz etkiler. Bir paragrafın ortasındayken sayfa sıfırlandığında hoşunuza gitmiyor mu? Bilişsel veya görme sorunları yaşadığınızı hayal edin. Yönlendirme ile yenileme ayarlayacaksanız kullanıcının sayfayı okumak için yeterli zamanı, işlemi hızlandırmak için bir bağlantı ve uygunsa "saati durdur" düğmesi olduğundan emin olun ve yönlendirmenin gerçekleşmesini önler.

Bu metin, ziyaretçilerimizi rahatsız etmek dışında bir kullanıcı oturumunu zaman aşımına uğratmak için bir neden olmadığından sitemize dahil edilmeyecektir.

En yararlı pragma yönergesi, mevcut doküman için içerik politikası tanımlamayı sağlayan content-security-policy öğesidir. İçerik politikaları çoğunlukla, siteler arası komut dosyası çalıştırma saldırılarına karşı korunmaya yardımcı olan izin verilen sunucu kaynaklarını ve komut dosyası uç noktalarını belirtir.

<meta http-equiv="content-security-policy" content="default-src https:" />

HTTP üstbilgilerini değiştirme erişiminiz yoksa (veya erişiminiz varsa) content-security-policy yönergeleri için boşlukla ayrılmış içerik değerlerinin listesini burada bulabilirsiniz.

Adlandırılmış meta etiketler

Genellikle adlandırılmış meta verileri eklersiniz. name özelliğini ekleyin. Özellik değeri meta verinin adıdır. Pragma yönergelerinde olduğu gibi content özelliği gereklidir.

name özelliği, meta verinin adıdır. viewport öğesine ek olarak description ve theme-color öğelerini de dahil edebilirsiniz ancak keywords parametresini dahil edemezsiniz.

Anahtar kelimeler

Arama motoru optimizasyonu yılan yağı satış görevlileri, anahtar kelime meta etiketini alakalı anahtar terimler listeleri yerine virgülle ayrılmış spam kelime listeleriyle doldurarak kötüye kullanmıştır. Bu nedenle, arama motorları bu meta verileri artık yararlı bulmamaktadır. Bunları eklemek için zaman, emek veya bayt harcamanız gerekmez.

Açıklama

Bununla birlikte description değeri SEO için yararlıdır: Açıklama içeriği değeri genellikle arama motorlarının arama sonuçlarında sayfa başlığının altında görüntülediği değerdir. Firefox ve Opera gibi bazı tarayıcılar, bunu yer işareti koyulan sayfaların varsayılan açıklaması olarak kullanır. Açıklama, sayfa içeriğinin kısa ve doğru bir özeti olmalıdır.

<meta name="description"
  content="Register for a machine learning workshop at our school for machines who can't learn good and want to do other stuff good too" />

Açıklamamızın ikinci yarısı size anlamlı gelmediyse Zoolander filmini muhtemelen izlememişsinizdir.

Robotlar

Sitenizin arama motorları tarafından dizine eklenmesini istemiyorsanız bunu bildirebilirsiniz. <meta name="robots" content="noindex, nofollow" />, botlara siteyi dizine eklememelerini ve hiçbir bağlantıyı takip etmemelerini söyler. Bot'lar isteği dinlemelidir ancak isteği dikkate almalarını gerektiren bir yasa yoktur. HTTP başlıkları aksini belirtmedikçe sitenin ve aşağıdaki bağlantıların dizine eklenmesini istemek için <meta name="robots" content="index, follow" /> öğesini eklemeniz gerekmez. Varsayılan değer budur.

<meta name="robots" content="index, follow" />

Tema rengi

theme-color değeri, tarayıcı arayüzünü özelleştirmek için bir renk tanımlamanıza olanak tanır. Content özelliğindeki renk değeri, tarayıcıları ve işletim sistemlerini desteklemek için kullanılır. Böylece başlık çubuğu, sekme çubuğu veya diğer Chrome bileşenlerinin renklendirilmesini destekleyen kullanıcı aracıları için önerilen bir renk önerebilirsiniz. Bu meta etiket, özellikle progresif web uygulamaları için yararlıdır. Ancak PWA'nın gerektirdiği bir manifest dosyasını ekliyorsanız bunun yerine tema rengini buraya ekleyebilirsiniz. Ancak bu rengin HTML'de tanımlanması, rengin oluşturulmadan önce hemen bulunmasını sağlar. Bu, ilk yüklemede manifesti beklemeye göre daha hızlı olabilir.

Tema rengini sitemizin arka plan renginin mavi tonuna ayarlamak için şunları ekleyin:

<meta name="theme-color" content="#226DAA" />

Tema rengi meta etiketi, medya sorgularına göre farklı tema renklerinin ayarlanmasını sağlayan bir media özelliği içerebilir. media özelliği yalnızca bu meta etikete eklenebilir ve diğer tüm meta etiketlerde yoksayılır.

Birkaç name meta değeri daha vardır, ancak bahsettiğimiz meta değerler en yaygın değerlerdir. Farklı medya sorguları için farklı theme-color değerleri beyan etmek dışında, her meta etiketten yalnızca birini ekleyin. Eski tarayıcıları desteklemek için birden fazla meta etiket türü eklemeniz gerekiyorsa kullanıcı aracıları bir eşleşme bulana kadar birbirini izleyen kuralları okuduğundan eski değerler yeni değerlerden sonra gelmelidir.

Grafik Aç

Open Graph ve benzer meta etiket protokolleri; Twitter, LinkedIn ve Facebook gibi sosyal medya sitelerinin içeriğinize yönelik bağlantıları nasıl görüntüleyeceğini kontrol etmek için kullanılabilir. Dahil edilmezse sosyal medya siteleri sayfanızın başlığını ve açıklama meta etiketindeki açıklamayı doğru bir şekilde alır. Açıklama meta etiketinden alınan bilgiler, arama motorlarının sunacağı bilgilerin aynısı olur, ancak sitenize bir bağlantı yayınlandığında kullanıcıların ne görmesini istediğinizi kasıtlı olarak belirleyebilirsiniz.

Facebook veya Twitter'da MachineLearningWorkshop.com veya web.dev adresine bağlantı yayınladığınızda resim, site başlığı ve site açıklaması içeren bir kart görüntülenir. Kartın tamamı, sağladığınız URL için bir köprü görevi görür.

Open Graph meta etiketlerinin her biri iki özelliğe sahiptir: name özelliği yerine property özelliği ve bu özelliğin içeriği veya değeri. property özelliği, resmi spesifikasyonlarda tanımlanmamıştır ancak Open Graph protokolünü destekleyen uygulamalar tarafından yaygın şekilde desteklenmektedir. "Yeni" koleksiyonu oluşturuluyor property gibi özellikler, protokolün özelliği için oluşturulan özellik değerlerinin, name veya http-equiv özelliklerinin gelecekteki değerleriyle çakışmamasını sağlar.

Facebook medya kartı oluşturun:

<meta property="og:title" content="Machine Learning Workshop" />
<meta property="og:description" content="School for Machines Who Can't Learn Good and Want to Do Other Stuff Good Too" />
<meta property="og:image" content="http://www.machinelearningworkshop.com/image/all.png" />
<meta property="og:image:alt" content="Black and white line drawing of refrigerator, french door refrigerator, range, washer, fan, microwave, vaccuum, space heater and air conditioner" />

Görüntülemek için yayınınızın başlığını ekleyin. Bu başlık genellikle resmin altında ve açıklamanın üstünde görüntülenir. Açıklama, yayınınızı özetleyen en fazla üç cümleden oluşmalıdır. Bu başlık, og:title içinde tanımlanan başlıktan sonra gösterilir. https:// protokolü dahil olmak üzere, gösterilmesini istediğiniz banner resminin mutlak URL'sini girin. HTML'ye bir resim eklerken, resim başka bir yerde görünecek olsa bile her zaman resim için alternatif bir metin açıklaması ekleyin. Open Graph sosyal medya kartlarında alt öğesini, og:image:alt özelliğinin içerik değeri olarak tanımlayın. Ayrıca og:url ile standart URL de ekleyebilirsiniz.

Makine Öğrenimi Atölyesi için Facebook kartı.

Bu meta etiketlerin tümü Open Graph protokolünde tanımlanmıştır. Değerler, üçüncü taraf web uygulamasının görüntülemesini istediğiniz içerik olmalıdır.

Diğer sosyal medyalar, Twitter kartı işaretlemesi gibi kendi benzer söz dizimlerine sahiptir. Böylece, bağlantının göründüğü yere göre farklı bir deneyim sunabilir veya URL'nin sonuna bir parametre ekleyerek bağlantı izlemeyi etkinleştirebilirsiniz.

<meta name="twitter:title" content="Machine Learning Workshop" />
<meta name="twitter:description" content="School for machines who can't learn good and want to do other stuff good too" />
<meta name="twitter:url" content="https://www.machinelearningworkshop.com/?src=twitter" />
<meta name="twitter:image:src" content="http://www.machinelearningworkshop.com/image/all.png" />
<meta name="twitter:image:alt" content="27 different home appliances" />
<meta name="twitter:creator" content="@estellevw" />
<meta name="twitter:site" content="@perfmattersconf" />

Twitter'ın örneğinde, name özelliğinin değerinin gelecekteki spesifikasyonlarla çakışmayacağından emin olmak için Twitter kart verileri için Open Graph'teki property özelliği gibi yeni bir özellik kullanmak yerine tüm ad değerlerinin başında twitter: bulunur.

Sosyal medya kartınızın Twitter ve Facebook'ta nasıl görüneceğini görebilirsiniz.

Makine Öğrenimi Atölyesi için Twitter kartı

Farklı sosyal medya siteleri veya farklı bağlantı parametreleri için farklı kart resimleri, başlıklar ve açıklamalar kullanabilirsiniz. Örneğin, https://perfmattersconf.com, URL'nin parametresine bağlı olarak og:image, og:title ve og:description için farklı değerler belirler.

Konferans konuşmacısını gösteren bir kart.

Farklı bir konuşmacıyla ilgili ayrıntıların yer aldığı aynı kart.

Twitter'ın Kart Doğrulayıcı aracına https://perfmattersconf.com?name=erica ve https://perfmattersconf.com?name=melanie girerseniz bu iki farklı kartı görürsünüz; aynı konferans ana sayfasına bağlantı vermelerine rağmen farklı içerik sağladık.

Diğer yararlı meta bilgiler

Bir kullanıcı sitenizi yer işaretlerine eklerse, ana ekranına eklerse veya siteniz progresif web uygulaması ise ya da çevrimdışı olarak çalışırsa veya tarayıcı Chrome özellikleri görüntülenmeden çalışırsa mobil cihazın ana ekranına uygulama simgeleri sağlayabilirsiniz.

Kullanmak istediğiniz başlangıç resimlerine bağlantı vermek için <link> etiketini kullanabilirsiniz. Aşağıda, medya sorgularıyla birlikte birkaç resim eklemeyle ilgili bir örnek verilmiştir:

<link rel="apple-touch-startup-image" href="icons/ios-portrait.png" media="orientation: portrait" />
<link rel="apple-touch-startup-image" href="icons/ios-landscape.png" media="orientation: landscape" />

Siteniz veya uygulamanız web uygulaması özelliğine sahipse (ör. geri düğmesi olmadan) site, kullanıcı arayüzüyle bağımsız olarak çalışabiliyorsa tarayıcıya şunları da bildirmek için meta etiketler kullanabilirsiniz:

<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="mobile-web-app-capable" content="yes" />

Bunları yalnızca uygulamanız gerçekten de uygulama özelliğine uygunsa ekleyin. Aksi takdirde, en iyi destekçilerinizi, yani sitenizi ana ekranlarına ekleyenleri gerçekten kötü bir kullanıcı deneyimi için hazırlarsınız. Sevgilerini kaybedeceksiniz.

Birisi simgenizi küçük cihazının ana ekranına kaydedecekse işletim sistemine küçük cihazların ana ekranında fazla yer kaplamayan bir kısa ad sağlamanız gerekir. Bunu, meta etiket ekleyerek veya bir web manifest dosyası kullanarak yapabilirsiniz. Aşağıda meta etiket yöntemi gösterilmektedir:

<meta name="apple-mobile-web-app-title" content="MLW" />
<meta name="application-name" content="MLW" />

Başlığınızı daha uzun hale getirecek çok sayıda meta etiketi ele aldınız. Web uygulaması özellikli, çevrimdışı kullanılabilen bir progresif web uygulaması oluşturuyorsanız, bu iki ilave meta etiketi eklemek yerine short_name: MLW dosyasını bir web manifest dosyasına daha basit ve kısa bir biçimde ekleyebilirsiniz.

Manifest dosyası, <link> ve <meta> etiketleriyle dolu gereksiz bir başlığı engelleyebilir. Genellikle manifest.webmanifest veya manifest.json adında bir manifest dosyası oluşturabiliriz. Daha sonra, rel özelliğinin manifest ve href özelliğinin manifest dosyasının URL'sine ayarlandığı pratik <link> etiketini kullanırız:

<link rel="manifest" href="/mlw.webmanifest" />

Bu seri HTML'ye odaklanmaktadır. Ancak progresif web uygulamaları ile ilgili web.dev kursuna veya MDN'nin web uygulaması manifest dokümanlarına göz atabilirsiniz.

HTML'niz artık aşağıdaki gibi görünür:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <title>Machine Learning Workshop</title>
    <meta name="viewport" content="width=device-width" />
    <meta name="description" content="Register for a machine learning workshop at our school for machines who can't learn good and want to do other stuff good too" />
    <meta property="og:title" content="Machine Learning Workshop" />
    <meta property="og:description" content="School for Machines Who Can't Learn Good and Want to Do Other Stuff Good Too" />
    <meta property="og:image" content="http://www.machinelearningworkshop.com/image/all.png" />
    <meta property="og:image:alt" content="Black and white line drawing of refrigerator, french door refrigerator, range, washer, fan, microwave, vaccuum, space heater and air conditioner" />
    <meta name="twitter:title" content="Machine Learning Workshop" />
    <meta name="twitter:description" content="School for machines who can't learn good and want to do other stuff good too" />
    <meta name="twitter:url" content="https://www.machinelearningworkshop.com/?src=twitter" />
    <meta name="twitter:image:src" content="http://www.machinelearningworkshop.com/image/all.png" />
    <meta name="twitter:image:alt" content="27 different home appliances" />
    <meta name="twitter:creator" content="@estellevw" />
    <meta name="twitter:site" content="@perfmattersconf" />
    <link rel="stylesheet" src="css/styles.css" />
    <link rel="icon" type="image/png" href="/images/favicon.png" />
    <link rel="alternate" href="https://www.machinelearningworkshop.com/fr/" hreflang="fr-FR" />
    <link rel="alternate" href="https://www.machinelearningworkshop.com/pt/" hreflang="pt-BR" />
    <link rel="canonical" href="https://www.machinelearning.com" />
    <link rel="manifest" href="/mlwmanifest.json" />
  </head>
  <body>

    <!-- <script defer src="scripts/lightswitch.js"></script>-->
  </body>
</html>

Oldukça uzun bir süreç ama oldu.

<head> neredeyse tamamlandığına göre artık bazı semantik HTML ayrıntılarını girebilirsiniz.

Öğrendiklerinizi sınayın

Meta veriler hakkındaki bilginizi test edin

Yenileme pragma yönergesi.

Sayfayı yeniden yükler.
Doğru!
Ziyaretçiyi başka bir sayfaya yönlendirir.
Tekrar deneyin.
Başka bir dosyadan ek içerik olarak yüklenir.
Tekrar deneyin.

Grafik meta etiketlerini açın.

Grafiklere bağlantı oluşturmanıza izin verir.
Tekrar dene
Tüm sayfalar için zorunludur.
Tekrar deneyin.
Sayfalarınız için sosyal medya kartları oluşturmak amacıyla kullanılır.
Doğru!