Socket
Socket
Sign inDemoInstall

pagespeed-insights

Package Overview
Dependencies
122
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    pagespeed-insights

Library that generates pagespeed info. Also comes with tiny CLI script.


Version published
Weekly downloads
46
increased by4.55%
Maintainers
1
Created
Weekly downloads
 

Readme

Source

pagespeed-insights

Build Status

This is a library that fetches Google Pagespeed Insight for given url, formats and denormalizes the output in human readable form.

For production usage, please obtain API Key

This package also comes with a CLI utility for obtaining pagespeed. Please see usage for more information.

Installation

From npm

npm install pagespeed-insights

Usage

CLI

CLI options are as below:

Usage: pagespeed_cli --url http://www.google.com --apiKey AxjurIBVT0 --strategy
mobile

Options:
  -u, --url        Url to fetch pagespeed results for                 [required]
  -k, --apiKey     API key for the Pagespeed Insights API. It is recommeded you
                   pass key for prod usage.
  -s, --strategy   UX strategy to get pagespeed for
                             [choices: "mobile", "desktop"] [default: "desktop"]
  -f, --full_view  Pass this option if you want to see full data as returned by
                   the library                                         [boolean]
  -h, --help       Show help                                           [boolean]

Example:

> pagespeed_cli -u https://www.google.com/search?q=chocolates 
------------------------------------------------------------------
URL: https://www.google.com/search?q=chocolates
Score: 99
------------------------------------------------------------------

Leverage browser caching..........0.49975198412698413
Prioritize visible content..........0
Optimize images..........0
Eliminate render-blocking JavaScript and CSS in above-the-fold content..........0
Minify JavaScript..........0
Minify HTML..........0
Minify CSS..........0
Reduce server response time..........0
Enable compression..........0
Avoid landing page redirects..........0

Please see https://developers.google.com/speed/docs/insights/rules for more information about the rules.

If the CLI is run with the -f option, the output returned is same as library usage.

As a library

When used as a library, the module accepts url, apiKey, strategy and returns denormalized human readable data from the pagespeed insights API.

url: required parameter.

apiKey: recommended that it is passed for prod usage.

strategy: can either mobile or desktop. Defaults to desktop

const pagespeedInsights = require('pagespeed-insights');

let opts = {
  url: 'https://www.google.com/search?q=chocolates',
  apiKey: 'AxkfuV138x',
  strategy: 'mobile'
};

