谷歌站长工具结构化数据错误提示修正方法

我有个习惯,看到哪里报错了,非解决不可,要不然心里惦记着啊,不舒服啊…这最近用谷歌站长工具,发现我这个wordpress博客有一大堆问题啊…例如:

Structured Data Errors
一大堆结构化数据错误…

除了最明显的结构化数据这里有无数个页面错误,好在这里大多可以通过修改模版一次性解决.但是如何解决了,最令我无语的是起初我用的是英文版的谷歌站长工具…看不懂,什么叫做Structured Data > hatom (markup: microformats.org)?什么叫做Missing: updated? 什么叫做Missing: author?搞不懂…看了半天帮助文档,弄了一晚上没搞明白,外加坑爹中国GFW,又不能上google plus…好多服务都限制了.不过功夫不负有心人.我看了无数遍帮助文档,还有Structured Data Testing Tool里面的Examples,以及谷歌的论坛,终于解决了.下面来说一下这两个问题怎么解决了.

关于Missing: author解决办法:

官方说在HTML内添加:<a href=”你的g+地址”?rel=”author”>Google</a>(可能是这样的,我不记得了…)但是这样做页面就会多出来个google,那么我只好通过删掉内容,放一个空标签进去了.这样似乎可以解决,但是我不喜欢空标签,我看了Examples里面有一个这样写的:

<link rel="author" href="https://plus.google.com/107770226485624482093" />
author
Missing: author错误提示解决办法图

我试了一下,编辑header.php,添加此段引用代码,将href=””内地址换成你自己的.就通过了测试…(对了前提是你要有通过E-mail验证.)

关于Missing: updated解决办法:

找到主题的function.php这个地方,如图

updated
Missing: updated错误的解决方法图

在发布日期这里找到class="entry-date"里面添加一个updated就可以了,只是标记作用.

这些小问题,解决起来很容易,可是实际在寻找解决方法的时候可是困难重重,希望能帮助哪些需要解决也没找到如何解决的朋友.直到后来,,,昨天发现原来有中文版的谷歌站长工具,真是费尽我脑汁去翻译,晕死了.

如果有人遇到了相同的问题或者更多关于结构化数据错误,可以去这里Google Product Forums搜索答案,就不要用baidu了,它什么也不会告诉你的: )

PS:毕竟本文有时效性,不同的主题可能也不一样,无法做到通用,我也只能做到提供一种方案,大家举一反三咯~有些模板也要修改PO和MO的,大家可参考参考WORDPRESS自定义模板后的PO文本翻译修改以及MO修改教程(更新日期:2015-06-05)

发布者

whidy

不可忘记初衷,不可迷失方向,所有一切都为梦想... http://www.whidy.net/about (updated 2014-5)

《谷歌站长工具结构化数据错误提示修正方法》有14个想法

  1. 昨晚被missing:update和missing:author的问题折腾至大半夜。可能是用脑过度,凌晨两点闭上眼睡觉的时候,竟感觉到天旋地转。

    我的Word Press网站是在今年5月15日开通,主题是Twenty Thirteen。

    关于missing:author的部分,我不太理解站长所说,所以这部分没有照做。我是用了其他方式更新author的部分。因为我用的主题据说是只有单一作者的时候,不会显示作者是谁,所以要多“制造”一个作者,然后随便开一个贴,再删除也无所谓,所有的贴就会出现作者了。

    不过,当我去live testing的时候,错误讯息依旧。

    missing:update的部分,我照站长的方式做了,但在live testing的还是会出现错误讯息。但隔天早上还要上班,所以就此打住。

    上班的时候也不断的上网找解决方案,但这方面的资讯不多,我也不是IT出身,这真的是把我难道了。

    结果呢,还是硬着头皮找答案,再去live testing,虽然出现update和author两项错误讯息,但具体讯息是Node is empty,再看看错误讯息列表,感觉有些眉目。

    就这样寻线追击,我发现所有出错的部分其实都是一样,不管是update还是author,总之就是少了什么。

    结果我发现,在WP主题函数,有一段关于作者的编码:

    if ( ‘post’ == get_post_type() ) {
    printf( ‘%3$s‘,
    esc_url( get_author_posts_url( get_the_author_meta( ‘ID’ ) ) ),
    esc_attr( sprintf( __( ‘View all posts by %s’, ‘twentythirteen’ ), get_the_author() ) ),
    get_the_author()
    );
    }
    }
    endif;

    请注意第二行,a class=”url fn n”的部分,在live testing错误讯息列表的部分,url和fn都有讯息,唯独n是空的,我就想说,这是不是问题的根源。

    结果再上网查找,n是指中间名,西方人都是有的,如果要加入中间名,就要在author部分加设定n的值。如果不想放中间名该怎么办呢?直接在删掉n即可。

    我删了n之后,再去做live testing。这次没有错误讯息了,出现的字眼是good。

    希望我的回复可以帮到遇上类似问题的人。

    话说回来,谷歌实在是折腾人,什么都要符合它的标准。

      1. 真的是老眼昏花,之前的回复贴错编码了,特此重贴:
        // Post author
        if ( ‘post’ == get_post_type() ) {
        printf( ‘%3$s‘,
        esc_url( get_author_posts_url( get_the_author_meta( ‘ID’ ) ) ),
        esc_attr( sprintf( __( ‘View all posts by %s’, ‘twentythirteen’ ), get_the_author() ) ),
        get_the_author()
        );
        }
        }
        endif;
        在第三行,应该可以看到a class=”url fn n” ,我就是删掉n,才把问题解决。

        完全依赖现成的东西还是不行,还是要掌握一点基本的编码知识。

        我以后还会常常来叨扰,哈哈!

          1. 我昨天也上谷歌站长工具查了下,目前我的站基本正常,不过大陆这边,google屏蔽的厉害所以也就没怎么研究了.
            留言编辑器可能不能很好支持编码显示,,,既然搞定了那就祝贺祝贺了,几天没白折腾. :)

      1. 关于Missing: updated,我在functions.php中找不到class=”entry-date” 这一段,是需要自己添加么。。代码来源是哪里呢?

        1. 我用的wordpress 3.9系统,主题是Twenty Twelve,,,如果你找不到entry-date,你可以尝试审查你的主题关于日期这一块代码,并找到对应的位置.

发表评论

电子邮件地址不会被公开。 必填项已用*标注

:wink: :twisted: :roll: :oops: :mrgreen: :lol: :idea: :evil: :cry: :arrow: :?: :-| :-x :-o :-P :-D :-? :) :( :!: 8-O 8)