Announcement

Collapse
No announcement yet.

Google Webmaster Breadcrumb Report

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Google Webmaster Breadcrumb Report

    Google Webmaster added a new report about breadcrumbs structured data:

    https://searchengineland.com/breadcr...console-322347

    Since then we have been getting emails from Google Webmaster about errors involving breadcrumbs from both our sites where there have never been errors before (until this new report).

    When adding new categories and products to the stores I also submit each new URL one by one manually to Google Webmaster (URL inspection) so they will be indexed and crawled immediately instead of waiting for Google to discover them on its own.

    Since the new report manually submitting URLs to Google also generates a breadcrumb error on most every page I submit where before this new report there were no errors. Curiously some pages do not generate the breadcrumb structured data and there is nothing really different about the pages that have errors and the pages that have no errors I have seen (yet).

    The errors mention invalid and unnamed items of

    Missing field: item
    Missing field: position
    Either name or item.name should be specified

    I don't know anything about breadcrumb structured data and since the breadcrumb structured data comes from and are generated by Miva what can be done to figure out why Google thinks all these pages have problems with the breadcrumb structured data?

    Is it a Google problem or a Miva problem?

    If somebody at Miva wants to see the errors, just go to Google Webmaster and Inspect some URLs and submit them for indexing.

    When the store owners get these reports of errors they want something done about it and I don't know how to fix it.

    #2
    Tagging in on this one - I've been trying to figure this one out too.
    Leslie Kirk
    Miva Certified Developer
    Miva Merchant Specialist since 1997
    Previously of Webs Your Way
    (aka Leslie Nord leslienord)

    Email me: [email protected]
    www.lesliekirk.com

    Follow me: Twitter | Facebook | FourSquare | Pinterest | Flickr

    Comment


      #3
      I have a clue by looking at the offending section of HTML and another section that is not offensive:

      The complaint from Google are three errors:

      Missing field "position"
      Missing field "item"
      Either "name" or "item.name" should be specified

      Some non offending breadcrumb code seems to have those three (item, name, position):

      <li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
      <a itemprop="item" href="https://www.touchwindow.com/c/Printers.html"><span itemprop="name">Printers</span></a><span class="breadcrumb-border">&#47;</span>
      <meta itemprop="position" content="1" />
      </li>

      The offending code does not have those three elements:

      <li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
      <a href="https://www.touchwindow.com/" class="breadcrumb-home">Home</a><span class="breadcrumb-border">&#47;</span>
      </li>

      The entire hunk of code has the offending code listed first and under it the non offending code:

      <ul itemscope itemtype="http://schema.org/BreadcrumbList">
      <li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
      <a href="https://www.touchwindow.com/" class="breadcrumb-home">Home</a><span class="breadcrumb-border">&#47;</span>
      </li>
      <li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
      <a itemprop="item" href="https://www.touchwindow.com/c/Printers.html"><span itemprop="name">Printers</span></a><span class="breadcrumb-border">&#47;</span>
      <meta itemprop="position" content="1" />
      </li>
      </ul>

      Comment


        #4
        This is the basis of the breadcrumb code used in the Shadows line of ReadyThemes, so you will have to adjust it for your site. However, It includes the position indicator as well as ARIA tags.
        Code:
        <nav aria-label="Breadcrumb">
            <ol itemscope itemtype="http://schema.org/BreadcrumbList">
                <li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
                    <a href="&mvt:breadcrumbs:homelink;" title="Home" itemprop="item">
                        <span itemprop="name">Home</span>
                    </a>
                    <meta itemprop="position" content="1" />
                </li>
                <mvt:assign name="l.settings:breadcrumb:position" value="1"/>
                <mvt:foreach iterator="cats" array="breadcrumbs:links">
                    <mvt:assign name="l.settings:breadcrumb:position" value="l.settings:breadcrumb:position + 1"/>
                    <mvt:if expr="l.settings:cats:name EQ '...'">
                        <li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
                            <a href="&mvt:cats:link;" title="&mvt:cats:name;" itemprop="item">
                                <span itemprop="name">&mvt:cats:name;</span>
                            </a>
                            <meta itemprop="position" content="&mvt:breadcrumb:position;" />
                        </li>
                    <mvt:elseif expr="l.settings:cats:code EQ l.settings:breadcrumbs:current_item:code">
                        <li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
                            <a href="&mvt:cats:link;" aria-current="page" title="&mvt:cats:name;" itemprop="item">
                                <strong itemprop="name">&mvt:cats:name;</strong>
                            </a>
                            <meta itemprop="position" content="&mvt:breadcrumb:position;" />
                        </li>
                    <mvt:else>
                        <li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
                            <a href="&mvt:cats:link;" title="&mvt:cats:name;" itemprop="item">
                                <span itemprop="name">&mvt:cats:name;</span>
                            </a>
                            <meta itemprop="position" content="&mvt:breadcrumb:position;" />
                        </li>
                    </mvt:if>
                </mvt:foreach>
            </ol>
        </nav>
        Matt Zimmermann

        Miva Web Developer
        Alchemy Web Development
        https://www.alchemywebdev.com
        Site Development - Maintenance - Consultation

        Miva Certified Developer
        Miva Professional Developer

        https://www.dev4web.net | Twitter

        Comment


          #5
          That's fine I guess except the afflicted stores are using the Levels ReadyTheme and you might be making the assumption that I am as knowledgeable about the Miva inner workings as everybody else around here so I can adjust it to work, put in in the proper place and test it - which I'm not.

          Why doesn't somebody from Miva create and post the code that will work without adjustment for the Levels ReadyTheme with instructions describing exactly how to apply the adjustment? I should just be able to drop it in to the right place, right?

          Somebody at Miva is going to have to do that anyway to fix what appears to be a programming over-site in the Levels ReadyTheme, right?

          Comment


            #6
            At this time, the Legacy ReadyThemes are only receiving any security related updates so I have no plans on including something like this. However, if you navigate to User Interface -> Settings -> Smart Breadcrumbs and replace that code with this, you should pass the tests.
            Code:
            <mvt:if expr="NOT (l.settings:page:code CIN g.screenCheck) AND l.settings:page:code NE 'SFNT'">
                <div class="row breadcrumbs">
                    <nav class="column whole wrap float-none large-np">
                        <ol itemscope itemtype="http://schema.org/BreadcrumbList">
                            <li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
                                <a class="breadcrumb-home" href="&mvt:breadcrumbs:homelink;" title="Home" itemprop="item">
                                    <span itemprop="name">Home</span>
                                </a>
                                <span class="breadcrumb-border">&#47;</span>
                                <meta itemprop="position" content="1"/>
                            </li>
                            <mvt:assign name="l.settings:breadcrumb:position" value="1"/>
                            <mvt:foreach iterator="cats" array="breadcrumbs:links">
                                <mvt:assign name="l.settings:breadcrumb:position" value="l.settings:breadcrumb:position + 1"/>
                                <li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
                                    <mvt:if expr="l.settings:cats:name EQ '...'">
                                        <a class="cats-hidden" href="&mvt:cats:link;" title="&mvt:cats:name;" itemprop="item">
                                            <span itemprop="name">&mvt:cats:name;</span>
                                        </a>
                                        <span class="breadcrumb-border">&#47;</span>
                                        <meta itemprop="position" content="&mvt:breadcrumb:position;"/>
                                    <mvt:elseif expr="l.settings:cats:code EQ l.settings:breadcrumbs:current_item:code">
                                        <a class="current-item" href="&mvt:cats:link;" aria-current="page" title="&mvt:cats:name;" itemprop="item">
                                            <span itemprop="name">&mvt:cats:name;</span>
                                        </a>
                                        <meta itemprop="position" content="&mvt:breadcrumb:position;"/>
                                    <mvt:else>
                                        <a href="&mvt:cats:link;" title="&mvt:cats:name;" itemprop="item">
                                            <span itemprop="name">&mvt:cats:name;</span>
                                        </a>
                                        <span class="breadcrumb-border">&#47;</span>
                                        <meta itemprop="position" content="&mvt:breadcrumb:position;"/>
                                    </mvt:if>
                                </li>
                            </mvt:foreach>
                        </ol>
                    </nav>
                </div>
                <!-- end breadcrumbs -->
            </mvt:if>
            Matt Zimmermann

            Miva Web Developer
            Alchemy Web Development
            https://www.alchemywebdev.com
            Site Development - Maintenance - Consultation

            Miva Certified Developer
            Miva Professional Developer

            https://www.dev4web.net | Twitter

            Comment


              #7
              We found that the problem exists only on CTGY pages for categories that have no parent. When that happens, the smart breadcrumbs code indicates to Google that there are breadcrumbs, but then doesn't provide any info for them (because there aren't any). To resolve the error, I edited the bolded breadcrumb with this simple conditional, which I believe will work. On my site, it is an unordered list (ul). If your code is using an ordered list (ol), just replace the underlined ul's with ol's.

              <mvt:if expr="l.settings:category:parent_id">
              <ul vocab="https://schema.org/" typeof="BreadcrumbList">
              <mvt:else>
              <ul>
              </mvt:if>


              I'm still waiting to see if Google validates the fix. In the meantime, if any experts out there can confirm this will work or has a better solution, that would be great.



              Originally posted by Matt Zimmermann View Post
              This is the basis of the breadcrumb code used in the Shadows line of ReadyThemes, so you will have to adjust it for your site. However, It includes the position indicator as well as ARIA tags.
              Code:
              <nav aria-label="Breadcrumb">
              <ol itemscope itemtype="http://schema.org/BreadcrumbList">
              <li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
              <a href="&mvt:breadcrumbs:homelink;" title="Home" itemprop="item">
              <span itemprop="name">Home</span>
              </a>
              <meta itemprop="position" content="1" />
              </li>
              <mvt:assign name="l.settings:breadcrumb:position" value="1"/>
              <mvt:foreach iterator="cats" array="breadcrumbs:links">
              <mvt:assign name="l.settings:breadcrumb:position" value="l.settings:breadcrumb:position + 1"/>
              <mvt:if expr="l.settings:cats:name EQ '...'">
              <li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
              <a href="&mvt:cats:link;" title="&mvt:cats:name;" itemprop="item">
              <span itemprop="name">&mvt:cats:name;</span>
              </a>
              <meta itemprop="position" content="&mvt:breadcrumb:position;" />
              </li>
              <mvt:elseif expr="l.settings:cats:code EQ l.settings:breadcrumbs:current_item:code">
              <li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
              <a href="&mvt:cats:link;" aria-current="page" title="&mvt:cats:name;" itemprop="item">
              <strong itemprop="name">&mvt:cats:name;</strong>
              </a>
              <meta itemprop="position" content="&mvt:breadcrumb:position;" />
              </li>
              <mvt:else>
              <li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
              <a href="&mvt:cats:link;" title="&mvt:cats:name;" itemprop="item">
              <span itemprop="name">&mvt:cats:name;</span>
              </a>
              <meta itemprop="position" content="&mvt:breadcrumb:position;" />
              </li>
              </mvt:if>
              </mvt:foreach>
              </ol>
              </nav>
              Paul

              Comment


                #8
                Originally posted by Matt Zimmermann View Post
                At this time, the Legacy ReadyThemes are only receiving any security related updates so I have no plans on including something like this. However, if you navigate to User Interface -> Settings -> Smart Breadcrumbs and replace that code with this, you should pass the tests.
                Code:
                <mvt:if expr="NOT (l.settings:page:code CIN g.screenCheck) AND l.settings:page:code NE 'SFNT'">
                <div class="row breadcrumbs">
                <nav class="column whole wrap float-none large-np">
                <ol itemscope itemtype="http://schema.org/BreadcrumbList">
                <li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
                <a class="breadcrumb-home" href="&mvt:breadcrumbs:homelink;" title="Home" itemprop="item">
                <span itemprop="name">Home</span>
                </a>
                <span class="breadcrumb-border">&#47;</span>
                <meta itemprop="position" content="1"/>
                </li>
                <mvt:assign name="l.settings:breadcrumb:position" value="1"/>
                <mvt:foreach iterator="cats" array="breadcrumbs:links">
                <mvt:assign name="l.settings:breadcrumb:position" value="l.settings:breadcrumb:position + 1"/>
                <li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
                <mvt:if expr="l.settings:cats:name EQ '...'">
                <a class="cats-hidden" href="&mvt:cats:link;" title="&mvt:cats:name;" itemprop="item">
                <span itemprop="name">&mvt:cats:name;</span>
                </a>
                <span class="breadcrumb-border">&#47;</span>
                <meta itemprop="position" content="&mvt:breadcrumb:position;"/>
                <mvt:elseif expr="l.settings:cats:code EQ l.settings:breadcrumbs:current_item:code">
                <a class="current-item" href="&mvt:cats:link;" aria-current="page" title="&mvt:cats:name;" itemprop="item">
                <span itemprop="name">&mvt:cats:name;</span>
                </a>
                <meta itemprop="position" content="&mvt:breadcrumb:position;"/>
                <mvt:else>
                <a href="&mvt:cats:link;" title="&mvt:cats:name;" itemprop="item">
                <span itemprop="name">&mvt:cats:name;</span>
                </a>
                <span class="breadcrumb-border">&#47;</span>
                <meta itemprop="position" content="&mvt:breadcrumb:position;"/>
                </mvt:if>
                </li>
                </mvt:foreach>
                </ol>
                </nav>
                </div>
                <!-- end breadcrumbs -->
                </mvt:if>
                Should the Home link be included from an SEO perspective? Our original code from a different theme excluded it and I thought I read somewhere it shouldn't be included (which is why I've got some categories without crumbs). I've seen it both ways on various websites. What is preferred by Google?
                Paul

                Comment


                  #9
                  Hi Paul,

                  From an accessibility standpoint, having a HOME link is beneficial to know the progression of the link structure. Additionally, using an ordered list, over an unordered list, show the navigation structure in a better light to screen readers.
                  Matt Zimmermann

                  Miva Web Developer
                  Alchemy Web Development
                  https://www.alchemywebdev.com
                  Site Development - Maintenance - Consultation

                  Miva Certified Developer
                  Miva Professional Developer

                  https://www.dev4web.net | Twitter

                  Comment


                    #10
                    Thanks. We do display the Home link, but don't include it in the structured data. I am wondering what Google prefers (or if it doesn't matter). Thanks for the tip on the ordered list. I will work on that change.

                    Thanks for the advice.

                    Paul
                    Paul

                    Comment


                      #11
                      I replaced the code with what you sent and Google URL inspection complains in the same way - and I have no idea what ARIA tags are.

                      Now what?

                      Comment


                        #12
                        Can you post a link the the page in question?
                        Matt Zimmermann

                        Miva Web Developer
                        Alchemy Web Development
                        https://www.alchemywebdev.com
                        Site Development - Maintenance - Consultation

                        Miva Certified Developer
                        Miva Professional Developer

                        https://www.dev4web.net | Twitter

                        Comment


                          #13
                          I think Google Inspector may be reporting on cached pages that are already indexed it doesn't see the adjustment.
                          .
                          If on the inspection screen I choose Live Test (which I have never done before) it does not complain.

                          So I think I will have to wait and accumulate some new products to see how things look (things that have not been inspected previously).

                          Comment


                            #14
                            It seems to be that "wait" that the real pain the rear. I wish there was some way to clear Google's cache as it thinks the submitted links are still not fixed and won't offer any sort of "please recheck" link now.
                            Leslie Kirk
                            Miva Certified Developer
                            Miva Merchant Specialist since 1997
                            Previously of Webs Your Way
                            (aka Leslie Nord leslienord)

                            Email me: [email protected]
                            www.lesliekirk.com

                            Follow me: Twitter | Facebook | FourSquare | Pinterest | Flickr

                            Comment


                              #15
                              In the Google Breadcrumb Report you can click some of the errors and choose to "validate the fix" and then in a day or two or three I get another email that it has verified the fix on so many hundred pages and I'm going to keep doing that until it runs clean.

                              Every week I'm adding 100+ new products to these stores (dropping some too).

                              Of course I make a new sitemap but don't count on Google and Bing to get the message so I submit the sitemaps manually. I think there is a problem in Miva about notifying Google and Bing about new sitemaps (doesn't work) so I would suggest you don't count on it to work - do it yourself and you will know it worked.

                              Then for the 100+ new part numbers I've added I have a spreadsheet of URLs where I can submit the new URLs to Bing en masse but for Google you have to do them one at a time. Each one takes about 82 seconds for me.

                              Yes - in Google I URL Inspect at least 100+ new part numbers a week to Google URL inspect and request indexing one at a time (about 82 seconds each). Every category I change I manually submit - why wait for Google to figure it out in days/weeks? I want to see my new products in Google search now.

                              After manually submitting Google seems to discover the new URL almost instantly and often a google search will turn up our site ahead of the manufacturer so I think it is worth the time to submit URLs one at a time to Google. Bing takes a little longer.

                              Last week (when Google offered this new report) these submits were complaining about about breadcrumbs but so far (after adjusting the Miva code) the 100+ I did so far this weekend have not complained. Hopefully it will catch up with the other thousands.

                              I'm still saddened by the fact that this is a Miva problem and Support says '"The Level's ReadyTheme is considered end-of-life beyond critical security updates." which means they are not willing to fix the inherent problem in their code.

                              Google sends me emails like this:


                              Google has started validating your fix of Breadcrumbs issues on your site. Specifically, we are checking for ‘Missing field "position"’, which currently affects 1371 pages.

                              Validation can take a few days; we will send you a message when the process is complete. You can monitor the progress of the test by following the link below.
                              Last edited by joseibarra; 09-28-19, 02:58 PM.

                              Comment

                              Working...
                              X