Support » Plugin: Yoast SEO » [Plugin: WordPress SEO by Yoast] OpenGraph Issue when also using SEO with Root Relative URLs plugin

  • ==> WordPress version: 3.4.2
    ==> WordPress SEO version:

    ==> I did this:

    Note that I have the Root Relative URLs plugin well as a plugin that lets me place a Facebook Like button on my page (have tried several actually). It first came to my attention while troubleshooting an issue with Facebook Like counters using the Facebook Developer’s Debugger.

    ==> I expected the plugin to do this:

    I expected the plugin to generate the correct code regardless of what other plugins might be installed. Example:

    <meta property='og:url' content=''/>

    While I realize that Root Relative URLs plugin is at the root of the problem, it is crucial that WordPress SEO take the initiative to ensure all URL’s are complete.

    This is especially important in instances where the information is a link that another site, like Facebook, will be using to refer back to your website.

    ==> Instead it did this:

    With the Root Relative URLs plugin installed, WordPress SEO generates the following OpenGraph line of code:

    <meta property='og:url' content='/'/>

    ==> Here is how to fix the problem

    In the case of og:url, it is possible to fix the OpenGraph og:url meta property by editing the file named wp-content/plugins/wordpress-seo/frontend/class-opengraph.php and replace this line…

    echo "<meta property='og:url' content='" . esc_attr( $this->canonical( false ) ) . "'/>\n";

    … with the following two lines …

    $SiteRoot = (substr(esc_attr( $this->canonical( false ) ),0,1) == '/' ? (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443 ? "https" : "http") : '') . "://" . $_SERVER['HTTP_HOST'];
    echo "<meta property='og:url' content='". $SiteRoot . esc_attr( $this->canonical( false ) ) . "'/>\n";

    Please fix this problem as soon as possible. Until this fix is included in WordPress SEO, folks will always have to remember to apply the fix each time they update the WordPress SEO plugin.

    ==> So why is this important to me?

    Facebook makes use of the ‘og:url’ meta property.

    Unfortunately you won’t see the problem on my site ( unless I forget to re-apply the fix after updating WordPress SEO. That being said, I would be happy to assist the developers of WordPress SEO with this reproducible issue.

    Best regard,

    Michael Milette

Viewing 15 replies - 1 through 15 (of 18 total)
  • Correction – The two lines should be:

    $SiteRoot = (substr(esc_attr( $this->canonical( false ) ),0,1) == '/' ? 'http'.(@empty($_SERVER['HTTPS'])?'':'s').'://'.$_SERVER['SERVER_NAME'].( $_SERVER['SERVER_PORT']!=='80' && $_SERVER['SERVER_PORT']!=='443' ? ':'.$_SERVER['SERVER_PORT'] : '') : '');
    echo "<meta property='og:url' content='". $SiteRoot . esc_attr( $this->canonical( false ) ) . "'/>\n";

    These fix a bug and take the port into consideration if it isn’t the standard 80 or 443.

    Micheal Milette

    I hope that this gets improved. I often have to deal with root/relative URLs as part of WP site migrations.

    same problem. wordpress seo generates the following code <meta property=’og:url’ content=”/> without adding the site url so facebook open graph debug states that the object is invalid because the given value ” for property ‘og:url’ could not be parsed as type ‘url’. Not really interested in trying to re-wrote the plugin code as suggested above. Hopefully a fix is in the works for this great product.

    Same problem over here. I’m just hacking the code after each update to fix this manually.

    what change are you making to the code?

    In the file /wordpress-seo/frontend/class-opengraph.php, around line 134 look for the function called public function url(), replace it with this:

    public function url() {
        $url = 'http://'.$_SERVER["SERVER_NAME"].$_SERVER['REQUEST_URI'];
        echo "<meta property='og:url' content='" . $url . "'/>\n";

    tired and the file transfer failed citing permission denied.

    That’s an issue regarding the file permissions on your server, you should try with the main user for the account, or contact the hosting guys if you were using the main account already.

    reset the permissions and it worked but with one small glitch.

    my site format is and the url used was

    Is there any way of modifying the code to eliminate the trailing slash?

    try replacing




    same result – url still has the /


    Go to yoursite/wp-admin/options-general.php

    See if you typed the trailing slash in the URL for “WordPress address” or “Site address”.

    no / there and I added a filter so WP SEO does not add it. I have a rel canonical meta tag in the head so may not be a big deal but would be nice to not have it show in the og meta data. Maybe this is the default for WP?

    The slash is coming from the $_SERVER[‘REQUEST_URI’] variable.

    Maybe you can add an if statement to check if the current page is the home:

        $url = get_bloginfo('url');
        $url = 'http://'.$_SERVER["SERVER_NAME"].$_SERVER['REQUEST_URI'];

    Perfect! Worked great. Thanks for all your help on this

Viewing 15 replies - 1 through 15 (of 18 total)
  • The topic ‘[Plugin: WordPress SEO by Yoast] OpenGraph Issue when also using SEO with Root Relative URLs plugin’ is closed to new replies.