it-swarm-vi.com

Việc sử dụng chính xác của lược đồ.org Trang webNavulationE bổ sung là gì?

Về mặt SEO ...

Là tốt nhất để đặt chương trình trên cha mẹ có chứa tất cả các liên kết?

<nav itemscope="itemscope" itemtype="http://www.schema.org/SiteNavigationElement">
    <a href="#">Link 1</a>
    <a href="#">Link 2</a>
    <a href="#">Link 3</a>
</nav>

... Hoặc mỗi liên kết nên được coi là yếu tố riêng của nó?

<nav>
    <span itemscope="itemscope" itemtype="http://www.schema.org/SiteNavigationElement">
        <a itemprop="url" href="#">
            <span itemprop="name">Link 1</span>
        </a>
    </span>
    <span itemscope="itemscope" itemtype="http://www.schema.org/SiteNavigationElement">
        <a itemprop="url" href="#">
            <span itemprop="name">Link 2</span>
        </a>
    </span>
    <span itemscope="itemscope" itemtype="http://www.schema.org/SiteNavigationElement">
        <a itemprop="url" href="#">
            <span itemprop="name">Link 3</span>
        </a>
    </span>
</nav>
33
Giel Berkers

Nếu SiteNavigationElement có nghĩa là cho toàn bộ điều hướng (nghĩa là danh sách liên kết điều hướng), ví dụ đầu tiên của bạn là chính xác.

Nếu SiteNavigationElement có nghĩa là cho một mục điều hướng duy nhất (nghĩa là, một liên kết trong danh sách liên kết điều hướng), ví dụ thứ hai của bạn là chính xác.

Tôi nghĩ Schema.org không rõ ràng định nghĩa biến thể đó là gì, vì họ chỉ nói:

Một yếu tố điều hướng của trang.

Tuy nhiên, loại cha mẹ WebPageElement được định nghĩa là:

Một yếu tố trang web, như bảng hoặc hình ảnh

Ngoài ra, tất cả các loại con khác (như Table hoặc WPFooter ) dường như được sử dụng cho toàn bộ, và không phải là các phần cụ thể của điều.

Vì vậy, điều này dường như gợi ý rằng toàn bộ điều hướng nên được đánh dấu, và không phải mỗi liên kết đơn:

<nav itemscope itemtype="http://schema.org/SiteNavigationElement">
<ul>
  <li><a href="/link-1">Link 1</a></li> <!-- don’t use the 'url' or 'name' property here! -->
  <li><a href="/link-2">Link 2</a></li>
</ul>
</nav>

Trong trường hợp này, tất cả các thuộc tính thuộc về toàn bộ điều hướng, có nghĩa là thuộc tính url sẽ chỉ định một URL cho điều hướng này (và không các URL của các liên kết trong điều hướng này!).

21
unor

Theo Search Engine Land , nó được cho là trông như thế này:

<ul itemscope itemtype="http://www.schema.org/SiteNavigationElement">
    <li itemprop="name">
        <a itemprop="url" href="#">Link 1</a>
    </li>
    <li itemprop="name">
        <a itemprop="url" href="#">Link 2</a>
    </li>
    <li itemprop="name">
        <a itemprop="url" href="#">Travel Resources</a>
    </li>
</ul>
11
John R Perry

Câu trả lời đầu tiên là đúng nhưng tôi sẽ trộn cả hai cho ngữ nghĩa (HTML5-):

<nav itemscope itemtype="http://schema.org/SiteNavigationElement">
    <ul>
        <li>
            <a itemprop="url" href="http://example.com/">
                <span itemprop="name">Link 1</span>
            </a>
        </li>
    </ul>
</nav>
9
Stephan Weinhold
<nav role="navigation">

    <ul role="menubar" aria-activedescendant="">

        <li role="presentation" itemscope itemtype="https://schema.org/SiteNavigationElement">
            <a href="" role="menuitem" tabindex="-1" itemprop="url">
                <span itemprop="name">Link 1</span>
            </a>
        </li>   

    </ul>

</nav>
5
davidcondrey

lược đồ.org/SiteNavlationEuity mở rộng WebPageE bổ sung và có thể được sử dụng để đánh dấu các liên kết, thường sẽ tạo ra các liên kết theo ngữ cảnh tốt. Bạn có thể sử dụng lược đồ này cho menu trang của bạn.

<nav role="navigation" itemscope itemtype="http://schema.org/SiteNavigationElement">
<ul>
    <li>
        <a href="https://yoursite.com/" title="Link to Home" itemprop="url">
            <span itemprop="name">Home</span>
        </a>
    </li>
    <li>
        <a href="https://yoursite.com/sample-page" title="Link to sample page" itemprop="url">
            <span itemprop="name">sample page</span>
        </a>
    </li>
</ul>

3
ashrafnezhad

Nó phụ thuộc vào công cụ tìm kiếm. Cho đoạn mã sau:

