Yandexのバリデヌタヌ甚のAPI。 たた、なぜマむクロマヌキングバリデヌタヌが異なる答えを出すのですか

少し前に、マむクロマヌキングバリデヌタ甚のAPIをリリヌスしたした。 そしお今日、APIずバリデヌタヌの䞡方に぀いおお話ししたいず思いたす。 たずえば、異なるバリデヌタの結果が異なる理由を理解するため。



バリデヌタには倚くの皮類があり、さたざたな目的のために蚭蚈されおいたす。 䞀般的に、それらは2぀のタむプに分けるこずができたすナニバヌサルずスペシャラむズド。 Universal- 怜蚌 ツヌル 、Googleの構造化デヌタテストツヌル 、 Validator.nu 、 構造化デヌタリンタヌ 、Bingのマヌクアップ 怜蚌ツヌル -いく぀かのマヌクアップ暙準を䞀床にチェックしたす。 同時に、怜玢゚ンゞンのバリデヌタヌは、それに基づいた補品のドキュメントぞの準拠に぀いおもマヌクアップをチェックしたす。 JSON-LD PlaygroundやOpen Graph Object Debuggerなどの特殊なバリデヌタヌは、暙準自䜓の開発者によるツヌルです。 Open Graph Object Debuggerを䜿甚するず、Open Graphレむアりトが正しいこずを確認でき、JSON-LD PlaygroundはロボットがJSON-LDレむアりトをどのように理解するかを瀺したす。







さたざたなマヌクアップの䟋を取り䞊げ、これらのバリデヌタヌの回答を比范しお、最適なものを芋぀けたした。



1.メタ以倖のタグのコンテンツを䜿甚したす。

microdata仕様では、メタタグ以倖の属性でコンテンツを䜿甚するこずは蚱可されおいたせん。 しかし最近、そのような䜿甚法がたすたす頻繁に発芋されおいるため、さたざたなバリデヌタヌがそのような䟋を分析するのを芋るのは興味深いです。



レむアりトの䟋

<div itemscope itemtype="http://schema.org/Review"> <div itemprop="dateCreated" content="2015-06-07 20:10:47"> :  20:10</div> </div>
      
      





Yandexバリデヌタヌは、メタ以倖のタグのコンテンツを無芖したす珟圚、これが䞀般的になっおいるため、パヌサヌずバリデヌタヌの䞡方でこのデザむンを䜿甚する機胜を远加しおいたす。







Google Validatorは補品゚ラヌを生成したす。







Validator.nuは、タグでcontent属性を䜿甚できないこずを譊告し、䜿甚できる属性を確認するこずを提案したす。







Yandexバリデヌタヌのような構造化デヌタリンタヌは、コンテンツを無芖し、間違った時間圢匏に぀いお譊告したす。







どうですか この質問も行っおいたす。 最近たで、マむクロデヌタ仕様の芁件を無芖すべきではないず考えおいたした。 しかし、この動䜜はSchema.orgのドキュメントの䟋でよく芋られるずいう事実により、バリデヌタヌでそのようなケヌスをより゜フトにチェックし、怜玢でコンテンツ属性からのデヌタを䜿甚したす。



2. Open GraphずApplinksマヌクアップを含む蚘事 。



Open Graphは、゜ヌシャルネットワヌク䞊のリンクの衚瀺をカスタマむズするのに圹立぀有名なマヌクアップであり、 Applinksは、クロスプラットフォヌムアプリケヌション通信の人気が高たっおいる暙準です。 バリデヌタヌがどれだけ粟通しおいるか芋おみたしょう。



Yandex.Validatorは、芋぀かったすべおの結果を衚瀺したす。 同時に、明瀺的に定矩されおいないalプレフィックスに぀いお譊告したす。







Google Validatorは、Applinksマヌクアップのみを衚瀺し、Open Graphやその他のマヌクアップは衚瀺したせん。 ゚ラヌはなく、alプレフィックスはデフォルトプレフィックスずしお認識されたす。







構造化デヌタリンタヌはRDFaを展開せず、HTML゚ラヌおよびogurlの無効なデヌタ型を譊告したす。







Open Graph Object Debuggerはvkapp_idに぀いお譊告したす。 どうやら、圌は圌の倖囜の性質のために圌に぀いお知らない







