You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
43 lines
1.1 KiB
PHP
43 lines
1.1 KiB
PHP
<?php
|
|
/**
|
|
* Google PageSpeed.
|
|
*
|
|
* @since 1.0.34
|
|
* @package RankMath
|
|
* @subpackage RankMath\modules
|
|
* @author Rank Math <support@rankmath.com>
|
|
*/
|
|
|
|
namespace RankMathPro\Google;
|
|
|
|
use RankMath\Google\Api;
|
|
use RankMath\Helpers\Security;
|
|
|
|
defined( 'ABSPATH' ) || exit;
|
|
|
|
/**
|
|
* PageSpeed class.
|
|
*/
|
|
class PageSpeed {
|
|
|
|
/**
|
|
* Get pagespeed score info.
|
|
*
|
|
* @param string $url Url to get pagespeed for.
|
|
* @param string $strategy Data for desktop or mobile.
|
|
*
|
|
* @return array
|
|
*/
|
|
public static function get_pagespeed( $url, $strategy = 'desktop' ) {
|
|
$response = Api::get()->http_get( 'https://www.googleapis.com/pagespeedonline/v5/runPagespeed?category=PERFORMANCE&url=' . \rawurlencode( $url ) . '&strategy=' . \strtoupper( $strategy ), [], 30 );
|
|
if ( ! Api::get()->is_success() ) {
|
|
return false;
|
|
}
|
|
|
|
return [
|
|
$strategy . '_interactive' => round( \floatval( $response['lighthouseResult']['audits']['interactive']['displayValue'] ), 0 ),
|
|
$strategy . '_pagescore' => round( $response['lighthouseResult']['categories']['performance']['score'] * 100, 0 ),
|
|
];
|
|
}
|
|
}
|