{"id":161456,"date":"2023-06-22T00:02:14","date_gmt":"2023-06-22T05:02:14","guid":{"rendered":"https:\/\/ahrefs.com\/blog\/?p=161456"},"modified":"2025-01-22T18:30:32","modified_gmt":"2025-01-22T23:30:32","slug":"pagespeed-insights","status":"publish","type":"post","link":"https:\/\/ahrefs.com\/blog\/pagespeed-insights\/","title":{"rendered":"Google PageSpeed Insights For SEOs &amp; Developers"},"content":{"rendered":"\n<div class=\"intro-txt\">PageSpeed Insights (PSI) is a free tool from Google that analyzes a page\u2019s performance on desktop and mobile devices and gives suggestions for improving speed and user experience.<\/div>\n\n\n\n<p>PageSpeed Insights works by analyzing a webpage\u2019s HTML, CSS, fonts, and JavaScript, and provides suggestions to optimize the performance of the page. This includes things like compressing images, minifying code, and reducing the number of HTTP requests made by the&nbsp;page.<\/p>\n\n\n\n<p>Let\u2019s look at PageSpeed Insights more closely.<\/p>\n\n\n\n<div class=\"intro-tok\" id=\"intro_tok\" style=\"display:none;\"><div class=\"intro-title\">Contents<\/div><a href=\"#\" class=\"expand-dots\"><span><\/span><span><\/span><span><\/span><\/a><\/div>\n\n\n\n<div class=\"post-nav-link clearfix\" id=\"section1\"><a class=\"subhead-anchor\" data-tip=\"tooltip__copielink\" rel=\"#section1\"><svg width=\"19\" height=\"19\" viewBox=\"0 0 14 14\" style><g fill=\"none\" fill-rule=\"evenodd\"><path d=\"M0 0h14v14H0z\" \/><path d=\"M7.45 9.887l-1.62 1.621c-.92.92-2.418.92-3.338 0a2.364 2.364 0 0 1 0-3.339l1.62-1.62-1.273-1.272-1.62 1.62a4.161 4.161 0 1 0 5.885 5.884l1.62-1.62L7.45 9.886zM5.527 5.135L7.17 3.492c.92-.92 2.418-.92 3.339 0 .92.92.92 2.418 0 3.339L8.866 8.473l1.272 1.273 1.644-1.643A4.161 4.161 0 1 0 5.897 2.22L4.254 3.863l1.272 1.272zm-.66 3.998a.749.749 0 0 1 0-1.06l2.208-2.206a.749.749 0 1 1 1.06 1.06L5.928 9.133a.75.75 0 0 1-1.061 0z\" style \/><\/g><\/svg><\/a><div class=\"link-text\" data-anchor=\"How to use PageSpeed Insights\" data-section=\"how-to-use-pagespeed-insights\">\n\n\n\n<h2 class=\"wp-block-heading\">How to use Google PageSpeed Insights<\/h2>\n\n\n\n<\/div><\/div>\n\n\n\n<p>To start, go to <a href=\"https:\/\/pagespeed.web.dev\/\">PageSpeed Insights<\/a>. Enter a URL and click \u201cAnalyze.\u201d<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1999\" height=\"802\" class=\"wp-image-161463\" src=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image3-7.png\" alt=\"Enter a URL in PageSpeed Insights\" srcset=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image3-7.png 1999w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image3-7-680x273.png 680w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image3-7-768x308.png 768w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image3-7-1536x616.png 1536w\" sizes=\"auto, (max-width: 1999px) 100vw, 1999px\"><\/figure>\n\n\n\n<p>You\u2019ll have the option to switch between the Desktop and Mobile analysis. Mobile scores will usually be worse than Desktop scores. Mobile data may reveal more issues for you to resolve, and that\u2019s what I recommend looking at.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1847\" height=\"249\" class=\"wp-image-161464\" src=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image9-6.png\" alt=\"Select between Mobile or Desktop analysis\" srcset=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image9-6.png 1847w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image9-6-680x92.png 680w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image9-6-768x104.png 768w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image9-6-1536x207.png 1536w\" sizes=\"auto, (max-width: 1847px) 100vw, 1847px\"><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Field data<\/h3>\n\n\n\n<p>The next section contains data from real users of your website. PageSpeed Insights is pulling this from the <a href=\"https:\/\/developer.chrome.com\/docs\/crux\/\">Chrome User Experience Report (CrUX)<\/a>, which contains the data of Chrome users who opted in to sharing that&nbsp;data.&nbsp;<\/p>\n\n\n\n<p>At the top is a tab to switch between page and origin (similar to domain) level data, which aggregates the data for many pages. You may not have data for all pages or even origin data. It depends on how many people visit your website and opt in to sharing this information.<\/p>\n\n\n\n<p>As of April 2023, there are ~29.5 million origins in the CrUX dataset.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1915\" height=\"980\" class=\"wp-image-161465\" src=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image28.png\" alt=\"Select between URL or Origin metrics\" srcset=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image28.png 1915w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image28-680x348.png 680w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image28-768x393.png 768w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image28-1536x786.png 1536w\" sizes=\"auto, (max-width: 1915px) 100vw, 1915px\"><\/figure>\n\n\n\n<p>The next section is all about <a href=\"https:\/\/ahrefs.com\/blog\/core-web-vitals\/\">Core Web Vitals (CWV)<\/a>, including a pass\/fail assessment. The main metrics are Largest Contentful Paint (LCP), First Input Delay (FID), and Cumulative Layout Shift (CLS). These CWV metrics are the ones Google uses in its rankings.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1771\" height=\"350\" class=\"wp-image-161467\" src=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image19-2.png\" alt=\"CWV metrics in PageSpeed Insights\" srcset=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image19-2.png 1771w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image19-2-680x134.png 680w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image19-2-768x152.png 768w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image19-2-1536x304.png 1536w\" sizes=\"auto, (max-width: 1771px) 100vw, 1771px\"><\/figure>\n\n\n\n<p>The numbers are color coded to show you that green = good, orange = needs improvement, and red = poor. In all, 75% of user experiences need to meet the threshold set for a given metric for it to be considered \u201cgood.\u201d These are the thresholds:<\/p>\n\n\n\n<table id=\"tablepress-196\" class=\"tablepress tablepress-id-196 tablepress-responsive tablepress-ahrefs-width-720px\">\n<thead>\n<tr class=\"row-1 odd\">\n\t<th class=\"column-1\">Metric<\/th><th class=\"column-2\">Good<\/th><th class=\"column-3\">Needs improvement<\/th><th class=\"column-4\">Poor<\/th>\n<\/tr>\n<\/thead>\n<tbody class=\"row-hover\">\n<tr class=\"row-2 even\">\n\t<td class=\"column-1\">LCP<\/td><td class=\"column-2\"> 2500&nbsp;ms<\/td><td class=\"column-3\">2500 ms\u20134000 ms<\/td><td class=\"column-4\">&gt; 4000&nbsp;ms<\/td>\n<\/tr>\n<tr class=\"row-3 odd\">\n\t<td class=\"column-1\">FID<\/td><td class=\"column-2\"> 100&nbsp;ms<\/td><td class=\"column-3\">100 ms\u2013300 ms<\/td><td class=\"column-4\">&gt; 300&nbsp;ms<\/td>\n<\/tr>\n<tr class=\"row-4 even\">\n\t<td class=\"column-1\">CLS<\/td><td class=\"column-2\"> 0.1<\/td><td class=\"column-3\">0.1\u20130.25<\/td><td class=\"column-4\">&gt; 0.25<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<!-- #tablepress-196 from cache -->\n\n\n<p>If you click \u201cExpand view,\u201d you\u2019ll see the distribution for each metric.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1768\" height=\"487\" class=\"wp-image-161470\" src=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image8-7.png\" alt=\"Distribution of CWV metrics\" srcset=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image8-7.png 1768w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image8-7-680x187.png 680w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image8-7-768x212.png 768w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image8-7-1536x423.png 1536w\" sizes=\"auto, (max-width: 1768px) 100vw, 1768px\"><\/figure>\n\n\n\n<p>There are additional metrics from the CrUX database that are not currently used in the rankings. These include First Contentful Paint (FCP), Interaction to Next Paint (INP), and Time to First Byte (TTFB). INP will be replacing FID as a CWV metric in March&nbsp;2024.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1786\" height=\"281\" class=\"wp-image-161473\" src=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image13-4.png\" alt=\"Additional metrics from CrUX\" srcset=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image13-4.png 1786w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image13-4-680x107.png 680w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image13-4-768x121.png 768w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image13-4-1536x242.png 1536w\" sizes=\"auto, (max-width: 1786px) 100vw, 1786px\"><\/figure>\n\n\n\n<p>The numbers are color coded to show you that green = good, orange = needs improvement, and red = poor. 75% of user experiences need to meet the threshold set for a given metric for it to be considered \u201cgood.\u201d These are the thresholds:<\/p>\n\n\n\n<table id=\"tablepress-197\" class=\"tablepress tablepress-id-197 tablepress-responsive tablepress-ahrefs-width-720px\">\n<thead>\n<tr class=\"row-1 odd\">\n\t<th class=\"column-1\">Metric<\/th><th class=\"column-2\">Good<\/th><th class=\"column-3\">Needs improvement<\/th><th class=\"column-4\">Poor<\/th>\n<\/tr>\n<\/thead>\n<tbody class=\"row-hover\">\n<tr class=\"row-2 even\">\n\t<td class=\"column-1\">FCP<\/td><td class=\"column-2\"> 1800&nbsp;ms<\/td><td class=\"column-3\">1800 ms\u20133000 ms<\/td><td class=\"column-4\">&gt; 3000&nbsp;ms<\/td>\n<\/tr>\n<tr class=\"row-3 odd\">\n\t<td class=\"column-1\">INP<\/td><td class=\"column-2\"> 200&nbsp;ms<\/td><td class=\"column-3\">200 ms\u2013500 ms<\/td><td class=\"column-4\">&gt; 500&nbsp;ms<\/td>\n<\/tr>\n<tr class=\"row-4 even\">\n\t<td class=\"column-1\">TTFB<\/td><td class=\"column-2\"> 800&nbsp;ms<\/td><td class=\"column-3\">800 ms\u20131800 ms<\/td><td class=\"column-4\">&gt; 1800&nbsp;ms<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<!-- #tablepress-197 from cache -->\n\n\n<p>If you click \u201cExpand view,\u201d you\u2019ll see the distribution for each metric.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1790\" height=\"517\" class=\"wp-image-161472\" src=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image27-1.png\" alt=\"Distribution of additional CrUX metrics\" srcset=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image27-1.png 1790w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image27-1-680x196.png 680w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image27-1-768x222.png 768w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image27-1-1536x444.png 1536w\" sizes=\"auto, (max-width: 1790px) 100vw, 1790px\"><\/figure>\n\n\n\n<p>The last section tells you a bit about where this data comes from. The data is from real user experiences and is a rolling average over a 28-day period.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1749\" height=\"105\" class=\"wp-image-161489\" src=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image17-3.png\" alt=\"More info about the CrUX data\" srcset=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image17-3.png 1749w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image17-3-680x41.png 680w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image17-3-768x46.png 768w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image17-3-1536x92.png 1536w\" sizes=\"auto, (max-width: 1749px) 100vw, 1749px\"><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Lab data<\/h3>\n\n\n\n<p><a href=\"https:\/\/developer.chrome.com\/docs\/lighthouse\/overview\/\">Lighthouse<\/a> is an open-source tool for measuring the performance and quality of webpages. It can be run in your own browser. But in the case of PageSpeed Insights, it runs on Google\u2019s servers.<\/p>\n\n\n\n<p>You\u2019ll see several numbers for Performance, Accessibility, Best Practices, and SEO. All of these really just check for best practices, but they don\u2019t tell you how well you\u2019re doing in each of the&nbsp;areas.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1833\" height=\"315\" class=\"wp-image-161478\" src=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image11-4.png\" alt=\"Scores for Performance, Accessibility, Best Practices, and SEO\" srcset=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image11-4.png 1833w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image11-4-680x117.png 680w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image11-4-768x132.png 768w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image11-4-1536x264.png 1536w\" sizes=\"auto, (max-width: 1833px) 100vw, 1833px\"><\/figure>\n\n\n\n<p>Once again, the metrics are color coded to quickly give you an idea of what is good and what you may need to work&nbsp;on.&nbsp;<\/p>\n\n\n\n<p>For the purpose of this article, we\u2019re going to focus on the \u201cPerformance\u201d section, since that is what SEOs use the tool for. First up, you have a performance score and a screenshot of the&nbsp;page.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1765\" height=\"634\" class=\"wp-image-161480\" src=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image25-1.png\" alt=\"Performance score in PageSpeed Insights \" srcset=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image25-1.png 1765w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image25-1-680x244.png 680w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image25-1-768x276.png 768w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image25-1-1536x552.png 1536w\" sizes=\"auto, (max-width: 1765px) 100vw, 1765px\"><\/figure>\n\n\n\n<p>You\u2019ll be scored between 0 and 100. The current score thresholds are:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Good: scores of 90\u2013100<\/li>\n\n\n\n<li>Needs improvement: scores of 50\u201389<\/li>\n\n\n\n<li>Poor: scores of 0\u201349<\/li>\n<\/ul>\n\n\n\n<p>As I mentioned, you can have a good score but still have a slow page that doesn\u2019t pass CWV. Other factors, such as network conditions, server load, caching, and the user device, also affect page load&nbsp;time.&nbsp;<\/p>\n\n\n\n<p>Only 2% of tested pages score 100. A score of 50 puts you in the top 25% of tested pages.&nbsp;<\/p>\n\n\n\n<p>The score and metrics can change each time you run a test. This can happen because of network conditions, load, or browsers that make different decisions in the page-loading process. I recommend running three to five tests and averaging the results.&nbsp;<\/p>\n\n\n\n<p>The score is based on a calculation and involves weighting several of the metrics. The weights change between Mobile and Desktop. These are the current scores for Mobile, but check the <a href=\"https:\/\/googlechrome.github.io\/lighthouse\/scorecalc\/#FCP=1740&amp;LCP=3180&amp;TBT=1493&amp;CLS=0.03&amp;SI=4318&amp;TTI=10937&amp;FMP=1740&amp;device=mobile&amp;version=10.2.0\">calculator<\/a> for the latest info.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1914\" height=\"874\" class=\"wp-image-161482\" src=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image29.png\" alt=\"How Lighthouse scores are computed\" srcset=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image29.png 1914w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image29-680x311.png 680w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image29-768x351.png 768w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image29-1536x701.png 1536w\" sizes=\"auto, (max-width: 1914px) 100vw, 1914px\"><\/figure>\n\n\n\n<p>There\u2019s another metric section, this time for the lab test metrics. You\u2019ll find LCP and CLS here but won\u2019t find the FID or INP metrics from CWV. Those require clicks on the page, which lab testing doesn\u2019t reproduce. Instead, you can use Total Blocking Time (TBT) as a proxy metric to work on improving.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1777\" height=\"513\" class=\"wp-image-161484\" src=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image18-4.png\" alt=\"Lighthouse metrics in PageSpeed Insights\" srcset=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image18-4.png 1777w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image18-4-680x196.png 680w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image18-4-768x222.png 768w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image18-4-1536x443.png 1536w\" sizes=\"auto, (max-width: 1777px) 100vw, 1777px\"><\/figure>\n\n\n\n<p>You can also click the \u201cExpand view\u201d button to get an expanded view that includes definitions for the metrics and links with more details.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1775\" height=\"828\" class=\"wp-image-161486\" src=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image10-7.png\" alt=\"Additional details for Lighthouse metrics in PageSpeed Insights\" srcset=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image10-7.png 1775w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image10-7-680x317.png 680w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image10-7-768x358.png 768w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image10-7-1536x717.png 1536w\" sizes=\"auto, (max-width: 1775px) 100vw, 1775px\"><\/figure>\n\n\n\n<p>The last section tells you a bit about where this data comes&nbsp;from.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1741\" height=\"112\" class=\"wp-image-161476\" src=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image1-5.png\" alt=\"Details on the lab test conditions\" srcset=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image1-5.png 1741w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image1-5-680x44.png 680w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image1-5-768x49.png 768w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image1-5-1536x99.png 1536w\" sizes=\"auto, (max-width: 1741px) 100vw, 1741px\"><\/figure>\n\n\n\n<p>If you hover over this information, you\u2019ll get even more info on the test conditions. While PageSpeed Insights has traditionally used a Moto G4 as the test device for many years, it looks like that is now a Moto G Power. You can also get data on the location of the test, which will be North America, Europe, or&nbsp;Asia.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1759\" height=\"292\" class=\"wp-image-161491\" src=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image16-1.png\" alt=\"Hover over the data to see even more details on the lab test conditions\" srcset=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image16-1.png 1759w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image16-1-680x113.png 680w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image16-1-768x127.png 768w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image16-1-1536x255.png 1536w\" sizes=\"auto, (max-width: 1759px) 100vw, 1759px\"><\/figure>\n\n\n\n<p>There are some snapshots that visually show you how a page loaded over&nbsp;time.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1785\" height=\"416\" class=\"wp-image-161493\" src=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image5-7.png\" alt=\"Screenshots of the page loading progression\" srcset=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image5-7.png 1785w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image5-7-680x158.png 680w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image5-7-768x179.png 768w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image5-7-1536x358.png 1536w\" sizes=\"auto, (max-width: 1785px) 100vw, 1785px\"><\/figure>\n\n\n\n<p>If you click \u201cView Treemap,\u201d you can find the largest files and how much of the code is unused on the&nbsp;page.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1999\" height=\"953\" class=\"wp-image-161495\" src=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image22-2.png\" alt=\"Treemap view of the largest files on the page\" srcset=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image22-2.png 1999w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image22-2-680x324.png 680w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image22-2-768x366.png 768w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image22-2-1536x732.png 1536w\" sizes=\"auto, (max-width: 1999px) 100vw, 1999px\"><\/figure>\n\n\n\n<p>By default, you\u2019ll see issues related to all of the metrics. There are buttons where you can filter to issues impacting specific metrics that you may want to improve.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"648\" height=\"80\" class=\"wp-image-161496\" src=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image2-6.png\" alt=\"Select a metric to see only issues related to that metric\"><\/figure>\n\n\n\n<p>The \u201cOpportunities\u201d and \u201cDiagnostics\u201d sections will show you issues that can help your page performance.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1792\" height=\"265\" class=\"wp-image-161498\" src=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image15-4.png\" alt=\"Opportunities for improvement in PageSpeed Insights\" srcset=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image15-4.png 1792w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image15-4-680x101.png 680w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image15-4-768x114.png 768w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image15-4-1536x227.png 1536w\" sizes=\"auto, (max-width: 1792px) 100vw, 1792px\"><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1785\" height=\"924\" class=\"wp-image-161500\" src=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image20-1.png\" alt=\"Diagnostics in PageSpeed Insights reveal more information and issues\" srcset=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image20-1.png 1785w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image20-1-680x352.png 680w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image20-1-768x398.png 768w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image20-1-1536x795.png 1536w\" sizes=\"auto, (max-width: 1785px) 100vw, 1785px\"><\/figure>\n\n\n\n<p>The estimated savings and improvements they show aren\u2019t realistic. There can be other blockers so you won\u2019t get the improvements shown or, in some cases, any improvement at all if you fix an issue. Sometimes, you have to fix multiple issues to actually see an improvement.<\/p>\n\n\n\n<p>You can click to expand any of the elements. You\u2019ll receive some guidance on how to fix each issue. The recommendations can change based on the system that\u2019s being tested. For instance, I tested a page on our WordPress blog, and I saw WordPress-specific guidance.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1756\" height=\"317\" class=\"wp-image-161502\" src=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image24-1.png\" alt=\"Additional guidance for fixing issues\" srcset=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image24-1.png 1756w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image24-1-680x123.png 680w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image24-1-768x139.png 768w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image24-1-1536x277.png 1536w\" sizes=\"auto, (max-width: 1756px) 100vw, 1756px\"><\/figure>\n\n\n\n<p>The tips are useful for translating some of the issues into terms you may have heard. For instance, the \u201cdefer offscreen elements\u201d issue tells you that you should be lazy loading images. You can then search for a plugin in WordPress that handles lazy loading.<\/p>\n\n\n\n<p>There is additional information that shows what the LCP image is, what elements are causing CLS, and what elements are blocking the main thread (what you need to reduce to improve FID\/INP). This information can help you target fixes toward these elements.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1753\" height=\"470\" class=\"wp-image-161504\" src=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image12-5.png\" alt=\"Find your LCP element\" srcset=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image12-5.png 1753w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image12-5-680x182.png 680w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image12-5-768x206.png 768w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image12-5-1536x412.png 1536w\" sizes=\"auto, (max-width: 1753px) 100vw, 1753px\"><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1751\" height=\"979\" class=\"wp-image-161506\" src=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image23-1.png\" alt=\"See what layout shifts are happening on your page\" srcset=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image23-1.png 1751w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image23-1-680x380.png 680w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image23-1-768x429.png 768w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image23-1-1536x859.png 1536w\" sizes=\"auto, (max-width: 1751px) 100vw, 1751px\"><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1744\" height=\"795\" class=\"wp-image-161508\" src=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image7-8.png\" alt=\"Long main thread tasks lead to higher delays and impact FID and INP\" srcset=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image7-8.png 1744w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image7-8-680x310.png 680w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image7-8-768x350.png 768w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image7-8-1536x700.png 1536w\" sizes=\"auto, (max-width: 1744px) 100vw, 1744px\"><\/figure>\n\n\n\n<p>There\u2019s also a section for passed audits, showing you where you\u2019re already doing a good job. You may still be able to improve these. But you\u2019re likely better off spending time on other issues.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1784\" height=\"855\" class=\"wp-image-161510\" src=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image26.png\" alt=\"Passed audits show you what you're doing well\" srcset=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image26.png 1784w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image26-680x326.png 680w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image26-768x368.png 768w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image26-1536x736.png 1536w\" sizes=\"auto, (max-width: 1784px) 100vw, 1784px\"><\/figure>\n\n\n\n<div class=\"post-nav-link clearfix\" id=\"section1\"><a class=\"subhead-anchor\" data-tip=\"tooltip__copielink\" rel=\"#section1\"><svg width=\"19\" height=\"19\" viewBox=\"0 0 14 14\" style><g fill=\"none\" fill-rule=\"evenodd\"><path d=\"M0 0h14v14H0z\" \/><path d=\"M7.45 9.887l-1.62 1.621c-.92.92-2.418.92-3.338 0a2.364 2.364 0 0 1 0-3.339l1.62-1.62-1.273-1.272-1.62 1.62a4.161 4.161 0 1 0 5.885 5.884l1.62-1.62L7.45 9.886zM5.527 5.135L7.17 3.492c.92-.92 2.418-.92 3.339 0 .92.92.92 2.418 0 3.339L8.866 8.473l1.272 1.273 1.644-1.643A4.161 4.161 0 1 0 5.897 2.22L4.254 3.863l1.272 1.272zm-.66 3.998a.749.749 0 0 1 0-1.06l2.208-2.206a.749.749 0 1 1 1.06 1.06L5.928 9.133a.75.75 0 0 1-1.061 0z\" style \/><\/g><\/svg><\/a><div class=\"link-text\" data-anchor=\"Pulling data at scale into Ahrefs\" data-section=\"bulk-data\">\n\n\n\n<h2 class=\"wp-block-heading\">Pulling data at scale into Ahrefs<\/h2>\n\n\n\n<\/div><\/div>\n\n\n\n<p>PageSpeed Insights has a great API. It lets you pull the field data from CrUX and the lab data from the Lighthouse test. You can also get page-level CWV data in bulk that can only be accessed via PageSpeed Insights.<\/p>\n\n\n\n<p>The problem is that not everyone has the skills to query the data in bulk and store it. But we make it easy for you in Ahrefs\u2019 <a href=\"https:\/\/ahrefs.com\/site-audit\">Site Audit<\/a>. Follow the instructions for setting up CWV in the Crawl settings.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1656\" height=\"397\" class=\"wp-image-161512\" src=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image21-2.png\" alt=\"Enter your PSI key in Ahrefs' Site Audit\" srcset=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image21-2.png 1656w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image21-2-680x163.png 680w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image21-2-768x184.png 768w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image21-2-1536x368.png 1536w\" sizes=\"auto, (max-width: 1656px) 100vw, 1656px\"><\/figure>\n\n<div class=\"highlighted-section\"><!-- Title Section -->\n<h4 class=\"section-title\">Grab and store your PageSpeed Insights and CWV data with Site&nbsp;Audit<\/h4>\n<!-- Form Section --><form class=\"form-section\">\n<div class=\"input-button-wrapper\">\n<div class=\"input-container\"><input type=\"text\" placeholder=\"Enter domain\"><\/div>\n<a class=\"start-button\" href=\"\/signup?plan=awt&amp;return=site-audit\">Start for&nbsp;Free<\/a><\/div>\n<div class=\"tooltip-container\">Free for websites with verified ownership<span class=\"info-icon\">i<\/span>\n<div class=\"tooltip-content\">\n<p>Ownership verification can be done&nbsp;by:<\/p>\n<ul>\n<li>Connecting Google Search Console (recommended);<\/li>\n<li>Uploading an HTML&nbsp;file;<\/li>\n<li>Adding a TXT record to your DNS configuration;<\/li>\n<li>Adding an HTML meta tag to your homepage.<\/li>\n<\/ul>\n<a href=\"https:\/\/help.ahrefs.com\/en\/articles\/3275938-verifying-ownership-of-your-project-or-website\" target=\"_blank\" rel=\"noopener noreferrer\">Learn more<\/a><\/div>\n<\/div>\n<p class=\"webmaster-tools-info\">Signing up here gives you access to <a href=\"https:\/\/ahrefs.com\/webmaster-tools\" target=\"_blank\" rel=\"noopener noreferrer\">Ahrefs Webmaster Tools \u2197<\/a> for&nbsp;free<\/p>\n<\/form><\/div>\n<p><style>\n  \/* Highlighted Section with Gray Border *\/\n  .highlighted-section {\n    border: 1px solid #ddd; \/* Light gray border *\/\n    border-radius: 8px;\n    padding: 15px 20px; \/* Adjusted padding to reduce top spacing *\/\n    background-color: #f9f9f9; \/* Light background for contrast *\/\n    max-width: 600px;\n    margin: 20px auto; \/* Center alignment *\/\n  }\n\n  \/* Section Title *\/\n  .section-title {\n    font-size: 24px; \/* Larger font size *\/\n    font-weight: bold;\n    color: #333;\n    margin-bottom: 15px;\n    margin-top: 0; \/* Remove extra spacing above the title *\/\n    text-align: center;\n  }\n\n  .form-section {\n    display: flex;\n    flex-direction: column;\n    gap: 10px;\n  }\n\n  .input-button-wrapper {\n    display: flex;\n    gap: 10px; \/* Space between input and button *\/\n    align-items: center;\n  }\n\n  .input-container input {\n    padding: 10px;\n    font-size: 16px;\n    border: 1px solid #ddd;\n    border-radius: 4px;\n    width: 100%;\n  }\n\n  .tooltip-container {\n    position: relative;\n    display: inline-flex;\n    align-items: center;\n    gap: 5px;\n    font-size: 14px;\n    color: #555;\n    cursor: help;\n  }\n\n  .tooltip-container .info-icon {\n    color: #0073e6;\n    font-weight: bold;\n    font-size: 12px;\n    position: relative;\n    top: -5px;\n    display: inline-block;\n    text-decoration: none;\n    cursor: help;\n  }\n\n  .tooltip-content {\n    position: fixed; \/* Ensure tooltip can break out of its container *\/\n    top: 50px; \/* Adjust based on trigger position *\/\n    left: 50%; \/* Center horizontally *\/\n    transform: translateX(-50%);\n    background: white;\n    border: 1px solid #ddd;\n    border-radius: 5px;\n    box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.1);\n    padding: 15px;\n    font-size: 14px;\n    display: none; \/* Initially hidden *\/\n    z-index: 1000;\n    min-width: 300px;\n    max-width: 400px; \/* Optional width for better readability *\/\n    white-space: normal;\n  }\n\n  .tooltip-container:hover .tooltip-content {\n    display: block;\n  }\n\n  .tooltip-content ul {\n    list-style-type: disc;\n    padding-left: 20px;\n  }\n\n  .tooltip-content a {\n    color: #0073e6;\n    text-decoration: none;\n  }\n\n  .webmaster-tools-info {\n    color: #333;\n    font-size: 14px;\n    margin-top: 10px;\n  }\n\n  .start-button {\n    background-color: orange;\n    color: white;\n    padding: 10px 20px;\n    text-decoration: none;\n    font-weight: bold;\n    border-radius: 5px;\n    white-space: nowrap; \/* Ensure text doesn\u2019t break into a second line *\/\n  }\n<\/style><\/p>\n\n<p>When you run a crawl, we\u2019ll pull the data from PageSpeed Insights into the <strong>Performance<\/strong> report, and you can drill into problematic pages.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1999\" height=\"848\" class=\"wp-image-161513\" src=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image4-6.png\" alt=\"Data from PSI in Performance report, via Ahrefs' Site Audit\" srcset=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image4-6.png 1999w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image4-6-680x288.png 680w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image4-6-768x326.png 768w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image4-6-1536x652.png 1536w\" sizes=\"auto, (max-width: 1999px) 100vw, 1999px\"><\/figure>\n\n\n\n<p>We also show the data from previous crawls, which you can use to monitor performance over time. Additionally, you can see the distribution of affected pages for each individual metric.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1999\" height=\"1193\" class=\"wp-image-161515\" src=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image6-9.png\" alt=\"CrUX and Lighthouse test history in Ahrefs' Site Audit\n\" srcset=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image6-9.png 1999w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image6-9-680x406.png 680w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image6-9-768x458.png 768w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image6-9-1536x917.png 1536w\" sizes=\"auto, (max-width: 1999px) 100vw, 1999px\"><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Free tool: Check CWVs and Lighthouse metrics for desktop and mobile for up to 10 pages or websites<\/h3>\n\n\n\n<p>Here\u2019s another free tool that you can use to check up to 10 pages or websites at once to see how you compare to your competitors.<\/p>\n\n\n\n<p><strong>Setup:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Enter your Google PageSpeed Insights API key into the designated input field. (Learn how to generate an API key <a href=\"https:\/\/developers.google.com\/speed\/docs\/insights\/v5\/get-started\">here<\/a>.)<\/li>\n\n\n\n<li>Add the URLs you want to analyze (one per&nbsp;line).<\/li>\n<\/ul>\n\n\n\n<p><strong>Run the Analysis:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Click on the <strong>\u201cCheck CWV\u201d<\/strong> button to start fetching metrics. A progress indicator will show the status of the requests.<\/li>\n<\/ul>\n\n\n\n<p><strong>View Results:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The results are displayed in neatly categorized scorecards:&nbsp;<ul class=\"wp-block-list\">\n<li><strong>Desktop CWV for the&nbsp;Page<\/strong><\/li>\n\n\n\n<li><strong>Desktop CWV for the Origin<\/strong><\/li>\n\n\n\n<li><strong>Desktop Lighthouse<\/strong><\/li>\n\n\n\n<li><strong>Mobile CWV for the&nbsp;Page<\/strong><\/li>\n\n\n\n<li><strong>Mobile CWV for the Origin<\/strong><\/li>\n\n\n\n<li><strong>Mobile Lighthouse<\/strong><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Each metric is color-coded to show performance:&nbsp;<ul class=\"wp-block-list\">\n<li><strong>Green:<\/strong> Good<\/li>\n\n\n\n<li><strong>Yellow:<\/strong> Needs Improvement<\/li>\n\n\n\n<li><strong>Red:<\/strong> Poor<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n<div id=\"cwv-tool\">\n<h4 class=\"title\">Page Speed Tester<\/h4>\n  <form id=\"cwv-form\">\n    <input id=\"apiKey\" required type=\"text\" placeholder=\"Enter your PageSpeed Insights API key\">\n    <textarea id=\"urls\" required placeholder=\"Enter up to 10 URLs, one per line\"><\/textarea>\n    <button type=\"button\" onclick=\"checkCWV()\">Test Page Speed<\/button>\n  <\/form>\n  <div id=\"progress\"><\/div>\n  <div id=\"results\"><\/div>\n<\/div>\n\n<script>\nasync function checkCWV() {\n  const apiKey = document.getElementById(\"apiKey\").value.trim();\n  const urls = document.getElementById(\"urls\").value.split(\"\\n\").map(url => url.trim()).filter(url => url);\n  const progress = document.getElementById(\"progress\");\n  const resultsContainer = document.getElementById(\"results\");\n\n  if (!apiKey || urls.length === 0) {\n    alert(\"Please provide an API key and at least one URL.\");\n    return;\n  }\n\n  progress.textContent = \"Fetching data...\";\n  resultsContainer.innerHTML = \"\";\n\n  const results = {\n    desktopPageCWV: [],\n    desktopOriginCWV: [],\n    desktopLighthouse: [],\n    mobilePageCWV: [],\n    mobileOriginCWV: [],\n    mobileLighthouse: []\n  };\n\n  for (const [index, url] of urls.entries()) {\n    progress.textContent = `Processing ${index + 1} of ${urls.length}...`;\n    try {\n      const desktopData = await fetchData(url, \"desktop\", apiKey);\n      const mobileData = await fetchData(url, \"mobile\", apiKey);\n\n      results.desktopPageCWV.push({ url, metrics: parseCWVMetrics(desktopData?.loadingExperience) });\n      results.desktopOriginCWV.push({ url, metrics: parseCWVMetrics(desktopData?.originLoadingExperience) });\n      results.desktopLighthouse.push({ url, metrics: parseLighthouseMetrics(desktopData?.lighthouseResult) });\n\n      results.mobilePageCWV.push({ url, metrics: parseCWVMetrics(mobileData?.loadingExperience) });\n      results.mobileOriginCWV.push({ url, metrics: parseCWVMetrics(mobileData?.originLoadingExperience) });\n      results.mobileLighthouse.push({ url, metrics: parseLighthouseMetrics(mobileData?.lighthouseResult) });\n    } catch (error) {\n      console.error(`Error fetching data for ${url}: ${error.message}`);\n    }\n  }\n\n  progress.textContent = \"Rendering results...\";\n  renderResults(results);\n  progress.textContent = \"Completed!\";\n}\n\nasync function fetchData(url, strategy, apiKey) {\n  const response = await fetch(`https:\/\/www.googleapis.com\/pagespeedonline\/v5\/runPagespeed?url=${encodeURIComponent(url)}&strategy=${strategy}&key=${apiKey}`);\n  if (!response.ok) throw new Error(`Failed to fetch data for ${url}`);\n  return await response.json();\n}\n\nfunction parseCWVMetrics(data) {\n  const metrics = data?.metrics || {};\n  return {\n    LCP: applyColorBox(formatMetric(metrics[\"LARGEST_CONTENTFUL_PAINT_MS\"]?.percentile, \"ms\"), \"LCP\"),\n    INP: applyColorBox(formatMetric(metrics[\"INTERACTION_TO_NEXT_PAINT\"]?.percentile, \"ms\"), \"INP\"),\n    CLS: applyColorBox((metrics[\"CUMULATIVE_LAYOUT_SHIFT_SCORE\"]?.percentile \/ 100).toFixed(2), \"CLS\"),\n    FCP: applyColorBox(formatMetric(metrics[\"FIRST_CONTENTFUL_PAINT_MS\"]?.percentile, \"ms\"), \"FCP\"),\n    TTFB: applyColorBox(formatMetric(metrics[\"EXPERIMENTAL_TIME_TO_FIRST_BYTE\"]?.percentile, \"ms\"), \"TTFB\")\n  };\n}\n\nfunction parseLighthouseMetrics(data) {\n  if (!data) return {};\n  return {\n    Score: applyColorBox(Math.round(data.categories?.performance?.score * 100) || \"N\/A\", \"Score\"),\n    FCP: applyColorBox(formatMetric(data.audits?.[\"first-contentful-paint\"]?.numericValue, \"ms\"), \"FCP\"),\n    LCP: applyColorBox(formatMetric(data.audits?.[\"largest-contentful-paint\"]?.numericValue, \"ms\"), \"LCP\"),\n    CLS: applyColorBox(data.audits?.[\"cumulative-layout-shift\"]?.numericValue?.toFixed(3) || \"N\/A\", \"CLS\"),\n    TBT: applyColorBox(formatMetric(data.audits?.[\"total-blocking-time\"]?.numericValue, \"ms\"), \"TBT\"),\n    \"Speed Index\": applyColorBox(formatMetric(data.audits?.[\"speed-index\"]?.numericValue, \"ms\"), \"Speed Index\")\n  };\n}\n\nfunction formatMetric(value, unit) {\n  if (value === undefined || value === null || isNaN(value)) return \"N\/A\";\n  const numericValue = unit === \"ms\" ? value \/ 1000 : value;\n  return `${numericValue.toFixed(2)}s`;\n}\n\nconst thresholds = {\n  LCP: [2.5, 4], \/\/ Thresholds in seconds\n  INP: [0.2, 0.5], \/\/ INP in seconds\n  CLS: [0.1, 0.25], \/\/ CLS is unitless\n  FCP: [1.8, 3],\n  TTFB: [0.8, 1.8],\n  TBT: [0.2, 0.6], \/\/ TBT in seconds\n  \"Speed Index\": [3.4, 5.8],\n  Score: [90, 50] \/\/ Updated: 90+ (good), 50-89 (needs improvement), <50 (poor)\n};\n\nfunction applyColorBox(value, metricType) {\n  if (value === \"N\/A\") return `<div class=\"box neutral\">${value}<\/div>`;\n\n  const [good, moderate] = thresholds[metricType] || [Infinity, Infinity];\n  const numericValue = parseFloat(value);\n\n  let colorClass = \"poor\"; \/\/ Default to poor\n  \n  if (metricType === \"Score\") {\n    \/\/ Lighthouse score logic: good is green (90+), needs improvement is orange (50-89), poor is red (<50)\n    if (numericValue >= good) colorClass = \"good\";\n    else if (numericValue >= moderate) colorClass = \"moderate\";\n  } else {\n    \/\/ Other metrics: good is green (lower is better), needs improvement is orange, poor is red\n    if (numericValue <= good) colorClass = \"good\"; \/\/ Green for good (lower is better)\n    else if (numericValue <= moderate) colorClass = \"moderate\"; \/\/ Orange for needs improvement\n  }\n\n  return `<div class=\"box ${colorClass}\">${value}<\/div>`;\n}\n\nfunction renderResults(results) {\n  const resultsContainer = document.getElementById(\"results\");\n  resultsContainer.innerHTML = \"\";\n\n  resultsContainer.innerHTML += renderTable(\"Desktop CWV (Page)\", results.desktopPageCWV);\n  resultsContainer.innerHTML += renderTable(\"Desktop CWV (Origin)\", results.desktopOriginCWV);\n  resultsContainer.innerHTML += renderTable(\"Desktop Lighthouse\", results.desktopLighthouse);\n\n  resultsContainer.innerHTML += renderTable(\"Mobile CWV (Page)\", results.mobilePageCWV);\n  resultsContainer.innerHTML += renderTable(\"Mobile CWV (Origin)\", results.mobileOriginCWV);\n  resultsContainer.innerHTML += renderTable(\"Mobile Lighthouse\", results.mobileLighthouse);\n}\n\nfunction renderTable(title, data) {\n  if (data.length === 0) return \"\";\n\n  let table = `<h2>${title}<\/h2><div class=\"table-container\"><table><thead><tr><th>URL<\/th>`;\n  const sampleMetrics = data[0]?.metrics || {};\n  for (const metric in sampleMetrics) {\n    table += `<th>${metric}<\/th>`;\n  }\n  table += `<\/tr><\/thead><tbody>`;\n\n  for (const item of data) {\n    table += `<tr><td>${item.url}<\/td>`;\n    for (const metric in item.metrics) {\n      table += `<td>${item.metrics[metric]}<\/td>`;\n    }\n    table += `<\/tr>`;\n  }\n\n  table += `<\/tbody><\/table><\/div>`;\n  return table;\n}\n<\/script>\n\n<style>\n#cwv-form {\n  display: flex;\n  flex-direction: column;\n  gap: 15px;\n  align-items: stretch;\n}\n\n#apiKey,\n#urls {\n  font-size: 16px;\n  padding: 12px;\n  border: 1px solid #ccc;\n  border-radius: 5px;\n  width: 100%;\n  box-sizing: border-box;\n}\n\n#urls {\n  min-height: 150px;\n  resize: vertical;\n}\n\nbutton {\n  font-size: 18px;\n  padding: 12px;\n  background-color: #007bff;\n  color: #fff;\n  border: none;\n  border-radius: 5px;\n  cursor: pointer;\n  transition: background-color 0.3s ease;\n}\n\nbutton:hover {\n  background-color: #0056b3;\n}\n\n#cwv-tool {\n  max-width: 800px;\n  margin: 0 auto;\n  padding: 20px;\n  background-color: #f9f9f9;\n  border-radius: 10px;\n  font-family: Arial, sans-serif;\n}\n\n.title {\n  text-align: center;\n  font-size: 24px;\n}\n\n.box {\n  padding: 5px;\n  border-radius: 4px;\n  display: inline-block;\n  width: 100%;\n}\n\n.box.good { background-color: #d4edda; color: #155724; }\n.box.moderate { background-color: #fff3cd; color: #856404; }\n.box.poor { background-color: #f8d7da; color: #721c24; }\n.box.neutral { background-color: #e2e3e5; color: #6c757d; }\n\n.table-container { overflow-x: auto; margin: 20px 0; }\ntable { border-collapse: collapse; width: 100%; }\nth, td { border: 1px solid #ddd; padding: 8px; text-align: center; }\nth { background-color: #f4f4f4; font-weight: bold; }\n<\/style>\n\n\n<p>This is an example output to show you how the speed scorecards look. You can use it as a standalone tool: <a href=\"https:\/\/ahrefs.com\/blog\/bulk-pagespeed-insights-website-speed-test\/\">website speed test<\/a>.<\/p>\n\n\n<img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2025\/01\/website-speed-test-scaled.jpg\" alt=\"output of the bulk page speed test tool showing cwv and lighthouse desktop and mobile metrics\" width=\"548\" height=\"2560\" class=\"alignnone size-full wp-image-184636\" srcset=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2025\/01\/website-speed-test-scaled.jpg 548w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2025\/01\/website-speed-test-91x425.jpg 91w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2025\/01\/website-speed-test-329x1536.jpg 329w\" sizes=\"auto, (max-width: 548px) 100vw, 548px\">\n\n\n<div class=\"post-nav-link clearfix\" id=\"section1\"><a class=\"subhead-anchor\" data-tip=\"tooltip__copielink\" rel=\"#section1\"><svg width=\"19\" height=\"19\" viewBox=\"0 0 14 14\" style><g fill=\"none\" fill-rule=\"evenodd\"><path d=\"M0 0h14v14H0z\" \/><path d=\"M7.45 9.887l-1.62 1.621c-.92.92-2.418.92-3.338 0a2.364 2.364 0 0 1 0-3.339l1.62-1.62-1.273-1.272-1.62 1.62a4.161 4.161 0 1 0 5.885 5.884l1.62-1.62L7.45 9.886zM5.527 5.135L7.17 3.492c.92-.92 2.418-.92 3.339 0 .92.92.92 2.418 0 3.339L8.866 8.473l1.272 1.273 1.644-1.643A4.161 4.161 0 1 0 5.897 2.22L4.254 3.863l1.272 1.272zm-.66 3.998a.749.749 0 0 1 0-1.06l2.208-2.206a.749.749 0 1 1 1.06 1.06L5.928 9.133a.75.75 0 0 1-1.061 0z\" style \/><\/g><\/svg><\/a><div class=\"link-text\" data-anchor=\"Workflow\" data-section=\"workflow\">\n\n\n\n<h2 class=\"wp-block-heading\">Workflow<\/h2>\n\n\n\n<\/div><\/div>\n\n\n\n<p>For evaluation and monitoring, I\u2019d use Ahrefs, as shown above, to see the problematic pages and trends, as well as the <strong>Core Web Vitals<\/strong> report in <a href=\"https:\/\/search.google.com\/search-console\/\">Google Search Console (GSC)<\/a>.&nbsp;<\/p>\n\n\n\n<p>The benefit of GSC is that it buckets similar URLs. For the bucketed pages, you will likely be working in one system or template. And when you fix the issues, you will fix them for all of the pages in that bucket.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1903\" height=\"1096\" class=\"wp-image-161517\" src=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image14-5.png\" alt=\"Groupings of pages with similar issues in Google Search Console\" srcset=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image14-5.png 1903w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image14-5-680x392.png 680w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image14-5-768x442.png 768w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image14-5-1536x885.png 1536w\" sizes=\"auto, (max-width: 1903px) 100vw, 1903px\"><\/figure>\n\n\n\n<p>Once you know what pages or templates you need to work on, you can use the guidance from PageSpeed Insights to make improvements. I\u2019d also recommend checking out our guides on <a href=\"https:\/\/ahrefs.com\/blog\/largest-contentful-paint-lcp\/\">LCP<\/a>, <a href=\"https:\/\/ahrefs.com\/blog\/first-input-delay-fid\/\">FID<\/a>, and <a href=\"https:\/\/ahrefs.com\/blog\/cumulative-layout-shift-cls\/\">CLS<\/a> for how to fix various issues.<\/p>\n\n\n\n<p>To check the improvements, you can use PageSpeed Insights or run another crawl in <a href=\"https:\/\/ahrefs.com\/site-audit\">Site Audit<\/a> to get the data in bulk. The CWV data will take longer to show the impact of any changes because it is a 28-day average, so use PSI or the PSI data in Ahrefs to check if the changes you made improved the lab test metrics.<\/p>\n\n\n\n<p>If you have any questions, message me <a href=\"https:\/\/twitter.com\/patrickstox\">on Twitter<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>PageSpeed Insights works by analyzing a webpage\u2019s HTML, CSS, fonts, and JavaScript, and provides suggestions to optimize the performance of the page. This includes things like compressing images, minifying code, and reducing the number of HTTP requests made by the&nbsp;page.<span class=\"ellipsis\">\u2026<\/span><\/p>\n<div class=\"read-more\">Read more \u203a<\/div>\n<p><!-- end of .read-more --><\/p>\n","protected":false},"author":150,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"wp_typography_post_enhancements_disabled":false,"footnotes":""},"categories":[329],"tags":[],"coauthors":[377],"class_list":["post-161456","post","type-post","status-publish","format-standard","hentry","category-technical-seo","odd"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Google PageSpeed Insights For SEOs &amp; Developers<\/title>\n<meta name=\"description\" content=\"PageSpeed Insights analyzes a page\u2019s performance and gives suggestions for improving its speed and user experience. Learn how to leverage it.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/ahrefs.com\/blog\/pagespeed-insights\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Google PageSpeed Insights For SEOs &amp; Developers\" \/>\n<meta property=\"og:description\" content=\"Learn more about it.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/ahrefs.com\/blog\/pagespeed-insights\/\" \/>\n<meta property=\"og:site_name\" content=\"SEO Blog by Ahrefs\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Ahrefs\/\" \/>\n<meta property=\"article:author\" content=\"patrickstox\" \/>\n<meta property=\"article:published_time\" content=\"2023-06-22T05:02:14+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-01-22T23:30:32+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image3-7.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1999\" \/>\n\t<meta property=\"og:image:height\" content=\"802\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Patrick Stox\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:description\" content=\"Learn more about it.\" \/>\n<meta name=\"twitter:creator\" content=\"@patrickstox\" \/>\n<meta name=\"twitter:site\" content=\"@ahrefs\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/ahrefs.com\/blog\/pagespeed-insights\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/ahrefs.com\/blog\/pagespeed-insights\/\"},\"author\":{\"name\":\"Patrick Stox\",\"@id\":\"https:\/\/ahrefs.com\/blog\/#\/schema\/person\/14bf754248f3c561786477e4e5fd2067\"},\"headline\":\"Google PageSpeed Insights For SEOs &amp; Developers\",\"datePublished\":\"2023-06-22T05:02:14+00:00\",\"dateModified\":\"2025-01-22T23:30:32+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/ahrefs.com\/blog\/pagespeed-insights\/\"},\"wordCount\":1830,\"publisher\":{\"@id\":\"https:\/\/ahrefs.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/ahrefs.com\/blog\/pagespeed-insights\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/google-pagespeed-insights-for-seos-038-by-patrick-stox-technical-seo.jpg\",\"articleSection\":[\"Technical SEO\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/ahrefs.com\/blog\/pagespeed-insights\/\",\"url\":\"https:\/\/ahrefs.com\/blog\/pagespeed-insights\/\",\"name\":\"Google PageSpeed Insights For SEOs & Developers\",\"isPartOf\":{\"@id\":\"https:\/\/ahrefs.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/ahrefs.com\/blog\/pagespeed-insights\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/ahrefs.com\/blog\/pagespeed-insights\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image3-7.png\",\"datePublished\":\"2023-06-22T05:02:14+00:00\",\"dateModified\":\"2025-01-22T23:30:32+00:00\",\"description\":\"PageSpeed Insights analyzes a page\u2019s performance and gives suggestions for improving its speed and user experience. Learn how to leverage it.\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/ahrefs.com\/blog\/pagespeed-insights\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/ahrefs.com\/blog\/pagespeed-insights\/#primaryimage\",\"url\":\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image3-7.png\",\"contentUrl\":\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image3-7.png\",\"width\":1999,\"height\":802},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/ahrefs.com\/blog\/#website\",\"url\":\"https:\/\/ahrefs.com\/blog\/\",\"name\":\"SEO Blog by Ahrefs\",\"description\":\"Link Building Strategies &amp; SEO Tips\",\"publisher\":{\"@id\":\"https:\/\/ahrefs.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/ahrefs.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/ahrefs.com\/blog\/#organization\",\"name\":\"Ahrefs\",\"url\":\"https:\/\/ahrefs.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/ahrefs.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/ahrefs-logo.png\",\"contentUrl\":\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/ahrefs-logo.png\",\"width\":2048,\"height\":768,\"caption\":\"Ahrefs\"},\"image\":{\"@id\":\"https:\/\/ahrefs.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/Ahrefs\/\",\"https:\/\/x.com\/ahrefs\",\"https:\/\/www.linkedin.com\/company\/ahrefs\/\",\"https:\/\/www.youtube.com\/c\/ahrefscom\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/ahrefs.com\/blog\/#\/schema\/person\/14bf754248f3c561786477e4e5fd2067\",\"name\":\"Patrick Stox\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-06-at-00.57.29.pngbade1fd182f70b6825c334271c12533e\",\"url\":\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-06-at-00.57.29.png\",\"contentUrl\":\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-06-at-00.57.29.png\",\"caption\":\"Patrick Stox\"},\"description\":\"Patrick Stox is a Product Advisor, Technical SEO, &amp; Brand Ambassador at Ahrefs. He was the lead author for the SEO chapter of the 2021 Web Almanac and a reviewer for the 2022 SEO chapter. He also co-wrote the SEO Book For Beginners by Ahrefs and was the Technical Review Editor for The Art of SEO 4th Edition. He\u2019s an organizer for the Triangle SEO Meetup, the Tech SEO Connect conference, he runs a Technical SEO Slack group, and is a moderator for \/r\/TechSEO on Reddit.\",\"sameAs\":[\"https:\/\/patrickstox.com\/\",\"patrickstox\",\"https:\/\/x.com\/patrickstox\"],\"url\":\"https:\/\/ahrefs.com\/blog\/author\/patrick-stox\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Google PageSpeed Insights For SEOs & Developers","description":"PageSpeed Insights analyzes a page\u2019s performance and gives suggestions for improving its speed and user experience. Learn how to leverage it.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/ahrefs.com\/blog\/pagespeed-insights\/","og_locale":"en_US","og_type":"article","og_title":"Google PageSpeed Insights For SEOs & Developers","og_description":"Learn more about it.","og_url":"https:\/\/ahrefs.com\/blog\/pagespeed-insights\/","og_site_name":"SEO Blog by Ahrefs","article_publisher":"https:\/\/www.facebook.com\/Ahrefs\/","article_author":"patrickstox","article_published_time":"2023-06-22T05:02:14+00:00","article_modified_time":"2025-01-22T23:30:32+00:00","og_image":[{"width":1999,"height":802,"url":"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image3-7.png","type":"image\/png"}],"author":"Patrick Stox","twitter_card":"summary_large_image","twitter_description":"Learn more about it.","twitter_creator":"@patrickstox","twitter_site":"@ahrefs","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/ahrefs.com\/blog\/pagespeed-insights\/#article","isPartOf":{"@id":"https:\/\/ahrefs.com\/blog\/pagespeed-insights\/"},"author":{"name":"Patrick Stox","@id":"https:\/\/ahrefs.com\/blog\/#\/schema\/person\/14bf754248f3c561786477e4e5fd2067"},"headline":"Google PageSpeed Insights For SEOs &amp; Developers","datePublished":"2023-06-22T05:02:14+00:00","dateModified":"2025-01-22T23:30:32+00:00","mainEntityOfPage":{"@id":"https:\/\/ahrefs.com\/blog\/pagespeed-insights\/"},"wordCount":1830,"publisher":{"@id":"https:\/\/ahrefs.com\/blog\/#organization"},"image":{"@id":"https:\/\/ahrefs.com\/blog\/pagespeed-insights\/#primaryimage"},"thumbnailUrl":"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/google-pagespeed-insights-for-seos-038-by-patrick-stox-technical-seo.jpg","articleSection":["Technical SEO"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/ahrefs.com\/blog\/pagespeed-insights\/","url":"https:\/\/ahrefs.com\/blog\/pagespeed-insights\/","name":"Google PageSpeed Insights For SEOs & Developers","isPartOf":{"@id":"https:\/\/ahrefs.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/ahrefs.com\/blog\/pagespeed-insights\/#primaryimage"},"image":{"@id":"https:\/\/ahrefs.com\/blog\/pagespeed-insights\/#primaryimage"},"thumbnailUrl":"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image3-7.png","datePublished":"2023-06-22T05:02:14+00:00","dateModified":"2025-01-22T23:30:32+00:00","description":"PageSpeed Insights analyzes a page\u2019s performance and gives suggestions for improving its speed and user experience. Learn how to leverage it.","inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/ahrefs.com\/blog\/pagespeed-insights\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ahrefs.com\/blog\/pagespeed-insights\/#primaryimage","url":"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image3-7.png","contentUrl":"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/image3-7.png","width":1999,"height":802},{"@type":"WebSite","@id":"https:\/\/ahrefs.com\/blog\/#website","url":"https:\/\/ahrefs.com\/blog\/","name":"SEO Blog by Ahrefs","description":"Link Building Strategies &amp; SEO Tips","publisher":{"@id":"https:\/\/ahrefs.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/ahrefs.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/ahrefs.com\/blog\/#organization","name":"Ahrefs","url":"https:\/\/ahrefs.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ahrefs.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/ahrefs-logo.png","contentUrl":"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/ahrefs-logo.png","width":2048,"height":768,"caption":"Ahrefs"},"image":{"@id":"https:\/\/ahrefs.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Ahrefs\/","https:\/\/x.com\/ahrefs","https:\/\/www.linkedin.com\/company\/ahrefs\/","https:\/\/www.youtube.com\/c\/ahrefscom"]},{"@type":"Person","@id":"https:\/\/ahrefs.com\/blog\/#\/schema\/person\/14bf754248f3c561786477e4e5fd2067","name":"Patrick Stox","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-06-at-00.57.29.pngbade1fd182f70b6825c334271c12533e","url":"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-06-at-00.57.29.png","contentUrl":"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2019\/11\/Screenshot-2019-11-06-at-00.57.29.png","caption":"Patrick Stox"},"description":"Patrick Stox is a Product Advisor, Technical SEO, &amp; Brand Ambassador at Ahrefs. He was the lead author for the SEO chapter of the 2021 Web Almanac and a reviewer for the 2022 SEO chapter. He also co-wrote the SEO Book For Beginners by Ahrefs and was the Technical Review Editor for The Art of SEO 4th Edition. He\u2019s an organizer for the Triangle SEO Meetup, the Tech SEO Connect conference, he runs a Technical SEO Slack group, and is a moderator for \/r\/TechSEO on Reddit.","sameAs":["https:\/\/patrickstox.com\/","patrickstox","https:\/\/x.com\/patrickstox"],"url":"https:\/\/ahrefs.com\/blog\/author\/patrick-stox\/"}]}},"_links":{"self":[{"href":"https:\/\/ahrefs.com\/blog\/wp-json\/wp\/v2\/posts\/161456","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ahrefs.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ahrefs.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ahrefs.com\/blog\/wp-json\/wp\/v2\/users\/150"}],"replies":[{"embeddable":true,"href":"https:\/\/ahrefs.com\/blog\/wp-json\/wp\/v2\/comments?post=161456"}],"version-history":[{"count":0,"href":"https:\/\/ahrefs.com\/blog\/wp-json\/wp\/v2\/posts\/161456\/revisions"}],"wp:attachment":[{"href":"https:\/\/ahrefs.com\/blog\/wp-json\/wp\/v2\/media?parent=161456"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ahrefs.com\/blog\/wp-json\/wp\/v2\/categories?post=161456"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ahrefs.com\/blog\/wp-json\/wp\/v2\/tags?post=161456"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/ahrefs.com\/blog\/wp-json\/wp\/v2\/coauthors?post=161456"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}