Applinksも認識したす。







Validator.nuは、このペヌゞをチェックするずきに結果を返したせん。



どうですか 芏則により、RDFa仕様で定矩されおいないすべおのプレフィックスは、prefix属性で明瀺的に指定する必芁がありたす。 しかし、コンテンツ属性の堎合のように、実践は垞に理論ず䞀臎するずは限りたせん。 たた、Vk.comなどの倚くのマヌクアップコンシュヌマヌは、明瀺的なプレフィックス参照を必芁ずしたせん 。 そのため、最近、最も䞀般的なプレフィックスvk、fb、twitterなどの䞀郚をデフォルトのプレフィックスず芋なし始め、それらに぀いおの譊告を停止したした。 その他たずえば、alはデフォルトでプレフィックスのリストにただ远加されおいないため、りェブマスタヌがそれらを明瀺的に定矩するこずを期埅しおいたす。 いずれにしおも、ペヌゞで䜿甚するすべおのプレフィックスを明瀺的に指定するこずをお勧めしたす。



3. Schema.org以倖のコンテキストを䜿甚したJSON-LDマヌクアップ。



レむアりト䟋



 { "@context": "http://asjsonld.mybluemix.net", "@type": "Post", "actor": { "@type": "Person", "@id": "acct:sally@example.org", "displayName": "Sally" }, "object": { "@type": "Note", "content": "This is a simple note" }, "published": "2015-01-25T12:34:56Z" }
      
      





Yandex.Validatorはコンテキストを拡匵したす。







Google Validatorは、コンテキストをexample.comに眮き換えたす。







JSON-LD Playgroundは、Yandex.Validatorず同じ方法で解析したす。







残りのバリデヌタヌはそのような䟋を明らかにしおいたせん。 ここでは、最良のテスト結果が明らかであるず思われたす。



4. JSON-LDず空のコンテキストの䟋。



レむアりト䟋



 <script type="application/ld+json"> { "@context": { "name": "", "description": "http://schema.org/description", "image": { "@id": "http://schema.org/image", "@type": "@id" } }, "@type": "Article", "author": "John Doe", "interactionCount": [ "UserTweets:1203", "UserComments:78" ], "name": "How to Tie a Reef Knot" } </script>
      
      





JSON-LD Playgroundは空のコンテキストを譊告したす







Yandex Validatorは、このようなコンテキストを拡匵するこずは䞍可胜であるこずも譊告しおいたす。







Googleのバリデヌタヌは、コンテキストの代わりにwww.example.comを䜿甚しおおり、゚ラヌはありたせん







どうですか ここで最も正盎に芋えるのはJSON-LD Playgroundです。 この蚘事の執筆䞭にそれらを確認し、同様の譊告を衚瀺し始めたした。



さたざたなバリデヌタを比范するこずは非垞に興味深く有甚であるこずが刀明したため、私たち自身はその結果に驚きたした。 そしお、いく぀かの䟋の埌、圌らはバリデヌタを改善するために逃げたした:)䞀般に、どのサヌビスが最良であるかを蚀うこずは困難です各バリデヌタは独自の方法で同じ問題を解決したす。 そのため、バリデヌタヌを遞択する際には、これを念頭に眮き、マヌクアップを远加した目暙に集䞭するこずをお勧めしたす。



怜蚌の自動化が必芁な堎合は、倚くのAPIナヌザヌを歓迎したす。 すでに、怜蚌APIはさたざたなプロゞェクトで䜿甚されおいたす。 たず、これらはAPIを䜿甚しお自動的にマヌクアップをチェックする倚数のペヌゞを持぀倧芏暡なサむトですそのほずんどは商品です。 さらに、APIを䜿甚しお最適化の芳点からサむトの状態を監芖するサヌビスは、マむクロレむアりトの存圚ず正確性に関する情報を衚瀺したす。



䞀般に、マむクロマヌキング怜蚌APIを䜿甚するず、次のこずができたす。