pagespeedInsights(opts, (err, data) => {
  console.log(data);
});
Returns
{
  "https://www.google.com/#q=chocolates": {
    "pageSpeed": 99,
    "rulesInfo": [
      {
        "localisedRuleName": "Avoid landing page redirects",
        "ruleImpact": 0,
        "summary": "Your page has no redirects. Learn more about <a href=\"https://developers.google.com/speed/docs/insights/AvoidRedirects\">avoiding landing page redirects</a>."
      },
      {
        "localisedRuleName": "Enable compression",
        "ruleImpact": 0,
        "summary": "You have compression enabled. Learn more about <a href=\"https://developers.google.com/speed/docs/insights/EnableCompression\">enabling compression</a>."
      },
      {
        "localisedRuleName": "Leverage browser caching",
        "ruleImpact": 0.4998784722222222,
        "summary": "Setting an expiry date or a maximum age in the HTTP headers for static resources instructs the browser to load previously downloaded resources from local disk rather than over the network.",
        "urlBlocks": [
          {
            "header": "<a href=\"https://developers.google.com/speed/docs/insights/LeverageBrowserCaching\">Leverage browser caching</a> for the following cacheable resources:",
            "urlsToFix": [
              "https://www.google.com/maps/vt/data=RfCSdfNZ0LFPrHSm0ublXdzhdrDFhtmHhN1u-gM,rySAMorOvXy5MCje9kcgVR5K9sB7Ik2LLoxa2YH7cguSY-1tZDmRe5Cx4cBQgz8XjicrUF227LDBmK1sSuTa-K6e3Q5muaYr2iU5oAH6PUq_JgfTPYyM1bBwZnBbcSnzv2wCsZP8oKNqT9Dcyz1ch6vjaJvOTULyuludMJjxs5Epn4adI1GJA220-KxGNtNoCzPXKcpfRJ9ZlPNA1wWBPtvz-G9tKpNj28TNuKl1i-CNAn8kvj88n6aKabhxM2PXS5I21uuUND9S4-LsTLKvLJi9XkvEg7eyl2hwcCONUOhwh86noKdEUHt96GnQ_EaCoIv6nahZOjafbSvYTLpQuJ_XbfX1WJMjhbnPkYmq-FOPASqkZsqyjtQx4qMYLtcVIEvfa-sJhbVZRAUkrxv3_IKIbsQpqRJv9ciykxcqoMJh3BBmMS0QHhI3YWRSRZwzB-9HzS_NhGy-7LSd_cQaqiHg01_SgdZpWITRYCDEOK92A73hkpxbXTFmWYmRDITJ7hf5ZjgUHnaaqz_-_HiIKsLjcu36fXcFSU4u-buWJkflOdLgzg3qUH_mWmNJkNyYcEkC3nfLkNrs1Kk_iKXxyJpcUXiV8yqa_UAS4LjlJJ3rV3c1ssZ8GlB34sLPsHathJuMDLAEFGJYKuLNC9LmSPSPJGBVs5n2v4V7T4mEjM1ReCW2T_kd5I_4UQvtI0uEPNoH5MDPD396tD8S-AA-CB-foO_SHrdSRMdYmSw1iNNzqyOLe3u9B4PuyftB-OuxT-GncEa6Rabe9_IMI-8hXAUuV18SN4ggQVLQah0r2L_BhEvn2MzFutX_SLcrbYGeCzibIi2wZEZFCwFuNBt3qqVJ1Sm56abMmIsP6xOkoNUCoEgsXwmyAtXQ0neyNsEYjzG1ZIKDe2ksTK5oBi7SZT9bSLZp5Y9upLSN6GmKz_T1Xfps9baHlp5CgOQTMmNLDmHbmGmXVFfgX-YJaE64mnAIUCdcxqIoBF4fwqPikxMEn7mwccdFaX5QckeX8QgMi-s8ZM5D0zLsN0nqAmiNGHKLSJ1gBPQKe_XkYqc (2.4 minutes)"
            ]
          }
        ]
      },
      {
        "localisedRuleName": "Reduce server response time",
        "ruleImpact": 0,
        "summary": "Your server responded quickly. Learn more about <a href=\"https://developers.google.com/speed/docs/insights/Server\">server response time optimization</a>."
      },
      {
        "localisedRuleName": "Minify CSS",
        "ruleImpact": 0,
        "summary": "Your CSS is minified. Learn more about <a href=\"https://developers.google.com/speed/docs/insights/MinifyResources\">minifying CSS</a>."
      },
      {
        "localisedRuleName": "Minify HTML",
        "ruleImpact": 0,
        "summary": "Your HTML is minified. Learn more about <a href=\"https://developers.google.com/speed/docs/insights/MinifyResources\">minifying HTML</a>."
      },
      {
        "localisedRuleName": "Minify JavaScript",
        "ruleImpact": 0,
        "summary": "Your JavaScript content is minified. Learn more about <a href=\"https://developers.google.com/speed/docs/insights/MinifyResources\">minifying JavaScript</a>."
      },
      {
        "localisedRuleName": "Eliminate render-blocking JavaScript and CSS in above-the-fold content",
        "ruleImpact": 0,
        "summary": "You have no render-blocking resources. Learn more about <a href=\"https://developers.google.com/speed/docs/insights/BlockingJS\">removing render-blocking resources</a>."
      },
      {
        "localisedRuleName": "Optimize images",
        "ruleImpact": 0,
        "summary": "Your images are optimized. Learn more about <a href=\"https://developers.google.com/speed/docs/insights/OptimizeImages\">optimizing images</a>."
      },
      {
        "localisedRuleName": "Prioritize visible content",
        "ruleImpact": 0,
        "summary": "You have the above-the-fold content properly prioritized. Learn more about <a href=\"https://developers.google.com/speed/docs/insights/PrioritizeVisibleContent\">prioritizing visible content</a>."
      }
    ]
  }
}

Keywords

FAQs

Last updated on 13 Sep 2016

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc