Nhập từ cần tìm và nhấn Enter

[NƠI ĐẶT QUẢNG CÁO - GỌI NGAY 0911296103]
author photo
Đăng bởi: Thời gian:
Với việc phát hành của schema.org v2.0 (quá lớn để mô tả đầy đủ trong một bài bản duy nhất) đến một tài sản mới Tôi nghĩ rằng xứng đáng là tâm điểm chú ý vì nó giải quyết một số vấn đề dài nổi bật.
Làm thế nào để sử dụng schema.org V2.0’s mainEntityOfPage property ?
Cho biết một trang (hoặc CreativeWork khác) mà điều này là thực thể chính được mô tả.

Bây giờ tôi đề nghị bạn đọc mô tả đầy đủ của khách sạn đối http://schema.org/mainEntityOfPage như nó đi vào để mô tả mục đích sử dụng của nó và nơi nó đứng liên quan đến tài sản như http://schema.org/about, http: / / schema / org / sameAs và http://schema.org/url. Properties để mà mainEntityOfPage liên quan rất chặt chẽ và là một phần của các khối xây dựng cơ bản của schema.org.

Thật không may mặc dù lý do tại sao ta nên sử dụng tài sản này chỉ được mô tả bởi:
"Nhiều (nhưng không phải tất cả) các trang web có một chủ đề chính khá rõ ràng, một số thực thể hoặc điều rằng trang mô tả. Ví dụ trang chủ của một nhà hàng có thể là chủ yếu về nhà hàng đó, hoặc một trang sự kiện niêm yết có thể đại diện cho một sự kiện duy nhất. Các tính chất mainEntity và mainEntityOfPage cho phép bạn thể hiện một cách rõ ràng mối quan hệ giữa các trang và các thực thể chính. "
Được minh họa qua các ví dụ đánh dấu sau tiếp tục xuống trang (cũng có sẵn trong RDFa và JSON-LD):
<div itemscope itemtype="http://schema.org/Restaurant" itemid="#thecafe">
    <a itemprop="mainEntityOfPage" href="http://cathscafe.example.com/"><h1 itemprop="name">Cath's Cafe</h1></a>
    <p>
        Open: <time itemprop="openingHours" datetime="Mo,Tu,We,Th,Fr,Sa,Su 11:00-20:00">Daily from 11:00am till 8pm</time>
    </p>
    <p>
        Phone: <span itemprop="telephone" content="+155501003344">555-0100-3344</span>
    </p>
    <p>
        View <a itemprop="menu" href="/menu">our menu</a>.
    </p>
</div>
Nhưng mà tôi nghĩ là một ví dụ kỳ lạ là nó không minh họa cho giá trị thực của tài sản bằng cách nhắc đến nó như thế nào có thể giúp quản trị web đối phó với một số rất khó chịu và khó để giải quyết tình huống.

Trước khi đi trước và giải thích điều này với bạn mặc dù, hãy để tôi chỉ ra một số vấn đề cơ bản schema.org đầu tiên.

Schema.org 101

Hãy nói rằng bạn là một nhà sản xuất hàng hóa (Tổng công ty Acme) và bạn đang bán sản phẩm của bạn trên trang web của bạn. Một ngày bạn quyết định nằm xuống một số đánh dấu http://schema.org/Product về sản phẩm của bạn danh sách các trang, và vì điều này mỗi sản phẩm được liệt kê trên các trang này có thể chứa một số đánh dấu dọc theo những dòng này:
<li itemscope itemtype="http://schema.org/Product">
    <a itemprop="url" href="http://example.com/explosive-tennis-balls/">
        <span itemprop="name">Explosive tennis balls</span>
    </a>
    ...
</li>
Nhưng là bạn nhận thức được rằng bằng cách xác định các url Sản phẩm bạn đã không chỉ nói với các công cụ tìm kiếm nơi mà các sản phẩm có thể được tìm thấy, nhưng mà bạn cũng nói với họ rằng họ có thể được tìm thấy trên một http://schema.org/WebPage?

Nếu bạn truy cập http://schema.org/WebPage bạn có thể đọc một mô tả mà nói (tôi nhấn mạnh):
"Mỗi trang web được ngầm giả định được tuyên bố là các loại WebPage, do đó, các thuộc tính khác nhau về trang web đó, chẳng hạn như mẩu bánh mì có thể được sử dụng. Chúng tôi khuyên bạn nên khai báo rõ ràng, nếu những tài sản được xác định, nhưng nếu chúng được tìm thấy bên ngoài của một itemscope, họ sẽ được giả định là về trang. "
Có nghĩa là ngay cả khi bạn, ví dụ, không chỉ định một trang sản phẩm riêng biệt là các loại http://schema.org/WebPage (hoặc bất kỳ loại phụ của nó ví dụ như ItemPage) so với các công cụ tìm kiếm sẽ cho rằng bạn đã làm để cho bạn bằng cách xử lý đánh dấu như:
<body>
    <main>
        <article itemscope itemtype="http://schema.org/Product">
            <h1 itemprop="name">Explosive tennis balls</h1>
            ...
        </article>
    </main>
</body>
as if you had specified:

<body itemscope itemtype="http://schema.org/WebPage">
    <main>
        <article itemscope itemtype="http://schema.org/Product">
            <h1 itemprop="name">Explosive tennis balls</h1>
            ...
        </article>
    </main>
</body>

và bạn nên biết bạn thậm chí có thể cụ thể hơn bằng cách thông báo cụ tìm kiếm về các loại trang họ đang làm việc với:

<body itemscope itemtype = "http://schema.org/ItemPage">
    <chính>
        <bài viết itemscope itemtype = "http://schema.org/Product">
            <h1 itemprop = "name"> bóng tennis nổ </ h1>
            ...
        </ article>
    </ chính>
</ body>

Bây giờ bạn có thể nghĩ "có gì đặc biệt về điều đó?" Nhưng bạn cũng ý thức hơn các quy tắc cho HTML không áp dụng cho các cấu trúc dữ liệu và phân tích cú pháp đe dọa cả hai rất khác nhau không?

Một sự khác biệt quan trọng giữa HTML và cấu trúc dữ liệu

Trong HTML một <article> lồng nhau trong <chính> lồng bên trong thẻ <body> tạo báo cáo theo cấp bậc. Tuy nhiên, từ một điểm dữ liệu có cấu trúc của xem không có tuyên bố về mối quan hệ giữa các đối tượng quy định đã được thực hiện. Có nghĩa là những gì bạn đã hoàn thành, từ một điểm đồ thị của xem, đang tạo ra 2 đơn vị cấp cao nhất mà không có quan hệ với nhau, cụ thể là một WebPage và một sản phẩm.

Bây giờ công cụ tìm kiếm thỏa thuận với điều này bằng cách xử lý các sản phẩm như thể nó là thực thể chính của các trang theo mặc định, và chỉ trong những trường hợp không có thực thể cấp cao thứ hai đã được quy định họ sẽ đối xử với bản thân http://schema.org/WebPage là chủ đề thực tế.

Một phương pháp mà các công trình hoàn hảo và đó dường như không để biện minh cho hành động thêm một tài sản mới như mainEntityOfPage - Và vì vậy câu hỏi là, tại sao họ đến với tài sản mới này?

Có nhiều đối tượng cấp cao có thể gây ra rắc rối

Trong suốt những năm qua tôi đã gặp rất nhiều tình huống mà có nhiều đối tượng cấp cao nhất đã gây ra một số nhức đầu nghiêm trọng như họ [a] dẫn đến các loại sai của đoạn giàu được hiển thị trong kết quả tìm kiếm của Google và / hoặc [b] đã gây ra các trang để hạng cho các loại sai trái của các truy vấn tìm kiếm - một tình huống có thể dẫn đến một tác động tiêu cực trên, ví dụ, một trang web thương mại điện tử CTR trong kết quả tìm kiếm (và do đó thu nhập một trang web như vậy tạo ra).

Một ví dụ về một vấn đề thực tế cuộc sống

Hãy tưởng tượng tất cả các trang sản phẩm riêng trên trang web của tập đoàn ACME có một sidebar rằng, trong số những người khác, có chứa một widget sự kiện, và rằng sự kiện chứa trong widget mà có một số đánh dấu http://schema.org/Event:

<body itemscope itemtype = "http://schema.org/WebPage">
    <trích>
        <section itemscope itemtype = "http://schema.org/Event">
            <h2 itemprop = "name"> Acme Product Launch </ h2>
            ...
        </ section>
    </ aside>
    <chính>
        <bài viết itemscope itemtype = "http://schema.org/Product">
            <h1 itemprop = "name"> bóng tennis nổ </ h1>
            ...
        </ article>
    </ chính>
