Hỏi về lỗi thiếu position

Discussion in 'Search Engine Optimization' started by u23, Sep 27, 2019.

  1. u23

    u23 Sơ Nhập Giang Hồ

    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:
    Screenshot (1).png

    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 {bad_smelly}
     
  2. Hoa Mãn Lâu

    Hoa Mãn Lâu Trưởng Môn

    Có thể chuyển sang tiếng anh đọc cho dễ dc ko thím, chứ e củng chưa gặp lỗi nầy bao h luôn
     
  3. u23

    u23 Sơ Nhập Giang Hồ

    đây thím
    Screenshot (2).png
    Đây thím
     
  4. Dang

    Dang Bang Chúng

    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", ...
     
  5. u23

    u23 Sơ Nhập Giang Hồ

    Mình dùng thằng này https://search.google.com/structured-data/testing-tool/u/0/#url=
    Screenshot (3).png
    thì thấy lỗi như trên
     
  6. Dang

    Dang Bang Chúng

    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!
     

    Attached Files:

    u23 likes this.
  7. u23

    u23 Sơ Nhập Giang Hồ

    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 :(
     
  8. Dang

    Dang Bang Chúng

    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?
     
  9. u23

    u23 Sơ Nhập Giang Hồ

    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
    Screenshot (4).png
    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ũ
     
  10. Vito_King

    Vito_King Sơ Nhập Giang Hồ

    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
     
  11. u23

    u23 Sơ Nhập Giang Hồ

    Giờ không biết xử lý trường hợp này sao cụ ạ :(
     
  12. Dang

    Dang Bang Chúng

    Breadcrumb không bị ảnh hưởng bạn ah!

    Bạn quote đoạn html của breadcrumb lên để mình tham khảo thử!
     
  13. u23

    u23 Sơ Nhập Giang Hồ

    1.png 2.png
    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;
                }
            }
        }
    }
     
  14. Thanh Nguyen

    Thanh Nguyen Bang Chúng

    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ả
     
  15. u23

    u23 Sơ Nhập Giang Hồ

    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
     
  16. Dang

    Dang Bang Chúng

    Không có cũng không sao :D ! Nhưng hiện tại bác @u23 đang cần khắc phục lỗi ở Google Search Console!
     
  17. u23

    u23 Sơ Nhập Giang Hồ

    Đú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 :(
     
  18. Dang

    Dang Bang Chúng

    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>&gt;</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>&gt;</span></span>
                        </span>
                    </xen:foreach>
                </xen:if>
            </span>
        </fieldset>
    </nav>
    
     
    u23 likes this.
  19. u23

    u23 Sơ Nhập Giang Hồ

    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?
     
  20. u23

    u23 Sơ Nhập Giang Hồ

    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
     
    Dang likes this.