<nav itemscope itemtype="http://schema.org/SiteNavigationElement">
  <meta itemprop="name" content="Navigation Menu">
  <a itemprop="url" href="/">Overview</a>
  <a itemprop="url" href="/feature/">Features</a>
  <a itemprop="url" href="/module/">Modules</a>
  <a itemprop="url" href="/shortcode/">Shortcodes</a>
  <a itemprop="url" href="/extra/">Extras</a>
  <a itemprop="url" href="/search/">Search</a>
</nav>

Kiểm tra dữ liệu có cấu trúc công cụ của Yandex sẽ trả về:

sitenavigationelement
  itemType = http://schema.org/SiteNavigationElement
  name = Navigation Menu
  url
    href = /
    text = Overview
  url
    href = /feature/
    text = Features
  url
    href = /module/
    text = Modules
  url
    href = /shortcode/
    text = Shortcodes
  url
    href = /extra/
    text = Extras
  url
    href = /search/
    text = Search

Trong khi đó, Google công cụ trả về:

SiteNavigationElement
0 ERRORS
0 WARNINGS
@type = SiteNavigationElement
name = Navigation Menu
url = https://domain.example/
url = https://domain.example/feature/
url = https://domain.example/module/
url = https://domain.example/shortcode/
url = https://domain.example/extra/
url = https://domain.example/search/

Cả hai công cụ đều hiển thị dữ liệu có cấu trúc và cả hai đều cung cấp giá trị ngữ nghĩa ở trên và ngoài việc sử dụng nav. Vì vậy, trong khi một số người cảm thấySiteNavigationElement nên bị phản đối hoàn toàn, họ cũng, trong cùng một luồng suy nghĩ thú nhận người mà họ "nhận ra" là điều mà tôi đã cung cấp ở đây.

Bạn nên đặt SiteNavigationElement trong một trình bao bọc xung quanh nhóm các URL riêng lẻ được sử dụng trong điều hướng của bạn để bạn có thể đặt tên cho điều hướng đó bằng cách sử dụng itemprop="name".

Do đó, ví dụ đầu tiên là chính xác.

0
Josh Habdas

Câu hỏi ban đầu của OP chứa một ví dụ tốt về mã. không có câu trả lời nào làm ...

Dường như mọi người đã ném vào một câu trả lời hơi ngẫu nhiên ... Bạn có thể kiểm tra mã microdata lược đồ của mình bằng cách sử dụng công cụ google chính thức sau đây search.google .com/structured-data/tests-tool .

Nếu bạn chạy các câu trả lời được đề xuất trong công cụ này, bạn sẽ nhận thấy rằng không có kết quả nào được mong đợi: danh sách SiteNavigationElement với tên & url

Một số người có thể lập luận rằng toàn bộ menu có thể được coi là "yếu tố điều hướng" nhưng tôi nghĩ rằng điều này có ý nghĩa hơn đối với mệnh giá này để chỉ định một liên kết điều hướng duy nhất. Ngoài ra, nếu chúng tôi sử dụng SiteNavigationElement làm điểm đánh dấu cho toàn bộ menu, chúng tôi không có cách nào liên kết tên với URL trong html.

Để đạt được điều này, bạn cần phải đóng gói từng liên kết bởi một thuộc tính itemscope và tất cả chúng cần phải có nameurlitemprop (đây là các đơn bởi @David Harkness, vì vậy chúng chỉ xuất hiện một lần mỗi itemprop)

<nav>
    <ul>
        <li  itemscope itemtype="http://schema.org/SiteNavigationElement">
            <a itemprop="url" href="http://example.com/link-1">
                <span itemprop="name">Link 1</span>
            </a>
        </li>
        <li  itemscope itemtype="http://schema.org/SiteNavigationElement">
            <a itemprop="url" href="http://example.com/link-2">
                <span itemprop="name">Link 2</span>
            </a>
        </li>
    </ul>
</nav>

Mã ở trên sẽ tạo ra hai yếu tố điều hướng khác nhau, mỗi yếu tố có một tên và một URL.

Lưu ý: thuộc tính itemprop="url" sử dụng thuộc tính href của neo làm giá trị

0
Mathieu VIALES

Tôi nghĩ rằng giải pháp thanh lịch nhất sẽ là sử dụng thuộc tính hasPart .

<nav itemscope="itemscope" itemtype="http://www.schema.org/SiteNavigationElement">
  <a itemprop="hasPart" href="/link1.html">Link 1</a>
  <a itemprop="hasPart" href="/link2.html">Link 2</a>
  <a itemprop="hasPart" href="/link3.html">Link 3</a>
</nav>

Sử dụng Google Công cụ kiểm tra dữ liệu cấu trúc thông báo rằng các liên kết này là một phần của SiteNavulationEuity và Google nên theo các liên kết đến các mục đó:

Google's Structured Data Testing Tool's result

0
David Barratt