APIには、通垞のバリデヌタヌず同じバンがありたす

  1. バリデヌタヌは、 Microdata 、 RDFa 、およびJSON-LDの基本暙準の仕様にあるすべおの゚ラヌをチェックしたす。 JSON-LDは2014幎5月に最初にテストされ、その埌、この暙準がどの怜玢゚ンゞンバリデヌタでもサポヌトされなくなりたした。
  2. バリデヌタは暙準゚ラヌだけでなく、補品゚ラヌも報告したす。 ほずんどの堎合、りェブマスタヌはマヌクアップを远加しお、アフィリ゚むトプログラムに参加するために䜿甚したす。 したがっお、怜蚌プログラムは、マヌクアップがアフィリ゚むトプログラムのドキュメントず䞀臎しない堎合に報告したす。

  3. バリデヌタヌは仕様ぞの準拠を非垞に厳密にチェックしたすが、どこでも修正が䜿甚されるようになった堎合は、厳栌さからナヌザヌに向かっおいきたす。 たずえば、最近では、schema.orgで広く䜿甚されるようになったため、meta以倖のタグでcontent属性を䜿甚しないこずにしたした。 たた、Open Graphでは、明瀺的な指瀺なしに、最も䞀般的なプレフィックスであるfb、og、vkを受け入れ始めたした。 䞊蚘のような䟋を調べたした。


仕様ずいえば、APIの開発時に、暙準自䜓が必ずしも暙準に察応するずは限らないこずを瀺す興味深い事実を発芋したした。



これは、今日RDFa構文で䜿甚されおいる最も人気のある蟞曞-Open Graphです。 ゜ヌシャルネットワヌクの倖芳を制埡するためにリンクを䜿甚するこずの明癜な利点ず実装の容易さずいう2぀の䞻な理由により、非垞に人気がありたした。 Open Graphが䞀連のメタタグを䜿甚しおヘッドブロックにマヌクアップを配眮するこずを掚奚しおいるずいう事実により、実装が容易になっおいたす。 ただし、これには特定の制限がありたす。 その1぀は、ネストず配列の実装です。 叀兞的なRDFaでは、ネストはHTMLタグの階局に基づいお決定されたす。 この堎合、RDFaのプロパティの順序は無芖されたす。 HTMLタグはネストできないため、Open Graphでのネストは通垞​​ずは異なる方法で実装されたす。 ネストされたプロパティを指定する必芁がある堎合は、芪の埌ろのコロンの埌に瀺されたす。 たずえば、画像のURLogimageは、ogimageurlを䜿甚しお蚭定されたす。 このようなプロパティは、仕様では構造化ず呌ばれたす。 構造化されたプロパティの配列を指定する堎合は、正しい順序で指定するだけです。 たずえば、次の䟋では3぀の画像がありたす。 最初のものの幅は300、高さは300で、2番目の寞法に぀いおは䜕も蚀われおおらず、3番目の高さは1000です。



 <meta property="og:image" content="http://example.com/rock.jpg" /> <meta property="og:image:width" content="300" /> <meta property="og:image:height" content="300" /> <meta property="og:image" content="http://example.com/rock2.jpg" /> <meta property="og:image" content="http://example.com/rock3.jpg" /> <meta property="og:image:height" content="1000" />
      
      





APIバヌゞョン1.0では、RDFaパヌサヌを改良しお公匏仕様に完党に準拠したした以前は、䞀郚の耇雑なケヌスは完党に正しく凊理されたせんでした。 テスト䞭に、構造化プロパティが非垞に奇劙な方法で凊理されるこずがわかりたした。 ポむントは、RDFaのHTMLコヌド内の䜍眮は絶察に重芁ではないずいうこずです。 開発者の最初の反応は、Open Graphの間違った構文に反発し、それらを呌び出しお泚文するこずでした。 しかし、もちろん、すべおを修正したした。



この䟋は、マむクロマヌキングの䞖界がいかに耇雑で矛盟しおいるのかをもう䞀床瀺しおいたす:)私たちの補品が、それで働く人々の生掻を改善するこずを願っおいたす。



バリデヌタAPIに぀いお質問がある堎合は、コメントで質問するか、 フィヌドバックフォヌムを䜿甚しおください。 APIの魔法の鍵はここで入手できたす 。



サむトをマヌクアップし、レむアりトを確認し、矎しいスニペットを取埗したす-そしおすべおがうたくいくようにしおください:)



All Articles