• I have already setup PageSpeed API key but when I set “Accept requests from these HTTP referrers” values in Google APIs website, The w3tc dashboard said “Unable to fetch Page Speed results.”
    If I leave “Accept requests from these HTTP referrers” blank in the Google APIs, it just works. But I don’t want to leave this blank.

    What referrers I can set to make it works?

    https://www.ads-software.com/plugins/w3-total-cache/

Viewing 15 replies - 1 through 15 (of 18 total)
  • Same thing happening here as well.

    I couldnt find the “Accept requests from these HTTP referrers” on the Google APIs website. The only thing i found was:

    Accept requests from these server IP addresses

    Can you guide me to where this “referrer” text box is so i can test this out?

    I used my sites ips and even left blank and it worked fine (w3tc had no problem getting the PageSpeed)

    Thread Starter vee

    (@okvee)

    Sorry, I can’t remember but I think Google APIs website had changed. They change many things as I see.

    edit—-

    I’m trying to repair my memory.

    * Enable PageSpeed Insights API
    * Go to Credentials > PageSpeed
    * There is Accept requests from these HTTP referrers (web sites) (Optional) in that page.

    ??

    From the API manager dashboard in Google APIs website.
    I got this error pagespeedonline.pagespeedapi.runpagespeed 14 times and it’s increasing every time I click Refresh Analysis in W3TC dashboard.

    OK i found it thanks…seems i was selecting Credentials > Server Key rather than Credentials > Browser Key ;p …i’ll update you in what i find.

    Yea it seems w3tc is not setting the referrer header and so this header defaults (strangely enough) to the actual pagespeed api url…yes, if you set your referrer in Accept requests from these HTTP referrers (web sites) (Optional) to:

    www.googleapis.com/*

    then w3tc’s pagespeed score display will now work. Obviously that is no good.

    The problem lies in w3-total-cache/lib/W3/PageSpeed.php line 74 … the author doesn’t provide any headers to the url request. In this case, no “Referer” is given and so you are at the mercy of what the default action is:

    $response = w3_http_get($request_url);

    Instead the above line should be something like this:

    $headers= array('headers'  => array("Referer" => "https://yourdomain.com/"));
    $response = w3_http_get($request_url,$headers);

    Obviously what i wrote above is just a rough example and instead one would replace the hardcoded domain with a function to pull the site’s protocol and domain name information to set as the referrer. Easy enough. I’m just busy to give the correct code fix.

    I’m curious what do you see the referrer being? I assume your domain root e.g. https://yourdomain.com/ ? Or, maybe the actual w3tc dashboard url page that has the pagespeed widget score displayed e.g. https://yourdomain.com/wp-admin/admin.php?page=w3tc_dashboard ? Let me know a referrer path someone would prefer to use.

    for example:

    • For the domain root one would replace "https://yourdomain.com" with home_url();
    • For the w3tc dashboard url one would replace "https://yourdomain.com" with admin_url('admin.php?page=w3tc_dashboard');
    Thread Starter vee

    (@okvee)

    ??

    I don’t see how the referrer being is.

    ??
    I don’t see how the referrer being is.

    ??? sorry, i don’t have the slightest clue what you mean

    Thread Starter vee

    (@okvee)

    I’m curious what do you see the referrer being?

    I mean this.

    Oh, what i mean is….there is no referer being sent to PageSpeed API (by w3tc) and so w3tc must provide one (via code). This is what will fix your problem. So on PageSpeed’s website you provided a referer string previously. That referer string obviously did not work. So i was wondering what that referer string was. I just assumed you were giving your domain e.g. https://yourdomain.com … i am starting to lean on setting w3tc pagespeed referer as: w3_admin_url(‘admin.php?page=w3tc_dashboard’) which just translates to https://yourdomain.com/wp-admin/admin.php?papge=w3tc_dashboard since i figure people who view their PageSpeed score via w3tc’s dashboard will assume the referer string is that address.

    Kimberly was correct. While I don’t know coding, at all, her advice above led me to play with the google api http referrers. My first guess, worked.

    The error I had, was that I had simply followed the suggestion of the google api, which suggests a sample referrer string, like this –> *.yourdomain.com/*
    (FYI * for wildcard)

    My W3TC started working when changed the google api http string to,
    https://www.yourdomain.com/wp-admin/*

    Thanks Kimberly

    randy

    • This reply was modified 7 years, 6 months ago by rascally.
    Thread Starter vee

    (@okvee)

    https://mydomain.com/wp-admin/admin.php?page=w3tc_dashboard
    Click on Refresh Analytics
    Views network monitor it send request to https://mydomain.com/wp-admin/admin-ajax.php?action=w3tc_ajax&_wpnonce=738da45aac&w3tc_action=pagespeed_widgetdata&cache=no&pll_ajax_backend=1
    The response is {“error”:”API call failed”} in JSON.

    Added
    *.mydomain.com/*
    mydomain.com/*
    *.mydomain.com
    mydomain.com
    https://mydomain.com/*
    https://mydomain.com/*
    https://mydomain.com/wp-admin/*
    https://mydomain.com/wp-admin/*
    All of these with and without port (80 & 443) are still not working.

    Did you try https://WWW.mydomain.com/* ?

    I had the www. I didn’t try other values.

    Let me know. I’m travelling today, but will check back when I can.

    Cheers

    Thread Starter vee

    (@okvee)

    I don’t have www. on real domain and yes I have it in the list and it did not work.
    In fact wildcard (*) should work as www. but just wildcard or with www. are not work.

    Interestingly, my setup isn’t working now. (!!!)

    Thanks Vee!!! 8-/ (Kidding)

    Yesterday I mucked around until I got it working. It then worked every time I looked at it.

    Now today, I thought I’d take some screen shots to send you, but I’m now “Unable to fetch Page Speed results.”

    The mystery is widening.

    Thread Starter vee

    (@okvee)

    The problem might come from….
    – this plugin may not send referrer.
    – this plugin use too short time for api request. maybe it needs to use more time (example 2 minutes) because web hosting network in many countries have very limited speed and data.

Viewing 15 replies - 1 through 15 (of 18 total)
  • The topic ‘Unable to fetch Page Speed results.’ is closed to new replies.