Tự nhiên mấy hôm nay traffic giảm thể thảm, em vô google search console kiểm tra thì thấy báo: trường "position" bị thiếu là sao? khắc phục như nào? Em đăng topic này lên nhờ các cụ chỉ giúp, chứ sáng giờ mò không có ra
Structured Data có nhiều loại có trường "position", bạn liệt kê chi tiết trường "position" của loại nào mới được chớ! Như "position" của "Breadcrumb", "Recipe", ...
Mình dùng thằng này https://search.google.com/structured-data/testing-tool/u/0/#url= thì thấy lỗi như trên
Như hình bạn gửi nó là Structured Data Breadcrumb, mình thường dùng script application/ld+json như bên dưới để tạo breadcrumb; Cứ thêm 1 cấp thì tăng position thêm 1. Nếu bạn hiển thị dạng danh sách (list - thẻ li thì lại khác)! P / S : Mình chưa biết cấu trúc và code của bạn như thế nào nên không chi tiết được - nếu cần hỗ trợ inbox cho mình!
Em check thì nó ra lỗi trùng với post này https://xenforo.com/community/threads/missing-field-position-breadcrumb-markup.170195/ Đã cập nhập Code: <xf:macro name="crumb" arg-href="!" arg-value="!" arg-position="{{ 0 }}"> <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"> <a href="{$href}" itemprop="item"> <span itemprop="name">{$value}</span> </a> <xf:if is="$position"><meta itemprop="position" content="{$position}" /></xf:if> </li> </xf:macro> Nhưng check lại vẫn chưa thấy hiệu quả. Không biết em đã làm sai hay phải đợi google nó cập nhập lại
Là bạn đang dùng mã nguồn xenforo hả? Và bạn check lại thì Google báo như thế nào, hay bạn cập nhật (Validate Fix) trong Google Search Console vậy?
1. Mình dùng xenforo 2. Check lại bằng cách click vào Validate Fix trong Google Search Console, thấy nó xuất hiện như này Mình có kiểm tra thấy 3 link đó đều index bình thường Thử check lại trong https://search.google.com/structured-data/testing-tool/u/0/#url vẫn bị lỗi như cũ
Cái schema google nó mới cập nhật, 1 số schema nó không dùng nữa nên lỗi, trước thì vẫn được, giờ không được
Trong xenforo chỉ có file app_breadcrumbs.less Code: .p-breadcrumbs { .m-listPlain(); .m-clearFix(); margin-bottom: 5px; line-height: 1.5; &.p-breadcrumbs--bottom { margin-top: @xf-elementSpacer; margin-bottom: 0; } > li { float: left; margin-right: .5em; font-size: @xf-fontSizeSmall; a { display: inline-block; vertical-align: bottom; max-width: 300px; .m-overflowEllipsis(); } &:after, &:before { .m-faBase(); font-size: 90%; color: @xf-textColorMuted; } &:after { .m-faContent(@fa-var-angle-right, .36em, ltr); .m-faContent(@fa-var-angle-left, .36em, rtl); margin-left: .5em; } &:last-child { margin-right: 0; a { font-weight: @xf-fontWeightHeavy; } } } } @media (max-width: @xf-responsiveMedium) { .p-breadcrumbs > li a { max-width: 200px; } } @media (max-width: @xf-responsiveNarrow) { .p-breadcrumbs { > li { display: none; font-size: @xf-fontSizeSmallest; &:last-child { display: block; } a { max-width: 90vw; } &:after { display: none; } &:before { .m-faContent(@fa-var-chevron-left, .72em, ltr); .m-faContent(@fa-var-chevron-right, .72em, rtl); margin-right: .5em; } } } }
Cho e hỏi cái breadcrumbs list ở kia là cía gì thế. Có phải breadcrumbs điều hướng ở các page không. Nếu đúng vậy thì cái này có ảnh hưởng gì đâu nhỉ. Web của e chả bh có cía này cả
Trong file PAGE_CONTAINER thì có Code: <xf:macro name="breadcrumbs" arg-breadcrumbs="!" arg-navTree="!" arg-selectedNavEntry="{{ null }}" arg-variant=""> <xf:if contentcheck="true"> <ul class="p-breadcrumbs {{ $variant ? 'p-breadcrumbs--' . $variant : '' }}" itemscope itemtype="https://schema.org/BreadcrumbList"> <xf:contentcheck> <xf:set var="$rootBreadcrumb" value="{$navTree.{$xf.options.rootBreadcrumb}}" /> <xf:if is="$rootBreadcrumb AND $rootBreadcrumb.href != $xf.uri"> <xf:macro name="crumb" arg-href="{$rootBreadcrumb.href}" arg-value="{$rootBreadcrumb.title}" /> </xf:if> <xf:if is="$selectedNavEntry && $selectedNavEntry.href && $selectedNavEntry.href != $xf.uri && $selectedNavEntry.href != $rootBreadcrumb.href"> <xf:macro name="crumb" arg-href="{$selectedNavEntry.href}" arg-value="{$selectedNavEntry.title}" /> </xf:if> <xf:foreach loop="$breadcrumbs" value="$breadcrumb" if="$breadcrumb.href != $xf.uri"> <xf:macro name="crumb" arg-href="{$breadcrumb.href}" arg-value="{$breadcrumb.value}" /> </xf:foreach> </xf:contentcheck> </ul> </xf:if> </xf:macro> <xf:macro name="crumb" arg-href="!" arg-value="!" arg-position="{{ 0 }}"> <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"> <a href="{$href}" itemprop="item"> <span itemprop="name">{$value}</span> </a> <xf:if is="$position"><meta itemprop="position" content="{$position}" /></xf:if> </li> </xf:macro> Nhờ bạn giúp @Dang
Đúng như bác @Dang nói. Em thấy thằng Google Search Console báo Missing field "position" nên em hỏi google từ khóa Missing field "position" xenforo thì ra bài https://xenforo.com/community/threads/missing-field-position-breadcrumb-markup.170195/ Đọc bài viết xem hình ảnh thấy bệnh của mình giống vậy => đoán là lỗi do breadcrumbs
Theo như link bạn cung cấp thì bạn copy bị thiếu biến $position Code: <xf:macro name="breadcrumbs" arg-breadcrumbs="!" arg-navTree="!" arg-selectedNavEntry="{{ null }}" arg-variant=""> <xf:if contentcheck="true"> <ul class="p-breadcrumbs {{ $variant ? 'p-breadcrumbs--' . $variant : '' }}" itemscope itemtype="https://schema.org/BreadcrumbList"> <xf:contentcheck> <xf:set var="$position" value="{{ 0 }}" /> <xf:set var="$rootBreadcrumb" value="{$navTree.{$xf.options.rootBreadcrumb}}" /> <xf:if is="$rootBreadcrumb AND $rootBreadcrumb.href != $xf.uri"> <xf:set var="$position" value="{{ $position + 1 }}" /> <xf:macro name="crumb" arg-position="{$position}" arg-href="{$rootBreadcrumb.href}" arg-value="{$rootBreadcrumb.title}" /> </xf:if> <xf:if is="$selectedNavEntry && $selectedNavEntry.href && $selectedNavEntry.href != $xf.uri && $selectedNavEntry.href != $rootBreadcrumb.href"> <xf:set var="$position" value="{{ $position + 1 }}" /> <xf:macro name="crumb" arg-position="{$position}" arg-href="{$selectedNavEntry.href}" arg-value="{$selectedNavEntry.title}" /> </xf:if> <xf:foreach loop="$breadcrumbs" value="$breadcrumb" if="$breadcrumb.href != $xf.uri"> <xf:set var="$position" value="{{ $position + 1 }}" /> <xf:macro name="crumb" arg-position="{$position}" arg-href="{$breadcrumb.href}" arg-value="{$breadcrumb.value}" /> </xf:foreach> </xf:contentcheck> </ul> </xf:if> </xf:macro> <xf:macro name="crumb" arg-href="!" arg-value="!" arg-position="{{ 0 }}"> <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"> <a href="{$href}" itemprop="item"> <span itemprop="name">{$value}</span> </a> <xf:if is="$position"><meta itemprop="position" content="{$position}" /></xf:if> </li> </xf:macro> Còn cái template của mình không dùng marco : Code: <nav> <xen:if is="!{$quickNavSelected} AND {$navigation}"> <xen:foreach loop="$navigation" value="$breadcrumb"> <xen:if is="{$breadcrumb.node_id}"> <xen:set var="$quickNavSelected">node-{$breadcrumb.node_id}</xen:set> </xen:if> </xen:foreach> </xen:if> <fieldset class="breadcrumb"> <a href="{xen:link misc/quick-navigation-menu, '', 'selected={$quickNavSelected}'}" class="OverlayTrigger jumpMenuTrigger" data-cacheOverlay="true" title="{xen:phrase open_quick_navigation}"><i class="fa fa-sitemap"></i></a> <div class="boardTitle"><strong>{$xenOptions.boardTitle}</strong></div> <span class="crumbs"> <xen:if is="{$showHomeLink}"> <span class="crust homeCrumb"{xen:if $microdata, ' itemscope="itemscope" itemtype="http://data-vocabulary.org/Breadcrumb"'}> <a href="{$homeLink}" class="crumb"{xen:if $microdata, ' rel="up" itemprop="url"'}><span{xen:if $microdata, ' itemprop="title"'}><i class="fa fa-home"></i></span></a> <span class="arrow"><span></span></span> </span> <xen:elseif is="{$selectedTabId} != {$homeTabId}" /> <span class="crust homeCrumb"{xen:if $microdata, ' itemscope="itemscope" itemtype="http://data-vocabulary.org/Breadcrumb"'}> <a href="{$homeTab.href}" class="crumb"{xen:if $microdata, ' rel="up" itemprop="url"'}><span{xen:if $microdata, ' itemprop="title"'}><i class="fa fa-home"></i></span></a> <span class="arrow"><span></span></span> </span> </xen:if> <xen:if is="{$selectedTab}"> <span class="crust selectedTabCrumb"{xen:if $microdata, ' itemscope="itemscope" itemtype="http://data-vocabulary.org/Breadcrumb"'}> <a href="{$selectedTab.href}" class="crumb"{xen:if $microdata, ' rel="up" itemprop="url"'}><span{xen:if $microdata, ' itemprop="title"'}>{$selectedTab.title}</span></a> <span class="arrow"><span>></span></span> </span> </xen:if> <xen:if is="{$navigation}"> <xen:foreach loop="$navigation" value="$breadcrumb" i="$i" count="$count"> <span class="crust"{xen:if $microdata, ' itemscope="itemscope" itemtype="http://data-vocabulary.org/Breadcrumb"'}> <a href="{xen:raw $breadcrumb.href}" class="crumb"{xen:if $microdata, ' rel="up" itemprop="url"'}><span{xen:if $microdata, ' itemprop="title"'}>{xen:raw $breadcrumb.value}</span></a> <span class="arrow"><span>></span></span> </span> </xen:foreach> </xen:if> </span> </fieldset> </nav>
Mình dùng bản 2.07, trước đó không sao bởi mình không chỉnh gì code gần đây. Không biết có phải do dùng add seo dẫn đến tình trạng này? Theo như đoạn code bạn post thì cần thêm Code: <xf:set var="$position" value="{{ 0 }}" /> <xf:set var="$position" value="{{ $position + 1 }}" /> arg-position="{$position}" cần chỉnh thêm gì nữa không bạn?
Cảm ơn @Dang nhiều, đã dãn đoạn code đó vào web và check search.google.com lại thấy không còn 2 lỗi trên