Support » Plugin: Yoast SEO » Feature Request: Make LD JSON Search Schema Optional

  • I have a site that is comprised of multiple CMS, and does not use the WordPress search. I suggest either making the search schema optional, or give us a way to customize it. I am fine with a filter, hook, or front-end options.

    Thank you!

    Maybe a filter already exists? I looked on Git, but wasn’t really savvy enough to find what I was looking for.

    Barbara

    https://wordpress.org/plugins/wordpress-seo/

Viewing 15 replies - 1 through 15 (of 18 total)
  • He mentions a filter in his readme doc but I’m not exactly sure how to apply it. A code sample for us non programmers would be nice. I too want to remove this code from my site.

    If you figure it out, please share the code.

    I’m not certain if this is correct, so someone else can verify or please correct it, but I added this to my functions file:

    add_filter( 'disable_wpseo_json_ld_search', '__return_true' );

    That’s what I gathered from the examples on Yoast’s site here: https://yoast.com/wordpress/plugins/seo/api/

    and the WordPress code reference: http://developer.wordpress.org/reference/functions/__return_true/

    I tried testing with the rich snippet testing tool, but nothing showed up in either case…?

    Mike, that did it exactly! Thank you.

    And for those that want to CHANGE the search engine URL, try this:

    function change_json_ld_search_url( $str ) {
    $home_url = trailingslashit( home_url() );
    $str = $home_url . ‘?s={search_term}&post_type=product’;
    return $str;
    }
    add_filter( ‘wpseo_json_ld_search_url’, ‘change_json_ld_search_url’, 10, 1 );

    This thing is bad because now, it creates two broken links

    You can see it in your google webmaster tools. You will see two 404 pages

    ?s=%7Bsearch_term%7D

    &

    search/%7Bsearch_term%7D/

    It means googlebot considers there are two broken links for homepage in my case

    I have disabled this feature, but GWT is reporting 100s of not found errors now with errors that look like this:

    .com/search/%7Bsearch_term%7D%2Fpage%2F6%2Fpage%2F3%2Fpage%2F2%2Fpage%2F6%2Fpage%2F6%2Fpage%2F3%2Fpage%2F2%2Fpage%2F3%2Fpage%2F6%2Fpage%2F3%2Fpage%2F2%2Fpage%2F7%2Fpage%2F2%2Fpage%2F2%2Fpage%2F3%2Fpage%2F2%2Fpage%2F3%2Fpage%2F2%2Fpage%2F2%2Fpage%2F8%2Fpage%2F2%2Fpage%2F2

    I’ve got this in my functions.php

    add_filter( ‘disable_wpseo_json_ld_search’, ‘__return_true’ );

    Someone else may have to chime in on why you are getting errors.

    However the Yoast knowledge base echoes my suggested solution, above:

    http://kb.yoast.com/article/156-what-is-google-sitelinks-search-box

    Maybe it’s a yoast issue; maybe it’s a WP 4.1 issue? bloup above seems to have the same issue as I do. Checked webmaster tools again this morning, and it jumped from 248 errors to 3977 not found errors. All of them for search/%7search_term%7

    I have crawled my site looking for any variation of this text on the site, and cannot find it, so I have no idea what’s creating these links. I will keep digging, I am finding a lot of people with this issue in the last 30 days, but so far no solutions.

    I’ll just add one more note after looking in server log files. Apparently, Google has been crawling these URLs for a while, but the errors didn’t start happening until I upgraded our site and plugins this past Friday. Before, all these garbage URLs were returning a 200 success code, but now, return a 404.

    I also did a complete text search of the entire WordPress project for “search_term”, and it’s only location is in Yoast plugin. I checked, and it’s not executing the JSON search, and hasn’t for a while. I might just redirect this stuff to a generic search page until I can figure out what’s happened.

    @mike Imken

    Thanks for the link, I used the code listed at YOAST and was able to change the URL of the search box.

    Since successfully changing it, now on GWT it’s a throwing a “0” Sitemaps submitted notice, with all sitemaps “Pending”.

    Any idea why?

    Thanks!

    @chris790

    Sorry I don’t.

    My concern was to disable the Google search in the results so that visitors would actually go to my client’s sites, rather than stay on Google.

    I haven’t had those errors so far in any sites I’ve implemented the solution.

    My guess in the other cases is maybe a theme or other plugin conflict.

    I added the add_filter( ‘disable_wpseo_json_ld_search’, ‘__return_true’ ); and got the problems mentioned above with Webmaster Tools. 404’s (not found) on all our Sitemap links.

    Within Yoast, XML Sitemaps resulted in a not found page.

    I fixed it by disabling XML sitemaps completely on Yoast (unchecked the relevant checkbox)…Saved…and then rechecked it and Saved. It all worked and Webmaster Tools showed no errors.

    Hope this will help.

    Thanks to all for providing solutions and feedback.

    jsearles

    (@jsearles)

    I had some problems with the class-json-ld.php creating errors that showed up in Google’s Structured Data Testing tool.

    I added this code to my functions.php in my child theme

    add_filter( 'wpseo_json_ld_output', '__return_false' );

    Success! No errors messages now.

    tomjuxta

    (@tomjuxta)

    I’m looking to disable this too – I’m receiving an error regarding WebSite in the Structured Data Testing Tool and I don’t want the search feature anyway, so figured I may as well delete it by adding:

    add_filter( ‘disable_wpseo_json_ld_search’, ‘__return_true’ );

    My only issue, where do I add this please?

    Edit: I understand this needs to be inputted into functions.php – but where can I access this please? I can’t seem to find it in the backend of WP.

    Thanks!

    Destac

    (@destac)

    The data markup error will not affect your rankings in any way. However, it also has no benefit to you currently. There will probably be a fix for it soon.

    @tomjuxta:

    Go to Appearance > Editor and under Templates on the right you should see Theme Functions (functions.php). Place it anywhere after the opening php code.

    So for example one of my sites looks like this and can be done like so:

    <?php
    //* Start the engine
    include_once( get_template_directory() . '/lib/init.php' );
    
    add_filter( 'disable_wpseo_json_ld_search', '__return_true' );

    One important suggestion: if you are not familiar with making changes to the functions.php file, download a copy to your computer, using FTP for example, so you have a backup to restore just in case. A simple misplaced semicolon will create unnecessary excitement in your life 😉

    Hope that helps.

Viewing 15 replies - 1 through 15 (of 18 total)
  • The topic ‘Feature Request: Make LD JSON Search Schema Optional’ is closed to new replies.