</ body>

Bây giờ kể từ khi nó không phải là kiến ​​thức phổ biến mà các loại yếu tố HTML được sử dụng, để họ ở trong và cách chúng được lồng nhau không nhất thiết quan trọng cho cấu trúc dữ liệu, folks làm cho những sai lầm dễ hiểu khi cho rằng vì http: // schema.org/Event được lồng trong một <dành> công cụ tìm kiếm sẽ hiểu được đánh dấu này nên được coi là nội dung thứ và rằng http://schema.org/Product nên được coi là nội dung chính của trang vì nó lồng trong <chính> phần tử.

Tuy nhiên, những gì thực sự đã tạo ra, từ một điểm đồ thị của xem, là 3 đơn vị cấp cao nhất mà không có quan hệ với nhau. Điều duy nhất họ có điểm chung là thực tế tất cả chúng đều có thể được tìm thấy tại địa chỉ giống nhau:

schema.org/WebPage, schema.org/Event và schema.org/Product - Ba đối tượng liên quan
Và nó chính xác những loại tình huống này có thể dẫn đến kết quả ngược với những gì bạn có thể đặt ra để thực hiện - đánh dấu thêm thông tin để các công cụ tìm kiếm có một sự hiểu biết tốt hơn về những gì các nội dung trên trang web của bạn là về.

Tuy nhiên, mà 'thưởng' bật ra được rằng công cụ tìm kiếm hiện nay hiển thị một đoạn http://schema.org/Event giàu mà bạn đã hy vọng cho một http://schema.org/Product đoạn giàu.

Và nếu bạn đang thực sự gặp may hơn bạn cũng sẽ khám phá các trang sản phẩm của bạn tất cả chỉ là một cấp bậc bất ngờ cho các truy vấn liên quan đến sự kiện.

Oh, và hơn cũng có những trường hợp mà số phận thực sự cố gắng để có một số vui vẻ với chi phí của bạn nếu nó quay ra hành vi này là khác nhau (và không phù hợp) cho công cụ tìm kiếm khác nhau.

# @! & ***% _! Chuyện gì đã xảy ra?

Cũng ít nhất một phần này là dễ dàng, đủ để giải thích - mỗi công cụ tìm kiếm cá nhân chỉ đơn giản là có những quy định riêng của mình (heuristics) để đối phó với nhiều đối tượng cấp cao nhất (hoặc bất kỳ hình thức khác của dữ liệu có cấu trúc cho rằng vấn đề) và họ sẽ bị nguyền rủa trước khi họ sẽ quyết định cho phù hợp với phương pháp của họ để xử lý dữ liệu có cấu trúc như đó là cách họ thể phân biệt mình và là một phần của cách họ cạnh tranh cho thị trường cổ phiếu.

Mặc dù nếu bạn là nạn nhân của một tình huống như vậy, bạn có thể nghiêng được sự hiểu biết ít - Tôi biết tôi không phải là việc hiểu rõ các cặp vợ chồng đầu tiên của lần tôi chạy vào điều này và nó đã cho tôi những gì có vẻ như mãi mãi để tìm ra những gì là xảy ra.

Và vì vậy tôi đã quyết định để có một số vấn đề của tôi trên vào danh sách gửi thư schema.org, ở đâu, trong một khoảng 1,5-2 năm, trong nhiều cuộc thảo luận nó không chỉ trở nên rõ ràng rằng công cụ chẩn đoán tìm kiếm cá nhân đã gây ra những vấn đề này nhưng điều này là một sitation không mong muốn cần được giải quyết.
Một giải pháp đã được tìm thấy bằng cách giới thiệu các sản mainEntityOfPage - mà làm việc vì "tất cả các trang web được ngầm giả định được tuyên bố là các loại WebPage".

Và như vậy, chỉ đơn giản bằng cách thêm một <link> yếu tố trong các yếu tố mà bạn muốn chỉ định như là các thực thể chính của trang, và có nóhref giá trị được url của trang, bây giờ bạn có thể nói với các công cụ tìm kiếm mà thực thể họ nên xem xét đến là chủ đề chính của trang:

