บทความนี้เป็นบทความที่ผมเขียนขึ้นอันเนื่องมาจากว่า ตอนนี้ผมกำลังอยู่ในระหว่างเขียน markup blogger template อยู่ และก็กำลังตัดสินใจว่า เราจะเขียน markup เช่นไรดี คือ ถ้าเป็น markup สำหรับเพื่อใช้เขียน style นั้นเรียบร้อยไปแล้ว แต่ที่ผมกำลังพูดถึงก็คือ ตามหัวข้อของบทความนี้เลย คือ ผมจะใช้อะไรดี ? ระหว่าง microdata กับ microformats บางคนเข้ามาอ่านก็อาจจะงงนิดๆ ว่า มันเกี่ยวกับเรื่องอะไร ซึ่งผมขออธิบายคร่าวๆ เกี่ยวกับ microdata และ microformats ก็แล้วกัน

Microdata และ Microformats คือ อะไร ?

ในความเข้าใจของผม (ไม่น่าจะผิดนะ O_O) ทั้ง 2 อย่างนี้ คือ markup ที่ไว้ใช้เขียนเพื่อช่วยให้ bot ของ search engine เข้าใจว่า หน้าเว็บเพจพูดเกี่ยวกับอะไร มีรายละเอียดอย่างไร ซึ่งโดยปกติ การเขียน html ก็พอที่จะบอกได้ว่า หน้าเว็บเพจพูดเกี่ยวกับอะไร แต่ว่ามันมีรายละเอียดระดับปลีกย่อยที่ html ไม่มี tag เอาไว้อธิบาย ดังนั้น เพื่อให้ bot ของ search engine เข้าใจได้อย่างถูกต้องเกี่ยวกับหน้าเว็บเพจนั้นๆ จึงมีการกำหนดมาตรฐานที่ชื่อว่า microdata และ microformats ขึ้นมา (ประมาณนี้ O_O)

ลักษณะการ markup ทั้ง 2 นั้นจะค่อนข้างแตกต่างกันพอสมควร คือ ถ้าเป็น microformats เราสามารถกำหนดชื่อ id หรือ class (ส่วนใหญ่ใช้ class) ลงใน tag html ที่เราต้องการได้เลย เช่น

<article class="hentry">
 <header class="entry-header">
  <h1 class="entry-title">
   <a href="#" rel="bookmark">Title this post.</a>
  </h1>
 </header>
 <section class="entry-content">
  <p>ข้อความ...
  </p>
 </section>
 <footer>
  <time class="published" datetime="2016-02-29T13:19:00+07:00">29 February 2016</time>
 </footer>
</article>

ส่วน microdata ก็จะมีส่วนที่คล้ายและต่างกับ microformats อยู่เหมือนกัน โดยสามารถเขียนแทรกลงไปใน tag html ที่เราต้องการได้เลย แต่จะใช้ชื่อในการกำหนดต่างกับ microformats เช่น

<article itemscope="" itemprop="blogpost" itemptype="http://schema.org/BlogPosting" itemid="http://korlidun.blogspot.com/p/about-me.html">
 <meta itemprop="mainEntityOfPage url" content="http://korlidun.blogspot.com/p/about-me.html" />
 <header>
  <h1 itemprop="headline name">
   Title this post.
  </h1>
 </header>
 <section itemprop="articleBody">
  <p>ข้อความ...
  </p>
 </section>
 <footer>
  <time itemprop="datePublished" datetime="2016-02-29T13:19:00+07:00">29 February 2016</time>
 </footer>
</article>

Microdata กับ Microformats เลือกอะไรดี ?

จริงๆ แล้วเราไม่จำเป็นต้องเลือกก็ได้ว่าจะใช้ตัวไหนดี ใช้ทั้ง 2 ตัวไปเลยก็ได้ แต่ถ้าให้เลือกระหว่าง 2 ตัวนี้เพียงอย่างใดอย่างหนึ่ง ผมเลือกที่จะใช้ microdata แทนการใช้การ microformats เนื่องจากว่า microdata นั้นค่อนข้างที่จะมีอิสระในการใช้มากกว่า microformats

Microdata นั้นเราสามารถที่จะเขียนโดยไม่ต้องคำนึงถึงเรื่อง style หรือรูปร่างหน้าตาของเว็บไซต์แต่อย่างใด โดยเราสามารถเขียนไว้ใน tag html ก็ได้ หรือจะเขียนเอาไว้ด้านนอกก็ได้ โดยใช้ tag meta ซึ่งจะทำให้เราไม่ต้องคำนึงในเรื่อง style เลยแม้แต่น้อย

ส่วน microformats นั้นจริงๆ แล้วก็ทำได้เช่นกัน แต่ถ้าต้องการเขียนให้ครบถ้วน มันก็จะมีส่วนที่เราอาจไม่อยากให้แสดงผลแต่จำเป็นต้องแสดง เช่น author และ modified ซึ่งจริงๆ แล้วเราจะใช้คำสั่ง display:none (ไม่ให้แสดง) ก็ได้ แต่มันก็ไม่ควรเป็นเช่นนั้น ดังนั้นโดยส่วนตัวผมจึงคิดว่า microdata นั้นเหมาะที่จะใช้มากกว่า และอีกอย่าง google เองก็ใช้ microdata เป็นมาตรฐานหลักในการระบุรายละเอียดของหน้าเว็บอยู่แล้วเช่นกัน ซึ่งเราสามารถดูได้ที่เครื่องมือช่วย markup ของ google

Microdata

อย่างที่บอกไปในข้างต้นแหละครับว่าใครจะใช้อะไร ยังไงก็ได้ จะเขียนทั้ง 2 หรือจะเลือกอย่างใดอย่างหนึ่งก็ได้เช่นกัน ลืมไป ! ยังมี "RDFa" อีกตัวที่เอาไว้ใชในลักษณะคล้ายๆ กัน แต่รู้สึกว่าจะเขียนค่อนข้างยุ่งยากกว่ามาก ซึ่งโดยทั่วๆ ไปก็เห็นไม่ค่อยนิยมเท่าที่ควร ซึ่งผมก็คงไม่พูดถึงแล้วกัน

สุดท้ายนี้สำหรับตัวผมเอง ผมเลือก "Microdata" เพราะบอกตรงๆ ว่ามันค่อนข้างเหมาะสำหรับการ markup เพื่อผลทางด้าน SEO ที่ละเอียดและเจาะจงมากกว่า และที่สำคัญ "เขียนง่ายมาก"

เดี๋ยวบทความต่อๆ ไป ถ้ามีโอกาส เดี๋ยวจะมาแนะนำการเขียน microdata ให้ได้ใช้กัน แล้วผมไม่ใช่ผู้เชี่ยวชาญแต่อย่างใด อาศัยลองผิดลองถูกครับ ผิดพลาดประการใดก็ขออภัยไว้ด้วยแล้วกัน ^_^