[{"data":1,"prerenderedAt":1572},["ShallowReactive",2],{"\u002Fcontent\u002Farticles\u002Fai-readiness-your-next-visitor-wont-have-a-browser":3,"more:\u002Fcontent\u002Farticles\u002Fai-readiness-your-next-visitor-wont-have-a-browser":171},{"id":4,"title":5,"body":6,"createdAt":161,"description":162,"extension":163,"meta":164,"navigation":165,"path":166,"seo":167,"stem":168,"type":169,"updatedAt":161,"__hash__":170},"content\u002Fcontent\u002Farticles\u002Fai-readiness-your-next-visitor-wont-have-a-browser.md","AI readiness: your next visitor won't have a browser",{"type":7,"value":8,"toc":154},"minimark",[9,13,16,19,24,27,35,38,42,45,56,70,80,83,97,103,113,119,125,129,132,135,138,142,151],[10,11,12],"p",{},"Somewhere in your server logs, between the Googlebot hits and the people you built the site for, there is a new kind of reader. It identifies itself as ClaudeBot, or GPTBot, or PerplexityBot, or one of a dozen quieter names. It doesn't scroll. It doesn't wait for your JavaScript bundle. It reads whatever your server actually sends, decides in milliseconds whether your site answered its question, and moves on.",[10,14,15],{},"That reader is there because a human asked it something. \"Find me a good accountant in Graz.\" \"Which of these two tools is better maintained?\" \"Summarize what this company does.\" The answer the assistant gives - and whether your site is the source it quotes or the one it never saw - depends on things most websites have never been tested for.",[10,17,18],{},"That is what we mean by AI readiness, and it is why we grade it on every audit now, right next to performance and security.",[20,21,23],"h2",{"id":22},"the-part-that-stings","The part that stings",[10,25,26],{},"Here is the uncomfortable bit: a site can be beautiful, fast, accessible, and rank fine on Google - and still be nearly invisible to an AI assistant.",[10,28,29,30,34],{},"The reason is mundane. Most assistants read the raw HTML response. If your content only exists after a framework boots up in the browser, the assistant gets a loading spinner and a ",[31,32,33],"code",{},"\u003Cdiv id=\"app\">\u003C\u002Fdiv>",". It won't guess what would have appeared there. To that reader, your carefully written pricing page is an empty room.",[10,36,37],{},"We see this constantly in audits. The marketing site renders server-side and reads fine; the docs, the changelog, the product pages - the parts people actually ask assistants about - are client-rendered and come back blank. Nobody chose that outcome. It's just what happens when nobody looks.",[20,39,41],{"id":40},"what-it-actually-takes","What it actually takes",[10,43,44],{},"The good news: none of this is exotic. AI readiness is six mostly boring things done properly. These are exactly the six checks in our audit, so when your report shows a grade, this is what stands behind it.",[10,46,47,51,52,55],{},[48,49,50],"strong",{},"1. Content that exists before JavaScript runs."," The single biggest factor. Server-render your pages, or pre-render them at build time - whatever your stack calls it. The test is brutally simple: fetch a page with ",[31,53,54],{},"curl"," and look at what comes back. If the words you care about aren't in that response, most machine readers never see them.",[10,57,58,65,66,69],{},[48,59,60,61,64],{},"2. An ",[31,62,63],{},"llms.txt"," file."," A proposed standard, young but spreading fast: a markdown file at ",[31,67,68],{},"\u002Fllms.txt"," that tells AI systems what your site is and where the important content lives. Think of it as robots.txt, but for meaning instead of permission. Ours looks roughly like this:",[71,72,77],"pre",{"className":73,"code":75,"language":76},[74],"language-text","# AwesomeTechStack\n> Website audits: technology stack, versions, quality, AI readiness.\n\n## Key pages\n- [Methodology](https:\u002F\u002Fawesometechstack.com\u002Fmethodology)\n- [Pricing](https:\u002F\u002Fawesometechstack.com\u002Fpricing)\n","text",[31,78,75],{"__ignoreMap":79},"",[10,81,82],{},"Ten minutes of work. It is the difference between an assistant reconstructing your site from fragments and an assistant reading your own summary of it.",[10,84,85,88,89,92,93,96],{},[48,86,87],{},"3. Deliberate agent access rules."," AI crawlers respect robots.txt, which means robots.txt is now a business decision. Blocking ",[31,90,91],{},"GPTBot"," and ",[31,94,95],{},"ClaudeBot"," is a legitimate choice - but it should be a choice, not an accident inherited from a template. Decide who may read you, write it down:",[71,98,101],{"className":99,"code":100,"language":76},[74],"User-agent: GPTBot\nAllow: \u002F\n",[31,102,100],{"__ignoreMap":79},[10,104,105,108,109,112],{},[48,106,107],{},"4. Agent identity."," The emerging agent web has a discovery layer: ",[31,110,111],{},".well-known"," endpoints and an agent-card that say, in machine-readable form, \"this is who we are and this is what you can do here.\" Early days, and that is exactly the point - the sites that publish identity now are the ones agents will integrate with first.",[10,114,115,118],{},[48,116,117],{},"5. Structured data."," JSON-LD is the quotable layer of your site: prices, opening hours, product names, article dates, all in a form a machine can lift without guessing. Assistants strongly prefer facts they can quote over prose they must interpret. Every schema block you publish is a fact you control the wording of.",[10,120,121,124],{},[48,122,123],{},"6. A real sitemap."," Unglamorous, decades old, still the map every crawler follows. Present, current, and referenced from robots.txt. You would be surprised how often it's missing on otherwise professional sites - and how much of a site an agent simply never finds because of it.",[20,126,128],{"id":127},"why-this-is-worth-doing-now","Why this is worth doing now",[10,130,131],{},"Because the shift is already in the numbers. A growing share of product research, vendor comparison and \"should I trust this company\" checking happens inside assistants, and the person on the other end often never opens a browser tab at all. They ask, they get an answer, they act. If the answer was assembled without your site in it, you didn't lose the click - you lost the conversation entirely.",[10,133,134],{},"And because right now it's cheap. The six items above are a weekend of work for most sites, none of it requiring a rebuild. In a year, when your competitors' agent-cards are integrated and their llms.txt files are being read daily, catching up will not be a weekend.",[10,136,137],{},"The web has been through this before. Sites that took mobile seriously in 2010 or HTTPS seriously in 2015 didn't do anything heroic - they just moved before it was mandatory, and collected the advantage while it still was one.",[20,139,141],{"id":140},"where-you-stand-today","Where you stand today",[10,143,144,145,150],{},"You don't have to guess. ",[146,147,149],"a",{"href":148},"\u002F","Run an audit"," on your site and the report grades AI readiness from A to F, check by check, next to your Awesomeness Score - so you can see exactly which of the six is missing and fix that one, instead of everything vaguely.",[10,152,153],{},"Standards like llms.txt are young and still moving; our grades are versioned, and as the AI web firms up, the checks will evolve with it. What won't change is the direction: the share of readers without browsers only grows. Build for the reader who is already in your logs.",{"title":79,"searchDepth":155,"depth":155,"links":156},2,[157,158,159,160],{"id":22,"depth":155,"text":23},{"id":40,"depth":155,"text":41},{"id":127,"depth":155,"text":128},{"id":140,"depth":155,"text":141},"2026-07-19T10:00:00.000Z","More and more of your traffic is AI assistants reading on someone's behalf. What they can and can't read on your site now shapes whether you get quoted, recommended, or skipped - here is what it takes to be readable.","md",{},true,"\u002Fcontent\u002Farticles\u002Fai-readiness-your-next-visitor-wont-have-a-browser",{"title":5,"description":162},"content\u002Farticles\u002Fai-readiness-your-next-visitor-wont-have-a-browser","Learning","ZfPEl5mzLDbEos0P2K2lc_DKhkGzLrcmd_sY3MZikLQ",[172,267,687,837,922,1018,1092,1208],{"id":4,"title":5,"body":173,"createdAt":161,"description":162,"extension":163,"meta":265,"navigation":165,"path":166,"seo":266,"stem":168,"type":169,"updatedAt":161,"__hash__":170},{"type":7,"value":174,"toc":259},[175,177,179,181,183,185,189,191,193,195,201,209,214,216,224,229,235,239,243,245,247,249,251,253,257],[10,176,12],{},[10,178,15],{},[10,180,18],{},[20,182,23],{"id":22},[10,184,26],{},[10,186,29,187,34],{},[31,188,33],{},[10,190,37],{},[20,192,41],{"id":40},[10,194,44],{},[10,196,197,51,199,55],{},[48,198,50],{},[31,200,54],{},[10,202,203,65,207,69],{},[48,204,60,205,64],{},[31,206,63],{},[31,208,68],{},[71,210,212],{"className":211,"code":75,"language":76},[74],[31,213,75],{"__ignoreMap":79},[10,215,82],{},[10,217,218,88,220,92,222,96],{},[48,219,87],{},[31,221,91],{},[31,223,95],{},[71,225,227],{"className":226,"code":100,"language":76},[74],[31,228,100],{"__ignoreMap":79},[10,230,231,108,233,112],{},[48,232,107],{},[31,234,111],{},[10,236,237,118],{},[48,238,117],{},[10,240,241,124],{},[48,242,123],{},[20,244,128],{"id":127},[10,246,131],{},[10,248,134],{},[10,250,137],{},[20,252,141],{"id":140},[10,254,144,255,150],{},[146,256,149],{"href":148},[10,258,153],{},{"title":79,"searchDepth":155,"depth":155,"links":260},[261,262,263,264],{"id":22,"depth":155,"text":23},{"id":40,"depth":155,"text":41},{"id":127,"depth":155,"text":128},{"id":140,"depth":155,"text":141},{},{"title":5,"description":162},{"id":268,"title":269,"body":270,"createdAt":680,"description":681,"extension":163,"meta":682,"navigation":165,"path":683,"seo":684,"stem":685,"type":169,"updatedAt":680,"__hash__":686},"content\u002Fcontent\u002Farticles\u002Fadding-compression-to-nuxt-3-for-enhanced-performance.md","How to Enhance Nuxt 3 with Compression for Better Performance",{"type":7,"value":271,"toc":673},[272,276,283,287,293,348,352,366,606,609,613,616,656,660,666,669],[20,273,275],{"id":274},"introduction","Introduction",[10,277,278,279,282],{},"Web performance is crucial for user experience and SEO. One key aspect of performance is the size of the data transferred between the server and client. Compression can significantly reduce this size, leading to faster loading times. In this article, we'll explore how to add compression to a Nuxt 3 application using the ",[31,280,281],{},"h3-compression"," package.\nThis is only needed if you have sites using prerender: false",[20,284,286],{"id":285},"installing-h3-compression","Installing h3-compression",[10,288,289,290,292],{},"First, add ",[31,291,281],{}," to your Nuxt 3 project. Depending on your package manager, use one of the following commands:",[71,294,298],{"className":295,"code":296,"language":297,"meta":79,"style":79},"language-shell shiki shiki-themes github-light github-dark","# Using npm\nnpm install h3-compression\n\n# Using yarn\nyarn add h3-compression\n\n# Using pnpm\npnpm add h3-compression\n","shell",[31,299,300,308,313,319,325,331,336,342],{"__ignoreMap":79},[301,302,305],"span",{"class":303,"line":304},"line",1,[301,306,307],{},"# Using npm\n",[301,309,310],{"class":303,"line":155},[301,311,312],{},"npm install h3-compression\n",[301,314,316],{"class":303,"line":315},3,[301,317,318],{"emptyLinePlaceholder":165},"\n",[301,320,322],{"class":303,"line":321},4,[301,323,324],{},"# Using yarn\n",[301,326,328],{"class":303,"line":327},5,[301,329,330],{},"yarn add h3-compression\n",[301,332,334],{"class":303,"line":333},6,[301,335,318],{"emptyLinePlaceholder":165},[301,337,339],{"class":303,"line":338},7,[301,340,341],{},"# Using pnpm\n",[301,343,345],{"class":303,"line":344},8,[301,346,347],{},"pnpm add h3-compression\n",[20,349,351],{"id":350},"setting-up-a-nitro-plugin-for-compression","Setting Up a Nitro Plugin for Compression",[10,353,354,355,357,358,361,362,365],{},"After installing ",[31,356,281],{},", you need to set up a Nitro plugin. Create a file named ",[31,359,360],{},"compression.ts"," in the ",[31,363,364],{},"server\u002Fplugins"," directory of your Nuxt 3 project and add the following code:",[71,367,371],{"className":368,"code":369,"language":370,"meta":79,"style":79},"language-ts shiki shiki-themes github-light github-dark","\u002F\u002F server\u002Fplugins\u002Fcompression.ts\nimport { useCompression } from 'h3-compression'\n\nexport default defineNitroPlugin((nitro) => {\n  nitro.hooks.hook('render:response', async (response, { event }) => {\n    \u002F\u002F Skip compression for 404 error pages\n    const is404Error = event._path?.includes('\u002F__nuxt_error') || event._path?.includes('statusCode=404');\n    if (is404Error) return;\n\n    \u002F\u002F Only apply compression to HTML content\n    if (!response.headers?.['content-type']?.startsWith('text\u002Fhtml')) return;\n\n    \u002F\u002F Apply compression\n    await useCompression(event, response);\n  });\n});\n","ts",[31,372,373,379,396,400,428,467,472,512,526,531,537,571,576,582,594,600],{"__ignoreMap":79},[301,374,375],{"class":303,"line":304},[301,376,378],{"class":377},"sJ8bj","\u002F\u002F server\u002Fplugins\u002Fcompression.ts\n",[301,380,381,385,389,392],{"class":303,"line":155},[301,382,384],{"class":383},"szBVR","import",[301,386,388],{"class":387},"sVt8B"," { useCompression } ",[301,390,391],{"class":383},"from",[301,393,395],{"class":394},"sZZnC"," 'h3-compression'\n",[301,397,398],{"class":303,"line":315},[301,399,318],{"emptyLinePlaceholder":165},[301,401,402,405,408,412,415,419,422,425],{"class":303,"line":321},[301,403,404],{"class":383},"export",[301,406,407],{"class":383}," default",[301,409,411],{"class":410},"sScJk"," defineNitroPlugin",[301,413,414],{"class":387},"((",[301,416,418],{"class":417},"s4XuR","nitro",[301,420,421],{"class":387},") ",[301,423,424],{"class":383},"=>",[301,426,427],{"class":387}," {\n",[301,429,430,433,436,439,442,445,448,451,454,457,460,463,465],{"class":303,"line":327},[301,431,432],{"class":387},"  nitro.hooks.",[301,434,435],{"class":410},"hook",[301,437,438],{"class":387},"(",[301,440,441],{"class":394},"'render:response'",[301,443,444],{"class":387},", ",[301,446,447],{"class":383},"async",[301,449,450],{"class":387}," (",[301,452,453],{"class":417},"response",[301,455,456],{"class":387},", { ",[301,458,459],{"class":417},"event",[301,461,462],{"class":387}," }) ",[301,464,424],{"class":383},[301,466,427],{"class":387},[301,468,469],{"class":303,"line":333},[301,470,471],{"class":377},"    \u002F\u002F Skip compression for 404 error pages\n",[301,473,474,477,481,484,487,490,492,495,497,500,502,504,506,509],{"class":303,"line":338},[301,475,476],{"class":383},"    const",[301,478,480],{"class":479},"sj4cs"," is404Error",[301,482,483],{"class":383}," =",[301,485,486],{"class":387}," event._path?.",[301,488,489],{"class":410},"includes",[301,491,438],{"class":387},[301,493,494],{"class":394},"'\u002F__nuxt_error'",[301,496,421],{"class":387},[301,498,499],{"class":383},"||",[301,501,486],{"class":387},[301,503,489],{"class":410},[301,505,438],{"class":387},[301,507,508],{"class":394},"'statusCode=404'",[301,510,511],{"class":387},");\n",[301,513,514,517,520,523],{"class":303,"line":344},[301,515,516],{"class":383},"    if",[301,518,519],{"class":387}," (is404Error) ",[301,521,522],{"class":383},"return",[301,524,525],{"class":387},";\n",[301,527,529],{"class":303,"line":528},9,[301,530,318],{"emptyLinePlaceholder":165},[301,532,534],{"class":303,"line":533},10,[301,535,536],{"class":377},"    \u002F\u002F Only apply compression to HTML content\n",[301,538,540,542,544,547,550,553,556,559,561,564,567,569],{"class":303,"line":539},11,[301,541,516],{"class":383},[301,543,450],{"class":387},[301,545,546],{"class":383},"!",[301,548,549],{"class":387},"response.headers?.[",[301,551,552],{"class":394},"'content-type'",[301,554,555],{"class":387},"]?.",[301,557,558],{"class":410},"startsWith",[301,560,438],{"class":387},[301,562,563],{"class":394},"'text\u002Fhtml'",[301,565,566],{"class":387},")) ",[301,568,522],{"class":383},[301,570,525],{"class":387},[301,572,574],{"class":303,"line":573},12,[301,575,318],{"emptyLinePlaceholder":165},[301,577,579],{"class":303,"line":578},13,[301,580,581],{"class":377},"    \u002F\u002F Apply compression\n",[301,583,585,588,591],{"class":303,"line":584},14,[301,586,587],{"class":383},"    await",[301,589,590],{"class":410}," useCompression",[301,592,593],{"class":387},"(event, response);\n",[301,595,597],{"class":303,"line":596},15,[301,598,599],{"class":387},"  });\n",[301,601,603],{"class":303,"line":602},16,[301,604,605],{"class":387},"});\n",[10,607,608],{},"This plugin hooks into the Nuxt server's response rendering process, applying compression to HTML content while skipping it for 404 error pages.",[20,610,612],{"id":611},"understanding-the-compression-logic","Understanding the Compression Logic",[10,614,615],{},"The compression logic in the plugin works as follows:",[617,618,619,626,643],"ol",{},[620,621,622,625],"li",{},[48,623,624],{},"404 Error Check",": It first checks if the response is for a 404 error page. If so, compression is skipped to avoid unnecessary processing for error responses.",[620,627,628,631,632,635,636,638,639,642],{},[48,629,630],{},"Content-Type Check",": Next, it checks the ",[31,633,634],{},"Content-Type"," of the response. The compression is only applied to responses with ",[31,637,634],{}," starting with ",[31,640,641],{},"text\u002Fhtml",", which is typical for web pages.",[620,644,645,648,649,652,653,655],{},[48,646,647],{},"Applying Compression",": Finally, if the response passes these checks, ",[31,650,651],{},"useCompression"," from ",[31,654,281],{}," is used to compress the response data.",[20,657,659],{"id":658},"conclusion","Conclusion",[10,661,662,663,665],{},"Integrating compression into your Nuxt 3 application can significantly improve its performance, particularly for users with slower internet connections. The ",[31,664,281],{}," module provides a straightforward way to add this capability. By setting up a simple Nitro plugin as described above, you can ensure that your application serves compressed content efficiently, enhancing the overall user experience.",[10,667,668],{},"Remember to test your application thoroughly after implementing compression to ensure that everything works as expected and to observe the performance improvements.",[670,671,672],"style",{},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}",{"title":79,"searchDepth":155,"depth":155,"links":674},[675,676,677,678,679],{"id":274,"depth":155,"text":275},{"id":285,"depth":155,"text":286},{"id":350,"depth":155,"text":351},{"id":611,"depth":155,"text":612},{"id":658,"depth":155,"text":659},"2024-01-17T09:00:00.088Z","Learn how to integrate compression into your Nuxt 3 application to improve loading times and enhance user experience. This guide will walk you through the process of using the `h3-compression` module for efficient data transfer.",{},"\u002Fcontent\u002Farticles\u002Fadding-compression-to-nuxt-3-for-enhanced-performance",{"title":269,"description":681},"content\u002Farticles\u002Fadding-compression-to-nuxt-3-for-enhanced-performance","0R9kqYHMJegcxKTxURFPFFmRjAN5waXJTJqh-FxLl2c",{"id":688,"title":689,"body":690,"createdAt":829,"description":830,"extension":163,"meta":831,"navigation":165,"path":832,"seo":833,"stem":834,"type":835,"updatedAt":829,"__hash__":836},"content\u002Fcontent\u002Farticles\u002Fnavigating-the-tech-stack-universe-insights-for-marketers-and-researchers-in-the-era-of-awesometechstack.md","How AwesomeTechStack Is Changing the Game for Marketers: A Tech Stack Insight",{"type":7,"value":691,"toc":822},[692,707,711,722,727,747,751,777,781,784,816,819],[10,693,694,695,699,700,706],{},"The term ",[696,697,698],"em",{},"tech stack"," refers to the collection of programming languages, frameworks, libraries, patterns, servers, and tools that developers use to build web or mobile applications. It's essentially the toolkit that an organization uses to craft and maintain their digital offerings. In this comprehensive guide, we delve into the importance of tech stacks with a special focus on ",[146,701,705],{"href":702,"rel":703},"https:\u002F\u002Fawesometechstack.com",[704],"nofollow","AwesomeTechStack",", demonstrating how it can be a game-changer for marketers and researchers.",[20,708,710],{"id":709},"demystifying-tech-stack-components","Demystifying Tech Stack Components",[10,712,713,714,717,718,721],{},"The anatomy of a tech stack is split into two core segments: the ",[696,715,716],{},"frontend"," (client-side) and the ",[696,719,720],{},"backend"," (server-side). The frontend caters to the visual aspects and user interaction, while the backend is the powerhouse managing data, processing, and server operations.",[723,724,726],"h3",{"id":725},"exploring-frontend-technologies","Exploring Frontend Technologies",[617,728,729,735,741],{},[620,730,731,734],{},[48,732,733],{},"Core Languages",": The trinity of HTML, CSS, and JavaScript forms the backbone of frontend development, shaping the structure, style, and dynamics of web and mobile interfaces.",[620,736,737,740],{},[48,738,739],{},"Frameworks and Libraries",": Tools like React, Angular, and Vue.js empower developers to build more efficient, consistent user interfaces.",[620,742,743,746],{},[48,744,745],{},"UI\u002FUX Innovations",": Design frameworks like Material-UI and Bootstrap offer ready-made components and guidelines to ensure engaging and intuitive user experiences.",[723,748,750],{"id":749},"unpacking-backend-technologies","Unpacking Backend Technologies",[617,752,753,759,765,771],{},[620,754,755,758],{},[48,756,757],{},"Diverse Programming Languages",": Backend realms use languages like Python, Ruby, Java, PHP, and Node.js for server logic, database interactions, and data operations.",[620,760,761,764],{},[48,762,763],{},"Supportive Frameworks and Libraries",": Systems such as Django (Python), Ruby on Rails (Ruby), and Express (Node.js) streamline the development of server-side applications.",[620,766,767,770],{},[48,768,769],{},"Database Management",": Tools like MySQL, PostgreSQL, and MongoDB are pivotal in storing and managing app data.",[620,772,773,776],{},[48,774,775],{},"Server Solutions",": Infrastructure management is crucial, and server technologies like Apache, Nginx, and Amazon Web Services (AWS) form the backbone for hosting applications.",[20,778,780],{"id":779},"harnessing-awesometechstacks-potential-for-market-insight","Harnessing AwesomeTechStack's Potential for Market Insight",[10,782,783],{},"AwesomeTechStack emerges as a vital resource for marketers and researchers who aim to scrutinize and evaluate the technology stacks of various organizations. Here’s how AwesomeTechStack can be transformative:",[617,785,786,792,798,804,810],{},[620,787,788,791],{},[48,789,790],{},"Tracking Tech Trends",": Keep abreast with emerging web and mobile development trends by monitoring popular and rapidly evolving tech stacks.",[620,793,794,797],{},[48,795,796],{},"Assessing Partnerships",": Gauge the technical prowess of potential partners by analyzing their tech stacks, helping you ascertain their adherence to industry standards and compatibility with your business needs.",[620,799,800,803],{},[48,801,802],{},"Benchmarking Your Tech Stack",": Position your organization’s tech stack against those of competitors and industry leaders to pinpoint improvement areas and growth opportunities.",[620,805,806,809],{},[48,807,808],{},"Guiding Tech Decisions",": Leverage AwesomeTechStack’s data-driven insights for informed decision-making regarding adopting new frameworks or database migrations.",[620,811,812,815],{},[48,813,814],{},"Identifying Skill Requirements",": By examining the tech stacks of industry forerunners, determine in-demand skills and technologies to refine your recruitment and training strategies.",[817,818],"hr",{},[10,820,821],{},"In summation, comprehending the intricacies of tech stacks is vital for any business striving to remain competitive in today’s fast-paced digital arena utilizing AwesomeTechStack’s insights empowers marketers and researchers with in-depth knowledge of industry-leading technologies, fostering informed strategic choices and fostering business advancement.",{"title":79,"searchDepth":155,"depth":155,"links":823},[824,828],{"id":709,"depth":155,"text":710,"children":825},[826,827],{"id":725,"depth":315,"text":726},{"id":749,"depth":315,"text":750},{"id":779,"depth":155,"text":780},"2023-10-04T09:00:00.088Z","Dive deep into the world of tech stacks and discover how AwesomeTechStack is revolutionizing the way marketers and researchers approach technology in digital development.",{},"\u002Fcontent\u002Farticles\u002Fnavigating-the-tech-stack-universe-insights-for-marketers-and-researchers-in-the-era-of-awesometechstack",{"title":689,"description":830},"content\u002Farticles\u002Fnavigating-the-tech-stack-universe-insights-for-marketers-and-researchers-in-the-era-of-awesometechstack","Marketing","doIlOs7fUAutS3VL1wgNYqYoYeaujJbB6u00HUWPsnU",{"id":838,"title":839,"body":840,"createdAt":915,"description":916,"extension":163,"meta":917,"navigation":165,"path":918,"seo":919,"stem":920,"type":835,"updatedAt":915,"__hash__":921},"content\u002Fcontent\u002Farticles\u002Fintroducing-the-new-awesometechstack-website-analyzer-api.md","Introducing the New Website Analyzer API",{"type":7,"value":841,"toc":909},[842,844,851,855,858,876,879,883,902,906],[20,843,275],{"id":274},[10,845,846,847,850],{},"Exciting news for all web developers and tech enthusiasts! We are proud to announce the launch of the AwesomeTechStack ",[48,848,849],{},"Website Analyzer API",". This innovative API is designed to help you analyze and optimize your website's tech stack like never before. Gain valuable insights, enhance performance, and stay ahead in the tech world with the latest trends and updates.",[20,852,854],{"id":853},"features","Features",[10,856,857],{},"Our Website Analyzer API offers a range of features, including:",[859,860,861,864,867,870,873],"ul",{},[620,862,863],{},"Comprehensive technology stack analysis",[620,865,866],{},"Real-time performance metrics",[620,868,869],{},"Security and best practices recommendations",[620,871,872],{},"Detailed insights for optimization",[620,874,875],{},"Access to a growing tech enthusiast community",[10,877,878],{},"The API empowers you to harness the full potential of your website's technology stack. With our easy-to-use API documentation, you can quickly integrate the Website Analyzer into your projects and start optimizing your web presence.",[20,880,882],{"id":881},"getting-started","Getting Started",[617,884,885,893,896,899],{},[620,886,887,888,892],{},"Read the ",[146,889,891],{"href":890},"\u002Fproducts\u002Fwebsite-analyzer\u002Fdocs","API documentation",".",[620,894,895],{},"Learn about the available API endpoints and parameters.",[620,897,898],{},"Follow the step-by-step guide to integrate the API into your projects.",[620,900,901],{},"Start analyzing your website's tech stack and get valuable insights to improve performance.",[20,903,905],{"id":904},"join-the-journey","Join the Journey",[10,907,908],{},"Join us on this exciting journey towards a more optimized web presence. Don't miss this amazing opportunity to take your website to the next level of awesomeness! Visit our API documentation now and unleash the power of the AwesomeTechStack Website Analyzer API.",{"title":79,"searchDepth":155,"depth":155,"links":910},[911,912,913,914],{"id":274,"depth":155,"text":275},{"id":853,"depth":155,"text":854},{"id":881,"depth":155,"text":882},{"id":904,"depth":155,"text":905},"2023-04-12T00:00:00.008Z","Unleash the power of AwesomeTechStack's new Website Analyzer API. Optimize your website's tech stack, enhance performance, and stay ahead with the latest trends and updates.",{},"\u002Fcontent\u002Farticles\u002Fintroducing-the-new-awesometechstack-website-analyzer-api",{"title":839,"description":916},"content\u002Farticles\u002Fintroducing-the-new-awesometechstack-website-analyzer-api","jBrjDdmlkIyPMJzwmnrGdw84fqaZm5mLMpeVZEnhoX8",{"id":923,"title":924,"body":925,"createdAt":1011,"description":1012,"extension":163,"meta":1013,"navigation":165,"path":1014,"seo":1015,"stem":1016,"type":169,"updatedAt":1011,"__hash__":1017},"content\u002Fcontent\u002Farticles\u002Foptimizing-your-tech-stack-with-awesometechstack.md","Optimizing Your Tech Stack with AwesomeTechStack: Boost Performance, Security, and Maintainability",{"type":7,"value":926,"toc":1005},[927,931,934,938,941,967,971,974,1000,1002],[20,928,930],{"id":929},"what-is-a-tech-stack","What is a Tech Stack?",[10,932,933],{},"A tech stack is a combination of software tools, programming languages, libraries, and frameworks that developers use to build and maintain an application. It consists of both front-end and back-end components that work together to create a seamless user experience. The front-end, or client-side, handles the user interface and user interactions, while the back-end, or server-side, manages the data storage, processing, and communication with external services.",[20,935,937],{"id":936},"why-is-a-tech-stack-important","Why is a Tech Stack Important?",[10,939,940],{},"The right tech stack can make or break a software project. Choosing the appropriate technologies for your project is critical for several reasons:",[617,942,943,949,955,961],{},[620,944,945,948],{},[48,946,947],{},"Performance",": An optimized tech stack ensures that your application runs smoothly, loads quickly, and can handle a high volume of users without crashing.",[620,950,951,954],{},[48,952,953],{},"Security",": A secure tech stack helps protect your application and user data from cyber threats and vulnerabilities.",[620,956,957,960],{},[48,958,959],{},"Scalability",": A scalable tech stack allows your application to grow and adapt to increasing user demands and expectations.",[620,962,963,966],{},[48,964,965],{},"Maintainability",": A maintainable tech stack makes it easier for developers to update, fix bugs, and add new features to the application.",[20,968,970],{"id":969},"how-can-awesometechstack-help","How Can AwesomeTechStack Help?",[10,972,973],{},"AwesomeTechStack is a platform that helps developers and businesses optimize their tech stacks by offering insights, recommendations, and best practices. With AwesomeTechStack, you can:",[617,975,976,982,988,994],{},[620,977,978,981],{},[48,979,980],{},"Analyze your tech stack",": Use the platform to evaluate your current tech stack, identify potential issues, and receive personalized recommendations for improvements.",[620,983,984,987],{},[48,985,986],{},"Stay up-to-date with the latest technologies",": AwesomeTechStack keeps you informed about emerging technologies, updates, and industry trends, helping you make informed decisions about your tech stack.",[620,989,990,993],{},[48,991,992],{},"Benchmark your tech stack",": Compare your tech stack with industry standards and see how it performs against similar applications.",[620,995,996,999],{},[48,997,998],{},"Learn from the community",": AwesomeTechStack's active community of developers and experts provides valuable insights, tips, and advice on optimizing tech stacks.",[20,1001,659],{"id":658},[10,1003,1004],{},"A well-optimized tech stack is essential for the success of any software project. By understanding the importance of a tech stack and leveraging the power of AwesomeTechStack, you can improve your application's performance, security, and maintainability, ensuring a successful and future-proof project.",{"title":79,"searchDepth":155,"depth":155,"links":1006},[1007,1008,1009,1010],{"id":929,"depth":155,"text":930},{"id":936,"depth":155,"text":937},{"id":969,"depth":155,"text":970},{"id":658,"depth":155,"text":659},"2022-02-12T21:25:28.088Z","Discover the importance of a well-structured tech stack, learn how to optimize it for better performance, security, and maintainability, and explore how AwesomeTechStack can help.",{},"\u002Fcontent\u002Farticles\u002Foptimizing-your-tech-stack-with-awesometechstack",{"title":924,"description":1012},"content\u002Farticles\u002Foptimizing-your-tech-stack-with-awesometechstack","xPnYWm80_5p9npBFXYlO6v9ijoK1_9yzquPiQWNv4uY",{"id":1019,"title":1020,"body":1021,"createdAt":1085,"description":1086,"extension":163,"meta":1087,"navigation":165,"path":1088,"seo":1089,"stem":1090,"type":169,"updatedAt":1085,"__hash__":1091},"content\u002Fcontent\u002Farticles\u002Ffixed-google-crawlbot-not-working-issue-and-how-we-detected-it.md","How We Fixed the Google Crawlbot Issue: A Troubleshooting Guide",{"type":7,"value":1022,"toc":1076},[1023,1027,1030,1034,1037,1041,1044,1048,1051,1055,1058,1062,1069,1073],[20,1024,1026],{"id":1025},"identifying-the-errors-in-google-cloud-log","Identifying the Errors in Google Cloud Log",[10,1028,1029],{},"Our first step was to examine the Google Cloud Log to find any errors related to our website. We found several logs indicating that the Google Crawlbot was not able to access our website content.",[20,1031,1033],{"id":1032},"inspecting-the-issue-with-google-chrome-dev-tools","Inspecting the Issue with Google Chrome Dev Tools",[10,1035,1036],{},"We opened Google Chrome's Developer Tools and added a new device to the app toolbar with the Google Crawlbot User-Agent string. This helped us identify that our website was not being rendered properly for the Crawlbot.",[20,1038,1040],{"id":1039},"analyzing-googles-rendering-issues","Analyzing Google's Rendering Issues",[10,1042,1043],{},"After identifying the rendering issues, we checked Google's official documentation and resources to better understand the problem. This allowed us to confirm that our website was not being crawled as expected.",[20,1045,1047],{"id":1046},"implementing-axios-onerror-request-and-response","Implementing Axios onError Request and Response",[10,1049,1050],{},"We added the Axios onError request and response console log to our application, which provided us with additional information regarding the issue.",[20,1052,1054],{"id":1053},"investigating-firebase-issues","Investigating Firebase Issues",[10,1056,1057],{},"At this point, we believed that the issue might be related to our Firebase setup. We followed Firebase's debugging steps and continued to investigate the problem.",[20,1059,1061],{"id":1060},"fixing-the-nuxt-proxy-configuration","Fixing the Nuxt Proxy Configuration",[10,1063,1064,1065,1068],{},"While debugging, we discovered that the ",[31,1066,1067],{},"ignoreHeaders"," option was not working in our Nuxt.js setup due to an incorrect proxy configuration. By correcting the configuration, we managed to resolve the issue.",[20,1070,1072],{"id":1071},"final-resolution-and-lessons-learned","Final Resolution and Lessons Learned",[10,1074,1075],{},"After several days of investigation and debugging, Firebase informed us that they had resolved some issues on their end. With the problems fixed, the Google Crawlbot was finally able to access and crawl our website properly. This experience taught us the importance of thoroughly investigating and debugging website issues, as well as the value of patience and persistence.",{"title":79,"searchDepth":155,"depth":155,"links":1077},[1078,1079,1080,1081,1082,1083,1084],{"id":1025,"depth":155,"text":1026},{"id":1032,"depth":155,"text":1033},{"id":1039,"depth":155,"text":1040},{"id":1046,"depth":155,"text":1047},{"id":1053,"depth":155,"text":1054},{"id":1060,"depth":155,"text":1061},{"id":1071,"depth":155,"text":1072},"2020-11-18T19:41:28.088Z","Learn how our team identified and fixed the Google Crawlbot not working issue on our website by investigating logs, using developer tools, and analyzing server configurations.",{},"\u002Fcontent\u002Farticles\u002Ffixed-google-crawlbot-not-working-issue-and-how-we-detected-it",{"title":1020,"description":1086},"content\u002Farticles\u002Ffixed-google-crawlbot-not-working-issue-and-how-we-detected-it","mTjBgeLabddgSGXUthyZ6Omq9kA0X6y7OzfoX_ql6Qw",{"id":1093,"title":1094,"body":1095,"createdAt":1201,"description":1202,"extension":163,"meta":1203,"navigation":165,"path":1204,"seo":1205,"stem":1206,"type":169,"updatedAt":1201,"__hash__":1207},"content\u002Fcontent\u002Farticles\u002Foptimizing-web-vitals-with-awesometechstack.md","Optimizing Web Vitals with AwesomeTechStack",{"type":7,"value":1096,"toc":1194},[1097,1101,1104,1124,1127,1131,1136,1139,1143,1160,1164,1172,1175,1189,1191],[20,1098,1100],{"id":1099},"introduction-to-core-web-vitals","Introduction to Core Web Vitals",[10,1102,1103],{},"Core Web Vitals are a set of metrics defined by Google that focus on three critical aspects of user experience: loading, interactivity, and visual stability. The three main Core Web Vitals are:",[859,1105,1106,1112,1118],{},[620,1107,1108,1111],{},[48,1109,1110],{},"Largest Contentful Paint (LCP):"," Measures the time it takes for the largest visible content to load.",[620,1113,1114,1117],{},[48,1115,1116],{},"First Input Delay (FID):"," Measures the time it takes for a user to interact with a page after it has started loading.",[620,1119,1120,1123],{},[48,1121,1122],{},"Cumulative Layout Shift (CLS):"," Measures the amount of unexpected layout shifts on a page.",[10,1125,1126],{},"These metrics are essential for providing a good user experience and also play a significant role in search engine optimization (SEO).",[20,1128,1130],{"id":1129},"what-is-awesometechstack","What is AwesomeTechStack?",[10,1132,1133,1135],{},[146,1134,705],{"href":148}," is an online tool that allows you to analyze and improve your website's performance and Core Web Vitals. It provides a detailed breakdown of your site's technology stack, as well as an overview of your site's performance, SEO, and user experience.",[10,1137,1138],{},"By using AwesomeTechStack, you can identify areas where your website may be underperforming and make targeted improvements to optimize your Core Web Vitals.",[20,1140,1142],{"id":1141},"how-to-use-awesometechstack","How to use AwesomeTechStack",[617,1144,1145,1151,1154,1157],{},[620,1146,1147,1148,892],{},"Visit the ",[146,1149,1150],{"href":148},"AwesomeTechStack website analyzer",[620,1152,1153],{},"Enter your website's URL in the input field or use our API and let our powerful tool analyze your tech stack and score it.",[620,1155,1156],{},"Review the detailed analysis provided by AwesomeTechStack, including information on your technology stack, Lighthouse scores, and Core Web Vitals.",[620,1158,1159],{},"Identify areas of improvement and implement changes to optimize your website's performance, SEO, and user experience.",[20,1161,1163],{"id":1162},"improving-your-lighthouse-scores","Improving your Lighthouse scores",[10,1165,1166,1171],{},[146,1167,1170],{"href":1168,"rel":1169},"https:\u002F\u002Fdevelopers.google.com\u002Fweb\u002Ftools\u002Flighthouse",[704],"Google Lighthouse"," is an open-source tool that provides insights and recommendations for improving the performance, accessibility, and user experience of your website. Lighthouse scores are an essential part of your website's overall performance evaluation.",[10,1173,1174],{},"To improve your Lighthouse scores:",[617,1176,1177,1180,1183,1186],{},[620,1178,1179],{},"Analyze your website using AwesomeTechStack or Google Lighthouse directly.",[620,1181,1182],{},"Review the recommendations provided by Lighthouse and prioritize the improvements based on their impact on your Core Web Vitals.",[620,1184,1185],{},"Implement the recommended changes to your website's code and configuration.",[620,1187,1188],{},"Re-run the Lighthouse analysis to track your progress and confirm the improvements.",[20,1190,659],{"id":658},[10,1192,1193],{},"Optimizing your website's Core Web Vitals is crucial for providing a better user experience and improving your search engine rankings. AwesomeTechStack is a valuable tool that can help you analyze and optimize your website's performance, making it easier to achieve higher Lighthouse scores and better Core Web Vitals. By following the recommendations provided by AwesomeTechStack and Google Lighthouse, you can ensure your website provides a fast, engaging, and user-friendly experience.",{"title":79,"searchDepth":155,"depth":155,"links":1195},[1196,1197,1198,1199,1200],{"id":1099,"depth":155,"text":1100},{"id":1129,"depth":155,"text":1130},{"id":1141,"depth":155,"text":1142},{"id":1162,"depth":155,"text":1163},{"id":658,"depth":155,"text":659},"2020-10-09T21:41:28.088Z","Learn how to optimize your website's Core Web Vitals using AwesomeTechStack to ensure better performance and user experience. Discover how to analyze and improve your website's Lighthouse scores for better SEO.",{},"\u002Fcontent\u002Farticles\u002Foptimizing-web-vitals-with-awesometechstack",{"title":1094,"description":1202},"content\u002Farticles\u002Foptimizing-web-vitals-with-awesometechstack","PNtfTLjQy_1MHR14Pj-St18FaHH_s3fJRJO4mJ8WTm4",{"id":1209,"title":1210,"body":1211,"createdAt":1565,"description":1566,"extension":163,"meta":1567,"navigation":165,"path":1568,"seo":1569,"stem":1570,"type":169,"updatedAt":1565,"__hash__":1571},"content\u002Fcontent\u002Farticles\u002Fimprove-nuxtjs-service-performance-for-google-cloud-run.md","How to Optimize Nuxt.js v2 for Google Cloud Run",{"type":7,"value":1212,"toc":1560},[1213,1215,1222,1228,1232,1238,1246,1257,1265,1295,1303,1386,1394,1423,1431,1460,1468,1511,1515,1518,1557],[20,1214,275],{"id":274},[10,1216,1217,1218,1221],{},"Google Cloud Run is a serverless platform for deploying and scaling containerized applications. Running a Nuxt.js application on Google Cloud Run offers a cost-effective and scalable solution. However, to achieve the best performance and PageSpeed Insights scores, it's essential to optimize the ",[31,1219,1220],{},"nuxt.config.js"," file in your Nuxt.js application and add the required modules.",[10,1223,1224,1225,1227],{},"In this article, we will discuss the key changes made to the ",[31,1226,1220],{}," file and the necessary modules to optimize a Nuxt.js service for Google Cloud Run.",[20,1229,1231],{"id":1230},"key-changes-to-nuxtconfigjs","Key changes to nuxt.config.js",[10,1233,1234,1235,1237],{},"Here are the critical changes made to the ",[31,1236,1220],{}," file:",[617,1239,1240],{},[620,1241,1242,1245],{},[48,1243,1244],{},"Modern mode",": Enable modern mode only for production builds.",[71,1247,1251],{"className":1248,"code":1249,"language":1250,"meta":79,"style":79},"language-javascript shiki shiki-themes github-light github-dark","modern: 'server'\n","javascript",[31,1252,1253],{"__ignoreMap":79},[301,1254,1255],{"class":303,"line":304},[301,1256,1249],{},[617,1258,1259],{"start":155},[620,1260,1261,1264],{},[48,1262,1263],{},"Render settings",": Configure render settings to improve performance.",[71,1266,1268],{"className":1248,"code":1267,"language":1250,"meta":79,"style":79},"render: {\n  asyncScripts: true,\n  compressor: { threshold: 6 },\n  resourceHints: false,\n},\n",[31,1269,1270,1275,1280,1285,1290],{"__ignoreMap":79},[301,1271,1272],{"class":303,"line":304},[301,1273,1274],{},"render: {\n",[301,1276,1277],{"class":303,"line":155},[301,1278,1279],{},"  asyncScripts: true,\n",[301,1281,1282],{"class":303,"line":315},[301,1283,1284],{},"  compressor: { threshold: 6 },\n",[301,1286,1287],{"class":303,"line":321},[301,1288,1289],{},"  resourceHints: false,\n",[301,1291,1292],{"class":303,"line":327},[301,1293,1294],{},"},\n",[617,1296,1297],{"start":315},[620,1298,1299,1302],{},[48,1300,1301],{},"Build settings",": Customize build settings, extract CSS, and configure PostCSS.",[71,1304,1306],{"className":1248,"code":1305,"language":1250,"meta":79,"style":79},"build: {\n  extractCSS: {\n    ignoreOrder: true,\n  },\n  postcss: {\n    plugins: {\n      'css-byebye': {\n        rulesToRemove: [\n          \u002F.*\\.v-application--is-rtl.*\u002F,\n          ...require('.\u002Fscripts\u002FpurgeUnusedCss'),\n        ],\n      },\n    },\n    order: 'presetEnvAndCssByebyeAndCssnanoLast',\n  },\n},\n",[31,1307,1308,1313,1318,1323,1328,1333,1338,1343,1348,1353,1358,1363,1368,1373,1378,1382],{"__ignoreMap":79},[301,1309,1310],{"class":303,"line":304},[301,1311,1312],{},"build: {\n",[301,1314,1315],{"class":303,"line":155},[301,1316,1317],{},"  extractCSS: {\n",[301,1319,1320],{"class":303,"line":315},[301,1321,1322],{},"    ignoreOrder: true,\n",[301,1324,1325],{"class":303,"line":321},[301,1326,1327],{},"  },\n",[301,1329,1330],{"class":303,"line":327},[301,1331,1332],{},"  postcss: {\n",[301,1334,1335],{"class":303,"line":333},[301,1336,1337],{},"    plugins: {\n",[301,1339,1340],{"class":303,"line":338},[301,1341,1342],{},"      'css-byebye': {\n",[301,1344,1345],{"class":303,"line":344},[301,1346,1347],{},"        rulesToRemove: [\n",[301,1349,1350],{"class":303,"line":528},[301,1351,1352],{},"          \u002F.*\\.v-application--is-rtl.*\u002F,\n",[301,1354,1355],{"class":303,"line":533},[301,1356,1357],{},"          ...require('.\u002Fscripts\u002FpurgeUnusedCss'),\n",[301,1359,1360],{"class":303,"line":539},[301,1361,1362],{},"        ],\n",[301,1364,1365],{"class":303,"line":573},[301,1366,1367],{},"      },\n",[301,1369,1370],{"class":303,"line":578},[301,1371,1372],{},"    },\n",[301,1374,1375],{"class":303,"line":584},[301,1376,1377],{},"    order: 'presetEnvAndCssByebyeAndCssnanoLast',\n",[301,1379,1380],{"class":303,"line":596},[301,1381,1327],{},[301,1383,1384],{"class":303,"line":602},[301,1385,1294],{},[617,1387,1388],{"start":321},[620,1389,1390,1393],{},[48,1391,1392],{},"Optimized Images",": Optimize images only for production builds.",[71,1395,1397],{"className":1248,"code":1396,"language":1250,"meta":79,"style":79},"optimizedImages: {\n  optimizeImages: process.env.NODE_ENV === 'production',\n  optimizeImagesInDev: false,\n  inlineImageLimit: -1,\n},\n",[31,1398,1399,1404,1409,1414,1419],{"__ignoreMap":79},[301,1400,1401],{"class":303,"line":304},[301,1402,1403],{},"optimizedImages: {\n",[301,1405,1406],{"class":303,"line":155},[301,1407,1408],{},"  optimizeImages: process.env.NODE_ENV === 'production',\n",[301,1410,1411],{"class":303,"line":315},[301,1412,1413],{},"  optimizeImagesInDev: false,\n",[301,1415,1416],{"class":303,"line":321},[301,1417,1418],{},"  inlineImageLimit: -1,\n",[301,1420,1421],{"class":303,"line":327},[301,1422,1294],{},[617,1424,1425],{"start":327},[620,1426,1427,1430],{},[48,1428,1429],{},"Router settings",": Disable prefetch links and configure trailing slashes.",[71,1432,1434],{"className":1248,"code":1433,"language":1250,"meta":79,"style":79},"router: {\n  prefetchLinks: false,\n  middleware: ['router'],\n  trailingSlash: true,\n},\n",[31,1435,1436,1441,1446,1451,1456],{"__ignoreMap":79},[301,1437,1438],{"class":303,"line":304},[301,1439,1440],{},"router: {\n",[301,1442,1443],{"class":303,"line":155},[301,1444,1445],{},"  prefetchLinks: false,\n",[301,1447,1448],{"class":303,"line":315},[301,1449,1450],{},"  middleware: ['router'],\n",[301,1452,1453],{"class":303,"line":321},[301,1454,1455],{},"  trailingSlash: true,\n",[301,1457,1458],{"class":303,"line":327},[301,1459,1294],{},[617,1461,1462],{"start":333},[620,1463,1464,1467],{},[48,1465,1466],{},"Polyfills",": Add polyfills for using features like the Intersection Observer.",[71,1469,1471],{"className":1248,"code":1470,"language":1250,"meta":79,"style":79},"polyfill: {\n  features: [\n    {\n      require: 'intersection-observer',\n      detect: () => 'IntersectionObserver' in window,\n    },\n  ],\n},\n",[31,1472,1473,1478,1483,1488,1493,1498,1502,1507],{"__ignoreMap":79},[301,1474,1475],{"class":303,"line":304},[301,1476,1477],{},"polyfill: {\n",[301,1479,1480],{"class":303,"line":155},[301,1481,1482],{},"  features: [\n",[301,1484,1485],{"class":303,"line":315},[301,1486,1487],{},"    {\n",[301,1489,1490],{"class":303,"line":321},[301,1491,1492],{},"      require: 'intersection-observer',\n",[301,1494,1495],{"class":303,"line":327},[301,1496,1497],{},"      detect: () => 'IntersectionObserver' in window,\n",[301,1499,1500],{"class":303,"line":333},[301,1501,1372],{},[301,1503,1504],{"class":303,"line":338},[301,1505,1506],{},"  ],\n",[301,1508,1509],{"class":303,"line":344},[301,1510,1294],{},[20,1512,1514],{"id":1513},"required-modules-for-optimization","Required modules for optimization",[10,1516,1517],{},"Here are the essential modules to add to your nuxt.config.js file for optimization:",[617,1519,1520,1528,1536,1544],{},[620,1521,1522,1527],{},[146,1523,1526],{"href":1524,"rel":1525},"https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002F@nuxtjs\u002Fcomponent-cache",[704],"@nuxtjs\u002Fcomponent-cache",": Caches Vue.js components to improve server-side rendering performance.",[620,1529,1530,1535],{},[146,1531,1534],{"href":1532,"rel":1533},"https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Fnuxt-polyfill",[704],"nuxt-polyfill",": Adds polyfills for features like Intersection Observer, as shown in the polyfill configuration.",[620,1537,1538,1543],{},[146,1539,1542],{"href":1540,"rel":1541},"https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002F@aceforth\u002Fnuxt-optimized-images",[704],"@aceforth\u002Fnuxt-optimized-images",": Optimizes images during build-time to improve performance.",[620,1545,1546,1551,1552,1556],{},[146,1547,1550],{"href":1548,"rel":1549},"https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Fvue-lazy-hydration",[704],"vue-lazy-hydrate",": by ",[146,1553,1555],{"href":1554},"hhttps:\u002F\u002Fmarkus.oberlehner.net\u002F","Markus Oberlehner",". improves the estimated input latency and time to interactive.",[670,1558,1559],{},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":79,"searchDepth":155,"depth":155,"links":1561},[1562,1563,1564],{"id":274,"depth":155,"text":275},{"id":1230,"depth":155,"text":1231},{"id":1513,"depth":155,"text":1514},"2019-12-20T00:00:00.008Z","Optimize your Nuxt.js application for Google Cloud Run and achieve better PageSpeed Insights scores by making key changes to the `nuxt.config.js` file and adding necessary modules.",{},"\u002Fcontent\u002Farticles\u002Fimprove-nuxtjs-service-performance-for-google-cloud-run",{"title":1210,"description":1566},"content\u002Farticles\u002Fimprove-nuxtjs-service-performance-for-google-cloud-run","Pzp-u7PeoufR-DwoQqOVvMqmxydRFMXN6zwi9WFn--c",1785522076033]