<html>
    <head>
        <link rel = "canonical" href = "http://example.com/explosive-tennis-balls/">
    </ head>
    <body itemscope itemtype = "http://schema.org/WebPage">
        <trích>
            <section itemscope itemtype = "http://schema.org/Event">
                <h2 itemprop = "name"> Acme Product Launch </ h2>
                ...
            </ section>
        </ aside>
        <chính>
            <bài viết itemscope itemtype = "http://schema.org/Product">
                <h1 itemprop = "name"> bóng tennis nổ </ h1>
                <link itemprop = "mainEntityOfPage" href = "http://example.com/explosive-tennis-balls/">
                ...
            </ article>
        </ chính>
    </ body>
</ html>

Mà từ một điểm của đồ thị nhìn trông như thế này:

một schema.org/Product đó là mainEntityOfPage của một schema.org/WebPage, mà cũng có chứa một schema.org/Event cấp cao nhất

Đang có thể chỉ định các mối quan hệ trong cả hai hướng

Trong các cuộc thảo luận ban đầu về chủ đề này là tài sản đầu tiên được đề xuất thực sự là đối diện của những gì tôi đã đề cập đến nay, cụ thể là mainEntity. Và chỉ có vào cuối tháng Giêng năm nay đã làm schema.org của Dan Brickley thấy nó có thể là một ý tưởng tốt để thêm một tài sản theo hướng ngược lại là tốt, mà dẫn đến việc bổ sung các mainEntityOfPage.

Có nghĩa là có một tài sản tôi đã không làm nổi bật được nêu ra, bởi vì cho đến nay tôi đã chỉ minh họa những gì có thể xảy ra nếu một thực thể thứ cấp (tổ chức sự kiện trong trường hợp này) đã được quy định trước khi thực thể chính (sản phẩm).

Bây giờ trước khi tôi tiếp tục, ý thức được rằng những vấn đề tương tự tôi đã đề cập trước đó cũng có thể xảy ra khi các thực thể chính đã được xác định đầu tiên (ví dụ, bởi vì HTML được viết theo một thứ tự khác nhau). Trong đó, một lần nữa, là do sự chẩn đoán của mỗi công cụ tìm kiếm cá nhân và có ít để làm với thứ tự của các DOM.

Lý do cho việc có thể để xác định mối quan hệ này trong cả hai hướng là để ngăn chặn nó không thể được xác định bởi vì thứ tự của HTML hoặc các vấn đề chương trình cấm một mối quan hệ một hướng đang được thực hiện. Và do đó người ta cũng có possibillity để xác định mối quan hệ theo hướng ngược lại bằng cách sử dụng nghịch đảo của mainEntityOfPage: http://schema.org/mainEntity ">

<html>
    <head>
        <link rel = "canonical" href = "http://example.com/explosive-tennis-balls/">
    </ head>
    <body itemscope itemtype = "http://schema.org/WebPage">
        <chính>
            <bài viết itemprop = "mainEntity" itemscope itemtype = "http://schema.org/Product">
                <h1 itemprop = "name"> bóng tennis nổ </ h1>
                ...
            </ article>
        </ chính>
        <trích>
            <section itemscope itemtype = "http://schema.org/Event">
                <h2 itemprop = "name"> Acme Product Launch </ h2>
                ...
            </ section>
        </ aside>
    </ body>
</ html>

Mà trông như thế này trong một đồ thị:

một schema.org/WebPage đó là mainEntity là một schema.org/Product nhưng mà cũng có chứa một schema.org/Event cấp cao nhất

Hãy để tôi kết thúc bằng cách nói rằng tất cả mọi thứ tôi chỉ chứng minh cũng có thể đạt được bằng cách sử dụng RDFa hoặc JSON-LD, và đó là lý do tại sao tôi đã chọn để sử dụng dữ liệu vĩ mô là vì nó vẫn là cú pháp thông dụng nhất ra khỏi đó ngay bây giờ.

Tôi hy vọng bạn thích đọc và bạn sẽ bắt đầu sử dụng các thuộc tính mainEntityOfPagemainEntity để giải quyết bất kỳ nhiều các thực thể cấp cao nhất disambiguity ra ở đó. Và nếu bạn muốn biết thêm về những gì Schema.org incompasses v2.0 hơn là làm cho chắc chắn để đọc các bài viết của tôi trong tội phạm đối tác ngữ nghĩa Aaron Bradley đã viết.

Tham khảo: www.seoskeptic.com
Bài viết gốc:
http://www.seoskeptic.com/how-to-use-schema-org-v2-0s-mainentityofpage-property/

Mời các bạn viết lời bình cho bài viết!

Nhấp để nhận xét