[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"footer-settings":3,"main-navigation":153,"footer-homepage":836,"footer-integrations":903,"blog-post-nav-nav":1814,"blog-post-nav-[USE LATEST FEATURED]":1836,"blog-how-improve-pagespeed-score-nuxt-js-website-6-steps":1851},{"id":4,"status":5,"security_section_title":6,"loved_section_title":7,"columns":8,"social_links":113,"policy_links":143},1,"published","Secured & trusted","Loved by users",[9,28,48,74,78],{"id":4,"status":5,"sort":10,"title":11,"column_key":12,"links":13},null,"Localazy","connect",[14,18,23],{"id":15,"status":5,"sort":4,"title":16,"url":17},11,"Book a demo","___LOCALAZY_MEETING_URL___",{"id":19,"status":5,"sort":20,"title":21,"url":22},12,2,"Contact","\u002Fcontact",{"id":24,"status":5,"sort":25,"title":26,"url":27},21,3,"About us","\u002Fabout-us",{"id":20,"status":5,"sort":10,"title":29,"column_key":30,"links":31},"Programs","programs",[32,36,40,44],{"id":4,"status":5,"sort":33,"title":34,"url":35},4,"Partner Program","\u002Fpartnership",{"id":20,"status":5,"sort":37,"title":38,"url":39},5,"Ambassador Program","\u002Fambassador",{"id":25,"status":5,"sort":41,"title":42,"url":43},6,"Startup Program","\u002Ffor\u002Fstartups",{"id":33,"status":5,"sort":45,"title":46,"url":47},7,"Nonprofits","\u002Ffor\u002Fnonprofit",{"id":25,"status":5,"sort":10,"title":49,"column_key":50,"links":51},"Use Cases","use_cases",[52,56,60,64,67,70],{"id":37,"status":5,"sort":53,"title":54,"url":55},8,"Software Localization","\u002Fterm\u002Fsoftware-localization",{"id":41,"status":5,"sort":57,"title":58,"url":59},9,"Machine Translation Services","\u002Ffeatures\u002Fmachine-translation",{"id":45,"status":5,"sort":61,"title":62,"url":63},10,"Translation API","\u002Ffeatures\u002Ftranslation-api",{"id":53,"status":5,"sort":15,"title":65,"url":66},"Crowdsourced Translations","\u002Ffeatures\u002Fshare-tm",{"id":57,"status":5,"sort":19,"title":68,"url":69},"Figma i18n & localization","\u002Ffeatures\u002Ffigma-localization-plugin",{"id":61,"status":5,"sort":71,"title":72,"url":73},13,"Translation as a Service","\u002Fterm\u002Ftranslation-service",{"id":33,"status":5,"sort":10,"title":75,"column_key":76,"links":77},"Integrations","integrations",[],{"id":37,"status":5,"sort":10,"title":79,"column_key":80,"links":81},"Resources","resources",[82,86,90,94,98,102,106,110],{"id":71,"status":5,"sort":83,"title":84,"url":85},14,"Documentation","\u002Fdocs",{"id":83,"status":5,"sort":87,"title":88,"url":89},15,"Dictionary","\u002Fdictionary",{"id":87,"status":5,"sort":91,"title":92,"url":93},16,"Case Studies","\u002Fcase-study",{"id":91,"status":5,"sort":95,"title":96,"url":97},17,"Discussion forum","___DISCUSS_URL___",{"id":95,"status":5,"sort":99,"title":100,"url":101},18,"Localization Blog","\u002Fblog",{"id":99,"status":5,"sort":103,"title":104,"url":105},19,"FAQ","\u002Ffaq",{"id":103,"status":5,"sort":107,"title":108,"url":109},20,"Pricing","\u002Fpricing",{"id":107,"status":5,"sort":24,"title":111,"url":112},"Brand assets","https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Fu\u002F1\u002Ffolders\u002F1tZqsZHBlGelz7A2FwTsiwrs4j3sd9HTk",[114,119,124,129,134,139],{"id":4,"status":5,"sort":10,"platform":115,"icon":116,"url":117,"label":118},"feed","rss","\u002Ffeed.xml","Localazy RSS Feed",{"id":20,"status":5,"sort":10,"platform":120,"icon":121,"url":122,"label":123},"facebook","fb-logo","https:\u002F\u002Fwww.facebook.com\u002Flocalazy\u002F","Localazy facebook",{"id":25,"status":5,"sort":10,"platform":125,"icon":126,"url":127,"label":128},"github","github-logo","https:\u002F\u002Fgithub.com\u002Flocalazy","Localazy GitHub",{"id":33,"status":5,"sort":10,"platform":130,"icon":131,"url":132,"label":133},"x","x-twitter","https:\u002F\u002Fx.com\u002Flocalazy","Localazy X",{"id":37,"status":5,"sort":10,"platform":135,"icon":136,"url":137,"label":138},"linkedin","linkedin-logo","https:\u002F\u002Fwww.linkedin.com\u002Fcompany\u002F37836599\u002F","Localazy LinkedIn",{"id":41,"status":5,"sort":10,"platform":140,"icon":141,"url":97,"label":142},"discourse","discourse-logo","Localazy Discourse",[144,147,150],{"id":4,"status":5,"sort":10,"title":145,"url":146,"action":10},"Privacy policy","\u002Fprivacy-policy",{"id":20,"status":5,"sort":10,"title":148,"url":149,"action":10},"Terms & Conditions","\u002Fterms-and-conditions",{"id":25,"status":5,"sort":10,"title":151,"url":10,"action":152},"Cookies","cookie-consent",[154,347,580,708,831,833],{"id":20,"name":155,"url":10,"url_text":10,"status":5,"groups":156},"Solutions",[157,168,239,274],{"navigation_items_group_id":158},{"id":25,"sort":37,"status":5,"name":159,"render_show_all_url":160,"show_all_url_position":161,"show_favorite_icon":162,"show_all_url":10,"represent_as_tile":160,"items":163},"Featured Article",false,"top",true,[164],{"collection":165,"item":166},"blog_post_navigation_item_type",{"id":33,"status":5,"sort":10,"show_author_img":162,"blog_post_tag":167,"description":10},"nav",{"navigation_items_group_id":169},{"id":37,"sort":4,"status":5,"name":170,"render_show_all_url":160,"show_all_url_position":161,"show_favorite_icon":160,"show_all_url":171,"represent_as_tile":162,"items":172},"Your Role","\u002Froles",[173,185,195,205,216,228],{"collection":174,"item":175},"relation_navigation_item_type",{"id":4,"status":5,"sort":10,"name":176,"item":177},"CMO",[178],{"collection":179,"item":180},"personas",{"id":4,"status":5,"sort":10,"slug":181,"icon":182},"chief-marketing-officers",{"id":183,"title":184},"526097d8-176f-48e5-83d3-2fc4d77061f9","La Mail Bulk",{"collection":174,"item":186},{"id":25,"status":5,"sort":10,"name":187,"item":188},"CTO",[189],{"collection":179,"item":190},{"id":33,"status":5,"sort":10,"slug":191,"icon":192},"chief-technical-officers",{"id":193,"title":194},"f808fdf0-c78b-4294-ba59-fe25f46fe825","La Mechanic",{"collection":174,"item":196},{"id":107,"status":5,"sort":10,"name":197,"item":198},"Product Manager",[199],{"collection":179,"item":200},{"id":99,"status":5,"sort":10,"slug":201,"icon":202},"product-managers",{"id":203,"title":204},"ea39586a-21fc-4b34-ba87-496028e5198f","La Worker",{"collection":174,"item":206},{"id":207,"status":5,"sort":10,"name":208,"item":209},37,"Translator",[210],{"collection":179,"item":211},{"id":107,"status":5,"sort":10,"slug":212,"icon":213},"professional-translators",{"id":214,"title":215},"07945171-d51d-4ca8-96c0-21cde9db258f","La Chat",{"collection":174,"item":217},{"id":218,"status":5,"sort":10,"name":219,"item":220},38,"Developer",[221],{"collection":179,"item":222},{"id":223,"status":5,"sort":10,"slug":224,"icon":225},30,"software-developers",{"id":226,"title":227},"1806e46d-c551-4845-bf42-4407344d229e","La Terminal",{"collection":174,"item":229},{"id":230,"status":5,"sort":10,"name":231,"item":232},27,"Localization Manager",[233],{"collection":179,"item":234},{"id":41,"status":5,"sort":10,"slug":235,"icon":236},"localization-managers",{"id":237,"title":238},"dac69bd1-bf5d-41d0-87d4-dd13e314698a","La Language",{"navigation_items_group_id":240},{"id":57,"sort":25,"status":5,"name":241,"render_show_all_url":160,"show_all_url_position":242,"show_favorite_icon":160,"show_all_url":10,"represent_as_tile":160,"items":243},"Use cases","bottom",[244,250,255,260,264,269],{"collection":245,"item":246},"simple_link_navigation_item_type",{"id":247,"status":5,"sort":10,"url":248,"url_text":249,"show_favorite_icon":160},24,"https:\u002F\u002Flocalazy.com\u002Fuse-cases\u002Fsoftware-localization","Software localization",{"collection":245,"item":251},{"id":252,"status":5,"sort":10,"url":253,"url_text":254,"show_favorite_icon":160},26,"https:\u002F\u002Flocalazy.com\u002Fuse-cases\u002Fmobile-app-localization","Mobile app localization",{"collection":245,"item":256},{"id":257,"status":5,"sort":10,"url":258,"url_text":259,"show_favorite_icon":160},25,"https:\u002F\u002Flocalazy.com\u002Fuse-cases\u002Fwebsite-localization","Website localization",{"collection":245,"item":261},{"id":230,"status":5,"sort":10,"url":262,"url_text":263,"show_favorite_icon":160},"https:\u002F\u002Flocalazy.com\u002Fuse-cases\u002Fdesign-localization","Design localization",{"collection":245,"item":265},{"id":266,"status":5,"sort":10,"url":267,"url_text":268,"show_favorite_icon":160},28,"https:\u002F\u002Flocalazy.com\u002Fuse-cases\u002Fgame-localization","Game localization",{"collection":245,"item":270},{"id":271,"status":5,"sort":10,"url":272,"url_text":273,"show_favorite_icon":160},29,"https:\u002F\u002Flocalazy.com\u002Fuse-cases\u002Fhelp-and-docs-localization","Help & docs localization",{"navigation_items_group_id":275},{"id":53,"sort":20,"status":5,"name":276,"render_show_all_url":160,"show_all_url_position":242,"show_favorite_icon":160,"show_all_url":10,"represent_as_tile":160,"items":277},"Industry",[278,289,300,310,320,329,340],{"collection":174,"item":279},{"id":280,"status":5,"sort":10,"name":281,"item":282},23,"Digital Agencies",[283],{"collection":179,"item":284},{"id":45,"status":5,"sort":10,"slug":285,"icon":286},"digital-agencies",{"id":287,"title":288},"547f5619-b21d-4b29-86f1-8b2200313cde","La Digi Agency",{"collection":174,"item":290},{"id":291,"status":5,"sort":10,"name":292,"item":293},39,"Startups & SaaS",[294],{"collection":179,"item":295},{"id":20,"status":5,"sort":10,"slug":296,"icon":297},"startups",{"id":298,"title":299},"da1516e2-4afc-40a2-bcbf-a8161e2d610d","La Saa S",{"collection":174,"item":301},{"id":20,"status":5,"sort":10,"name":302,"item":303},"E-commerce",[304],{"collection":179,"item":305},{"id":37,"status":5,"sort":10,"slug":306,"icon":307},"e-commerce",{"id":308,"title":309},"a3d09cd2-054f-4bb5-a0a2-d3d207db65df","La Ecommerce",{"collection":174,"item":311},{"id":103,"status":5,"sort":10,"name":312,"item":313},"FinTech Platforms",[314],{"collection":179,"item":315},{"id":230,"status":5,"sort":10,"slug":316,"icon":317},"fintech",{"id":318,"title":319},"147339ba-07d1-4e5e-baad-23d27e60c919","La Money",{"collection":174,"item":321},{"id":247,"status":5,"sort":10,"name":322,"item":323},"Translation Agencies",[324],{"collection":179,"item":325},{"id":247,"status":5,"sort":10,"slug":326,"icon":327},"translation-agencies",{"id":328,"title":238},"15d6fe33-2af8-4d6e-933d-5caa64394511",{"collection":174,"item":330},{"id":331,"status":5,"sort":10,"name":332,"item":333},22,"Travel & Tourism",[334],{"collection":179,"item":335},{"id":25,"status":5,"sort":10,"slug":336,"icon":337},"tourism",{"id":338,"title":339},"23a785e8-0ae5-4c4b-8452-aab1b58182a6","La Travel",{"collection":174,"item":341},{"id":257,"status":5,"sort":10,"name":342,"item":343},"Nonprofit Causes",[344],{"collection":179,"item":345},{"id":266,"status":5,"sort":10,"slug":346,"icon":10},"nonprofit",{"id":37,"name":348,"url":10,"url_text":10,"status":5,"groups":349},"Features",[350,417,474,523],{"navigation_items_group_id":351},{"id":15,"sort":41,"status":5,"name":352,"render_show_all_url":160,"show_all_url_position":161,"show_favorite_icon":160,"show_all_url":10,"represent_as_tile":160,"items":353},"Localization",[354,363,372,380,388,392,400,409],{"collection":174,"item":355},{"id":356,"status":5,"sort":10,"name":357,"item":358},44,"Localization services",[359],{"collection":360,"item":361},"products",{"id":57,"status":5,"slug":362},"continuous-localization-team",{"collection":174,"item":364},{"id":365,"status":5,"sort":10,"name":366,"item":367},45,"Translation management",[368],{"collection":369,"item":370},"term_landing_page",{"id":271,"status":5,"slug":371},"translation-management-system",{"collection":174,"item":373},{"id":374,"status":5,"sort":10,"name":375,"item":376},46,"Context Screenshots",[377],{"collection":360,"item":378},{"id":71,"status":5,"slug":379},"context-screenshots-ocr",{"collection":174,"item":381},{"id":382,"status":5,"sort":10,"name":383,"item":384},47,"Translation Glossary",[385],{"collection":360,"item":386},{"id":95,"status":5,"slug":387},"glossary",{"collection":245,"item":389},{"id":33,"status":5,"sort":10,"url":390,"url_text":391,"show_favorite_icon":160},"\u002Fdocs\u002Fgeneral\u002Freviewing-translations","Quality control",{"collection":174,"item":393},{"id":394,"status":5,"sort":10,"name":395,"item":396},34,"Connected Projects",[397],{"collection":360,"item":398},{"id":4,"status":5,"slug":399},"connected-projects",{"collection":174,"item":401},{"id":402,"status":5,"sort":10,"name":403,"item":404},64,"Plural handling",[405],{"collection":360,"item":406},{"id":407,"status":5,"slug":408},32,"plurals",{"collection":174,"item":410},{"id":411,"status":5,"sort":10,"name":412,"item":413},65,"Style guides",[414],{"collection":360,"item":415},{"id":218,"status":5,"slug":416},"style-guide",{"navigation_items_group_id":418},{"id":19,"sort":45,"status":5,"name":419,"render_show_all_url":160,"show_all_url_position":161,"show_favorite_icon":160,"show_all_url":10,"represent_as_tile":160,"items":420},"Translation",[421,429,437,441,449,457,466],{"collection":174,"item":422},{"id":423,"status":5,"sort":10,"name":424,"item":425},36,"Professional translations",[426],{"collection":369,"item":427},{"id":223,"status":5,"slug":428},"professional-translation-services",{"collection":174,"item":430},{"id":431,"status":5,"sort":10,"name":432,"item":433},48,"Crowdsourced translations",[434],{"collection":360,"item":435},{"id":53,"status":5,"slug":436},"share-tm",{"collection":245,"item":438},{"id":37,"status":5,"sort":10,"url":439,"url_text":440,"show_favorite_icon":160},"\u002Fdocs\u002Fgeneral\u002Ftranslating-strings","Translation interface",{"collection":174,"item":442},{"id":443,"status":5,"sort":10,"name":444,"item":445},55,"Machine translations",[446],{"collection":360,"item":447},{"id":37,"status":5,"slug":448},"machine-translation",{"collection":174,"item":450},{"id":451,"status":5,"sort":10,"name":452,"item":453},60,"Localazy AI translation",[454],{"collection":360,"item":455},{"id":271,"status":5,"slug":456},"localazy-ai",{"collection":174,"item":458},{"id":459,"status":5,"sort":10,"name":460,"item":461},61,"Translation Memory",[462],{"collection":360,"item":463},{"id":464,"status":5,"slug":465},35,"translation-memory",{"collection":174,"item":467},{"id":468,"status":5,"sort":10,"name":469,"item":470},63,"Code & placeholders",[471],{"collection":360,"item":472},{"id":223,"status":5,"slug":473},"code-and-placeholders",{"navigation_items_group_id":475},{"id":71,"sort":53,"status":5,"name":476,"render_show_all_url":160,"show_all_url_position":161,"show_favorite_icon":160,"show_all_url":10,"represent_as_tile":160,"items":477},"Management",[478,482,490,498,507,515,519],{"collection":245,"item":479},{"id":53,"status":5,"sort":10,"url":480,"url_text":481,"show_favorite_icon":160},"\u002Fdocs\u002Fgeneral\u002Fdefining-user-roles","User roles",{"collection":174,"item":483},{"id":484,"status":5,"sort":10,"name":485,"item":486},51,"Duplicity Linking",[487],{"collection":360,"item":488},{"id":103,"status":5,"slug":489},"duplicity-linking",{"collection":174,"item":491},{"id":492,"status":5,"sort":10,"name":493,"item":494},52,"Language Permissions",[495],{"collection":360,"item":496},{"id":24,"status":5,"slug":497},"language-permissions",{"collection":174,"item":499},{"id":500,"status":501,"sort":10,"name":502,"item":503},53,"draft","Automations",[504],{"collection":360,"item":505},{"id":107,"status":5,"slug":506},"automations",{"collection":174,"item":508},{"id":509,"status":5,"sort":10,"name":510,"item":511},58,"Branching",[512],{"collection":360,"item":513},{"id":230,"status":5,"slug":514},"branching",{"collection":245,"item":516},{"id":24,"status":501,"sort":10,"url":517,"url_text":518,"show_favorite_icon":160},"https:\u002F\u002Flocalazy.com\u002Fdocs\u002Fgeneral\u002Fsso-configuration","SSO",{"collection":245,"item":520},{"id":331,"status":501,"sort":10,"url":521,"url_text":522,"show_favorite_icon":160},"https:\u002F\u002Flocalazy.com\u002Fdocs\u002Fgeneral\u002Flanguage-statistics","Reporting",{"navigation_items_group_id":524},{"id":83,"sort":57,"status":5,"name":525,"render_show_all_url":160,"show_all_url_position":161,"show_favorite_icon":160,"show_all_url":10,"represent_as_tile":160,"items":526},"Development",[527,533,541,548,555,563,572],{"collection":174,"item":528},{"id":271,"status":5,"sort":10,"name":62,"item":529},[530],{"collection":360,"item":531},{"id":15,"status":5,"slug":532},"translation-api",{"collection":174,"item":534},{"id":535,"status":5,"sort":10,"name":536,"item":537},33,"Localazy CLI",[538],{"collection":360,"item":539},{"id":45,"status":5,"slug":540},"cli",{"collection":174,"item":542},{"id":407,"status":5,"sort":10,"name":543,"item":544},"Language CDN",[545],{"collection":360,"item":546},{"id":33,"status":5,"slug":547},"language-cdn",{"collection":174,"item":549},{"id":266,"status":5,"sort":10,"name":550,"item":551},"Releases",[552],{"collection":360,"item":553},{"id":41,"status":5,"slug":554},"releases",{"collection":174,"item":556},{"id":557,"status":501,"sort":10,"name":558,"item":559},57,"Format Conversions",[560],{"collection":360,"item":561},{"id":20,"status":5,"slug":562},"format-conversions",{"collection":174,"item":564},{"id":565,"status":5,"sort":10,"name":566,"item":567},59,"Webhooks",[568],{"collection":360,"item":569},{"id":570,"status":5,"slug":571},31,"webhooks",{"collection":174,"item":573},{"id":574,"status":5,"sort":10,"name":575,"item":576},62,"Export Aliases",[577],{"collection":360,"item":578},{"id":535,"status":5,"slug":579},"export-aliases",{"id":33,"name":75,"url":10,"url_text":10,"status":5,"groups":581},[582,698],{"navigation_items_group_id":583},{"id":45,"sort":61,"status":5,"name":584,"render_show_all_url":160,"show_all_url_position":161,"show_favorite_icon":160,"show_all_url":10,"represent_as_tile":160,"items":585},"Most popular",[586],{"collection":174,"item":587},{"id":19,"status":5,"sort":10,"name":75,"item":588},[589,597,604,611,618,624,631,638,645,652,659,668,675,682,690],{"collection":590,"item":591},"platforms",{"id":41,"status":5,"sort":4,"slug":592,"name":593,"icon":594},"android","Android",{"id":595,"title":596},"ff965add-53b0-44ad-b27c-ea4ef641d384","Ic Outline Android",{"collection":590,"item":598},{"id":45,"status":5,"sort":20,"slug":599,"name":600,"icon":601},"ios","iOS",{"id":602,"title":603},"886285d7-816a-4430-b5a5-edfe307b238e","Ios",{"collection":590,"item":605},{"id":535,"status":5,"sort":25,"slug":606,"name":607,"icon":608},"react","React",{"id":609,"title":610},"26757a90-88a3-4a94-b587-9f38614ed3bd","Logos React",{"collection":590,"item":612},{"id":103,"status":5,"sort":33,"slug":613,"name":614,"icon":615},"vuejs","Vue.js",{"id":616,"title":617},"6180b41f-3249-47d3-adcd-50fe1cf11bf1","Vue",{"collection":590,"item":619},{"id":91,"status":5,"sort":37,"slug":620,"name":621,"icon":622},"angular","Angular",{"id":623,"title":621},"2a31a97a-48c5-4531-aa36-41c9dd0bdbef",{"collection":590,"item":625},{"id":4,"status":5,"sort":41,"slug":626,"name":627,"icon":628},"flutter","Flutter",{"id":629,"title":630},"b9f13a11-9328-4a03-86cf-b20de0685606","Logos Flutter",{"collection":590,"item":632},{"id":25,"status":5,"sort":15,"slug":633,"name":634,"icon":635},"typescript","TypeScript",{"id":636,"title":637},"8d1319b5-8a96-4199-8407-00add3418b1f","Logos Typescript Icon",{"collection":590,"item":639},{"id":570,"status":5,"sort":19,"slug":640,"name":641,"icon":642},"javascript","JavaScript",{"id":643,"title":644},"4218d0c9-7e6b-494d-9663-37ceaf93ee8c","Logos Javascript",{"collection":590,"item":646},{"id":19,"status":5,"sort":107,"slug":647,"name":648,"icon":649},"json","JSON",{"id":650,"title":651},"99ac3b7c-dba5-4693-a4f4-1f27a6d7782d","Logos Json",{"collection":590,"item":653},{"id":24,"status":5,"sort":24,"slug":654,"name":655,"icon":656},"xliff","XLIFF",{"id":657,"title":658},"ca424cc8-e8a7-4aef-8dca-ef4a4d1334fc","Format",{"collection":590,"item":660},{"id":661,"status":5,"sort":662,"slug":663,"name":664,"icon":665},72,54,"strapi","Strapi",{"id":666,"title":667},"cde7f1d0-f2e0-4243-929e-a3f8f9146e69","Strapi Logo Purple",{"collection":590,"item":669},{"id":451,"status":5,"sort":443,"slug":670,"name":671,"icon":672},"figma","Figma",{"id":673,"title":674},"813745a4-a77d-4735-93b7-e0dd731b2304","Figma Icon",{"collection":590,"item":676},{"id":484,"status":5,"sort":382,"slug":677,"name":678,"icon":679},"microsoft-excel","Microsoft Excel",{"id":680,"title":681},"7a175955-7b96-4561-939f-a0e1924faa40","Excel",{"collection":590,"item":683},{"id":684,"status":5,"sort":459,"slug":685,"name":686,"icon":687},66,"github-actions","GitHub Actions",{"id":688,"title":689},"da17554f-ac6d-443d-9bac-1f29645ec1c6","Github Icon",{"collection":590,"item":691},{"id":692,"status":5,"sort":693,"slug":694,"name":695,"icon":696},97,999,"webflow","Webflow",{"id":697,"title":695},"ff43a386-52f8-499f-b77c-ab9a30f4a77e",{"navigation_items_group_id":699},{"id":33,"sort":15,"status":5,"name":700,"render_show_all_url":160,"show_all_url_position":161,"show_favorite_icon":160,"show_all_url":10,"represent_as_tile":160,"items":701},"Explore more",[702],{"collection":703,"item":704},"text_link_navigation_item_type",{"id":4,"status":5,"sort":10,"text":705,"url":706,"url_text":707},"Localazy is a technology-agnostic platform supporting 50+ frameworks, file formats & popular tools.","\u002Fintegrations","See all integrations",{"id":4,"name":79,"url":10,"url_text":10,"status":5,"groups":709},[710,734,740],{"navigation_items_group_id":711},{"id":4,"sort":19,"status":5,"name":712,"render_show_all_url":160,"show_all_url_position":161,"show_favorite_icon":160,"show_all_url":10,"represent_as_tile":160,"items":713},"Helpful Links",[714,717,719,723,725,728,730],{"collection":245,"item":715},{"id":71,"status":5,"sort":10,"url":101,"url_text":716,"show_favorite_icon":162},"Localazy Blog",{"collection":245,"item":718},{"id":83,"status":5,"sort":10,"url":85,"url_text":84,"show_favorite_icon":162},{"collection":245,"item":720},{"id":4,"status":5,"sort":10,"url":721,"url_text":722,"show_favorite_icon":160},"https:\u002F\u002Fdiscuss.localazy.com\u002F","Discussion Forum",{"collection":245,"item":724},{"id":19,"status":5,"sort":10,"url":93,"url_text":92,"show_favorite_icon":160},{"collection":245,"item":726},{"id":25,"status":5,"sort":10,"url":35,"url_text":727,"show_favorite_icon":160},"Become a Partner",{"collection":245,"item":729},{"id":87,"status":5,"sort":10,"url":105,"url_text":104,"show_favorite_icon":160},{"collection":245,"item":731},{"id":95,"status":5,"sort":10,"url":732,"url_text":733,"show_favorite_icon":160},"\u002Ftags\u002Frelease-update","Release Updates",{"navigation_items_group_id":735},{"id":20,"sort":83,"status":5,"name":716,"render_show_all_url":162,"show_all_url_position":161,"show_favorite_icon":160,"show_all_url":101,"represent_as_tile":160,"items":736},[737],{"collection":165,"item":738},{"id":25,"status":5,"sort":10,"show_author_img":160,"blog_post_tag":739,"description":10},"[USE LATEST FEATURED]",{"navigation_items_group_id":741},{"id":41,"sort":71,"status":5,"name":84,"render_show_all_url":162,"show_all_url_position":161,"show_favorite_icon":160,"show_all_url":85,"represent_as_tile":160,"items":742},[743,757,769,780,792,802,813,821],{"collection":174,"item":744},{"id":33,"status":5,"sort":10,"name":745,"item":746},"General",[747],{"collection":748,"item":749},"docs_section",{"id":20,"status":5,"sort":4,"slug":750,"name":745,"icon":751,"featured_icon":754},"general",{"id":752,"title":753},"423101f1-308c-42f1-8dfe-53272019e7cb","Global",{"id":755,"title":756},"0f7ca4cb-dc3b-4f62-b476-132ed5c4931f","General Doc",{"collection":174,"item":758},{"id":37,"status":5,"sort":10,"name":759,"item":760},"CLI",[761],{"collection":748,"item":762},{"id":25,"status":5,"sort":20,"slug":540,"name":759,"icon":763,"featured_icon":766},{"id":764,"title":765},"2f7a4573-8265-4d76-8d55-ce0cc79b8983","Cli",{"id":767,"title":768},"3f76ff7b-0e74-4046-bb03-4ca99c3b66d5","Doc Cat Cli",{"collection":174,"item":770},{"id":53,"status":5,"sort":10,"name":771,"item":772},"API",[773],{"collection":748,"item":774},{"id":107,"status":5,"sort":25,"slug":775,"name":771,"icon":776,"featured_icon":777},"api",{"id":764,"title":765},{"id":778,"title":779},"20866781-e69b-4e01-9456-05437487b75c","API Doc",{"collection":174,"item":781},{"id":782,"status":5,"sort":10,"name":783,"item":784},50,"CDN",[785],{"collection":748,"item":786},{"id":252,"status":5,"sort":33,"slug":787,"name":783,"icon":788,"featured_icon":789},"cdn",{"id":752,"title":753},{"id":790,"title":791},"a8ee9cb7-4e02-41f0-b595-eb518c3085b6","Doc Cat Cdn",{"collection":174,"item":793},{"id":41,"status":5,"sort":10,"name":593,"item":794},[795],{"collection":748,"item":796},{"id":4,"status":5,"sort":37,"slug":592,"name":593,"icon":797,"featured_icon":799},{"id":798,"title":593},"fb8329ae-0c0c-4fbc-bcdc-83f2eeda1039",{"id":800,"title":801},"f7c0dec8-5b42-4943-ab3a-e3665723ad6f","Doc Cat Android",{"collection":174,"item":803},{"id":45,"status":5,"sort":10,"name":600,"item":804},[805],{"collection":748,"item":806},{"id":33,"status":5,"sort":41,"slug":599,"name":600,"icon":807,"featured_icon":810},{"id":808,"title":809},"289e136c-55df-4d51-847b-1782a2308ee4","Ios Blue",{"id":811,"title":812},"2968d3f0-14b5-4427-82e7-f1ea2de17846","Doc Cat Ios",{"collection":174,"item":814},{"id":57,"status":5,"sort":10,"name":671,"item":815},[816],{"collection":748,"item":817},{"id":24,"status":5,"sort":45,"slug":670,"name":671,"icon":818,"featured_icon":819},{"id":764,"title":765},{"id":820,"title":671},"f5e66b5b-a439-47f6-af4a-6ad261de2e87",{"collection":174,"item":822},{"id":61,"status":5,"sort":10,"name":664,"item":823},[824],{"collection":748,"item":825},{"id":280,"status":5,"sort":53,"slug":663,"name":664,"icon":826,"featured_icon":828},{"id":827,"title":664},"3b4b03c7-e131-49e6-a014-c8c2c8a2751e",{"id":829,"title":830},"1dd05c76-e517-4aea-a3d8-49cfddb40056","Strapi Doc",{"id":25,"name":108,"url":109,"url_text":108,"status":5,"groups":832},[],{"id":41,"name":16,"url":834,"url_text":16,"status":5,"groups":835},"\u002Fbook-demo",[],{"status":5,"header_badges":837,"footer_badges":855,"footer_secured_badges":861,"slider_badges":873},[838,845,850],{"id":4,"status":5,"sort":10,"link":839,"title":840,"badgeType":841,"badgeName":842,"metadata":10,"image":843},"https:\u002F\u002Fwww.g2.com\u002Fproducts\u002Flocalazy\u002Freviews","Best meets requirements","Other","G2-winter-24-best-meets-requirments",{"id":844},"8d5dd6fd-6995-4c92-8219-a6ed5ba6acdc",{"id":20,"status":5,"sort":10,"link":839,"title":846,"badgeType":841,"badgeName":847,"metadata":10,"image":848},"Best support","G2-winter-24-best-support",{"id":849},"e59dd465-84d9-45c7-987d-dd4048fd6992",{"id":25,"status":5,"sort":10,"link":839,"title":851,"badgeType":841,"badgeName":852,"metadata":10,"image":853},"Easiest admin","G2-winter-24-easiest-admin",{"id":854},"5f12c4c8-bec0-47cf-87b4-a4502e9f1bd2",[856],{"id":19,"status":5,"sort":10,"link":839,"title":857,"badgeType":841,"badgeName":858,"metadata":10,"image":859},"Users love us","Users love us 25",{"id":860},"232416a5-86ba-4be6-85a5-b88802003d53",[862,868],{"id":15,"status":5,"sort":10,"link":863,"title":864,"badgeType":841,"badgeName":865,"metadata":10,"image":866},"https:\u002F\u002Fsprinto.com\u002Fget-iso-27001\u002F","Sprinto ISO 27001","Sprinto ISO 27001 certificate",{"id":867},"c1c6c06c-6caf-4b78-8a7e-9606c395eb61",{"id":71,"status":5,"sort":10,"link":869,"title":870,"badgeType":841,"badgeName":870,"metadata":10,"image":871},"https:\u002F\u002Fwww.aicpa.org\u002Fsoc4so","SOC certificate",{"id":872},"4f4bc0a6-09a0-41df-8295-8f990d96d941",[874,880,884,888,892,896,901],{"id":37,"status":5,"sort":10,"link":839,"title":875,"badgeType":841,"badgeName":876,"metadata":877,"image":878},"Most likely to recommend","a","",{"id":879},"da055731-3f11-4fc7-96f2-c11c0b84c831",{"id":41,"status":5,"sort":10,"link":839,"title":881,"badgeType":841,"badgeName":10,"metadata":10,"image":882},"EMEA High Performer",{"id":883},"586fb488-81f2-41db-a4e8-ef309e50c0e6",{"id":45,"status":5,"sort":10,"link":839,"title":885,"badgeType":841,"badgeName":10,"metadata":10,"image":886},"Ease of Doing Business With",{"id":887},"bfa26865-430e-463d-9886-cb56a8a8ecf6",{"id":53,"status":5,"sort":10,"link":839,"title":889,"badgeType":841,"badgeName":10,"metadata":10,"image":890},"High Performer",{"id":891},"2cc1ba0f-c23a-4c97-ad4a-a655c97466fe",{"id":57,"status":5,"sort":10,"link":839,"title":893,"badgeType":841,"badgeName":10,"metadata":10,"image":894},"Fastest Implementation",{"id":895},"6f297758-1c95-45f4-a6e9-528319897132",{"id":61,"status":5,"sort":10,"link":897,"title":898,"badgeType":841,"badgeName":10,"metadata":10,"image":899},"https:\u002F\u002Fwww.intercert.com\u002Fservices\u002Fgovernance-risk-compliance\u002Fiso-iec-27001","Intercert ISO 27001",{"id":900},"0521a5f1-e1f2-4da6-a2bc-dc92773f2a7b",{"id":15,"status":5,"sort":10,"link":863,"title":864,"badgeType":841,"badgeName":865,"metadata":10,"image":902},{"id":867},[904,1044,1122,1228,1314,1393,1482,1573,1660,1759],{"id":535,"status":5,"created_on":905,"modified_on":906,"name":607,"slug":606,"description":907,"docs_link":908,"priority":10,"has_sdk":160,"sort":25,"highlighted":160,"in_menu":162,"changefreq":10,"support_type":909,"show_in_spa":162,"is_file_format":160,"meta_title":10,"meta_description":10,"featured_on_web":162,"marketing_subtitle":910,"tile_subtitle":911,"tile_description":912,"is_enterprise":160,"is_popular":160,"primary_use_case":10,"hierarchy_handling":10,"best_for":10,"file_extension":10,"format_code_example":10,"format_to_extension":913,"upload_features":914,"icon":915,"meta_image":916,"primary_tag":918,"tags":934,"integration_methods":952,"recommended_methods":1028,"default_integration_method":1029,"faq_categories":1036,"translations":1042,"platforms_id":535},"2022-03-18T08:09:24.000Z","2025-02-26T13:36:08.000Z","Manage your React app translations with Localazy, a continuous localization tool. React i18n done right. ","\u002Fdocs\u002Fcli\u002Fjson-format","JSON format support","CLI support","react-i18next and more","Use Localazy to translate your React projects with your favorite i18n library.",{"json":647},[],{"id":609},{"id":917},"a97492ec-ee8d-429c-bf66-d0fe59b6e5c9",{"id":37,"status":5,"sort":20,"created_on":919,"label":920,"hidden":160,"icon":921,"translations":923},"2022-03-17T12:23:44.000Z","Web apps",{"id":922},"c9e70e4f-8136-432a-8d82-53c3501a9eb4",[924,926,929,932],{"id":37,"languages_code":925,"label":920},"xxa",{"id":365,"languages_code":927,"label":928},"es","Aplicaciones web",{"id":782,"languages_code":930,"label":931},"cs","Webové aplikace",{"id":565,"languages_code":933,"label":920},"en",[935,942],{"id":37,"status":5,"sort":20,"label":920,"hidden":160,"created_on":919,"icon":936,"translations":937},{"id":922},[938,939,940,941],{"id":37,"languages_code":925,"label":920},{"id":365,"languages_code":927,"label":928},{"id":782,"languages_code":930,"label":931},{"id":565,"languages_code":933,"label":920},{"id":53,"status":5,"sort":57,"label":943,"hidden":160,"created_on":944,"icon":10,"translations":945},"Framework","2022-03-17T12:23:45.000Z",[946,947,949,950],{"id":53,"languages_code":925,"label":943},{"id":500,"languages_code":927,"label":948},"Marco",{"id":451,"languages_code":930,"label":943},{"id":951,"languages_code":933,"label":943},67,[953,965,990,1011],{"id":33,"status":5,"sort":41,"label":771,"alternative_label":10,"slug":775,"description":954,"documentation_link":955,"loc_icon":775,"is_official_plugin":160,"is_universal_plugin":160,"universal_plugin_vendor":10,"translations":956},"Translate strings directly or upload them into your Localazy project.","\u002Fdocs\u002Fapi\u002Fintroduction",[957,958,961,963],{"id":33,"languages_code":925,"label":771,"description":954,"slug":775},{"id":959,"languages_code":927,"label":771,"description":960,"slug":775},40,"Utilice la API para exportar traducciones e importar contenido de\u002Fa Localazy mediante programación.",{"id":782,"languages_code":933,"label":771,"description":962,"slug":775},"Choose between translating strings directly or uploading them into Localazy.",{"id":565,"languages_code":930,"label":771,"description":964,"slug":775},"Pomocí rozhraní API můžete programovaně exportovat překlady a importovat obsah z\u002Fdo Localazy.",{"id":25,"status":5,"sort":37,"label":966,"alternative_label":10,"slug":967,"description":968,"documentation_link":969,"loc_icon":970,"is_official_plugin":160,"is_universal_plugin":160,"universal_plugin_vendor":10,"translations":971},"Create source keys online","add-keys-manually","Add source keys via the web interface online and sync them into your project later.","\u002Fdocs\u002Fgeneral\u002Fimporting-localization-files#add-new-keys-in-ui","vpn-key-outline",[972,973,976,977,980,983,984,985],{"id":25,"languages_code":925,"label":966,"description":968,"slug":967},{"id":291,"languages_code":927,"label":974,"description":975,"slug":10},"Cree claves fuente en línea","Añada claves fuente a través de la interfaz web en línea y sincronícelas posteriormente en su proyecto.",{"id":484,"languages_code":933,"label":966,"description":968,"slug":967},{"id":451,"languages_code":930,"label":978,"description":979,"slug":10},"Vytvářejte zdrojové klíče online","Přidejte zdrojové klíče přes webové rozhraní online a synchronizujte je do svého projektu později.",{"id":402,"languages_code":927,"label":981,"description":982,"slug":967},"Cree claves de origen en línea","Añada claves de origen a través de la interfaz web en línea y sincronícelas posteriormente en su proyecto.",{"id":411,"languages_code":933,"label":966,"description":968,"slug":967},{"id":684,"languages_code":930,"label":978,"description":979,"slug":967},{"id":986,"languages_code":987,"label":988,"description":989,"slug":10},88,"de","Erstellen Sie Quellschlüssel online","Fügen Sie Quellschlüssel über die Weboberfläche online hinzu und synchronisieren Sie sie später mit Ihrem Projekt.",{"id":20,"status":5,"sort":33,"label":991,"alternative_label":992,"slug":993,"description":994,"documentation_link":995,"loc_icon":996,"is_official_plugin":160,"is_universal_plugin":160,"universal_plugin_vendor":10,"translations":997},"Direct file upload","File upload","web-upload","Upload your texts and existing translations in any format directly to start quickly.","\u002Fdocs\u002Fgeneral\u002Fimporting-localization-files","file-upload",[998,999,1002,1003,1007],{"id":20,"languages_code":925,"label":991,"description":994,"slug":993},{"id":218,"languages_code":927,"label":1000,"description":1001,"slug":10},"Carga directa de archivos","Cargue sus textos y traducciones existentes en cualquier formato directamente para empezar rápidamente.",{"id":382,"languages_code":933,"label":991,"description":994,"slug":993},{"id":1004,"languages_code":930,"label":1005,"description":1006,"slug":10},56,"Přímé nahrávání souborů","Nahrajte přímo své texty a stávající překlady v libovolném formátu a začněte pracovat ihned.",{"id":1008,"languages_code":987,"label":1009,"description":1010,"slug":10},85,"Direkter Datei-Upload","Laden Sie Ihre Texte und vorhandenen Übersetzungen in einem beliebigen Format direkt hoch, um schnell loszulegen.",{"id":4,"status":5,"sort":25,"label":1012,"alternative_label":759,"slug":540,"description":1013,"documentation_link":1014,"loc_icon":540,"is_official_plugin":160,"is_universal_plugin":160,"universal_plugin_vendor":10,"translations":1015},"Command Line Interface","The best option for developers that want to make localization an automated part of their workflow.","\u002Fdocs\u002Fcli\u002Fthe-basics",[1016,1017,1020,1021,1024],{"id":4,"languages_code":925,"label":1012,"description":1013,"slug":540},{"id":207,"languages_code":927,"label":1018,"description":1019,"slug":540},"Interfaz de Línea de Comandos","La mejor opción para los desarrolladores que deseen hacer de la localización una parte automatizada de su flujo de trabajo.",{"id":374,"languages_code":933,"label":1012,"description":1013,"slug":540},{"id":443,"languages_code":930,"label":1022,"description":1023,"slug":540},"Rozhraní Příkazového Řádku","Nejlepší volba pro vývojáře, kteří chtějí, aby se lokalizace stala automatizovanou součástí jejich pracovních postupů.",{"id":1025,"languages_code":987,"label":1026,"description":1027,"slug":10},87,"Befehlszeilenschnittstelle","Die beste Option für Entwickler, die die Lokalisierung zu einem automatisierten Teil ihres Arbeitsablaufs machen möchten.",[],{"id":4,"status":5,"sort":25,"label":1012,"alternative_label":759,"slug":540,"description":1013,"documentation_link":1014,"loc_icon":540,"is_official_plugin":160,"is_universal_plugin":160,"universal_plugin_vendor":10,"translations":1030},[1031,1032,1033,1034,1035],{"id":4,"languages_code":925,"label":1012,"description":1013,"slug":540},{"id":207,"languages_code":927,"label":1018,"description":1019,"slug":540},{"id":374,"languages_code":933,"label":1012,"description":1013,"slug":540},{"id":443,"languages_code":930,"label":1022,"description":1023,"slug":540},{"id":1025,"languages_code":987,"label":1026,"description":1027,"slug":10},[1037],{"id":1038,"status":5,"created_on":1039,"sort":10,"slug":1040,"label":1041,"on_faq_index":10},76,"2025-02-26T12:44:29.000Z","front-end-common","Front-end Common",[1043],{"languages_code":925,"name":607,"slug":606,"description":907,"support_type":909,"meta_title":10,"meta_description":10,"marketing_subtitle":910,"tile_subtitle":911,"tile_description":912,"id":535,"platforms_id":535,"docs_link":908},{"id":103,"status":5,"created_on":905,"modified_on":1045,"name":614,"slug":613,"description":1046,"docs_link":908,"priority":10,"has_sdk":160,"sort":33,"highlighted":160,"in_menu":162,"changefreq":10,"support_type":909,"show_in_spa":162,"is_file_format":160,"meta_title":10,"meta_description":10,"featured_on_web":162,"marketing_subtitle":910,"tile_subtitle":1047,"tile_description":1048,"is_enterprise":160,"is_popular":160,"primary_use_case":10,"hierarchy_handling":10,"best_for":10,"file_extension":10,"format_code_example":10,"format_to_extension":1049,"upload_features":1050,"icon":1051,"meta_image":1052,"primary_tag":1054,"tags":1061,"integration_methods":1075,"recommended_methods":1106,"default_integration_method":1107,"faq_categories":1114,"translations":1120,"platforms_id":103},"2025-02-26T13:35:41.000Z","Online Vue.js project localization tool for your translation management. Enjoy true continuous localization with Localazy & translate your JSON files automatically.","Vue.js & JSON","Enjoy true continuous localization with Localazy & translate your Vue projects automatically.",{"json":647},[],{"id":616},{"id":1053},"8171b836-d6b8-4354-8db3-34ccd384970d",{"id":37,"status":5,"sort":20,"created_on":919,"label":920,"hidden":160,"icon":1055,"translations":1056},{"id":922},[1057,1058,1059,1060],{"id":37,"languages_code":925,"label":920},{"id":365,"languages_code":927,"label":928},{"id":782,"languages_code":930,"label":931},{"id":565,"languages_code":933,"label":920},[1062,1069],{"id":37,"status":5,"sort":20,"label":920,"hidden":160,"created_on":919,"icon":1063,"translations":1064},{"id":922},[1065,1066,1067,1068],{"id":37,"languages_code":925,"label":920},{"id":365,"languages_code":927,"label":928},{"id":782,"languages_code":930,"label":931},{"id":565,"languages_code":933,"label":920},{"id":53,"status":5,"sort":57,"label":943,"hidden":160,"created_on":944,"icon":10,"translations":1070},[1071,1072,1073,1074],{"id":53,"languages_code":925,"label":943},{"id":500,"languages_code":927,"label":948},{"id":451,"languages_code":930,"label":943},{"id":951,"languages_code":933,"label":943},[1076,1082,1092,1099],{"id":33,"status":5,"sort":41,"label":771,"alternative_label":10,"slug":775,"description":954,"documentation_link":955,"loc_icon":775,"is_official_plugin":160,"is_universal_plugin":160,"universal_plugin_vendor":10,"translations":1077},[1078,1079,1080,1081],{"id":33,"languages_code":925,"label":771,"description":954,"slug":775},{"id":959,"languages_code":927,"label":771,"description":960,"slug":775},{"id":782,"languages_code":933,"label":771,"description":962,"slug":775},{"id":565,"languages_code":930,"label":771,"description":964,"slug":775},{"id":25,"status":5,"sort":37,"label":966,"alternative_label":10,"slug":967,"description":968,"documentation_link":969,"loc_icon":970,"is_official_plugin":160,"is_universal_plugin":160,"universal_plugin_vendor":10,"translations":1083},[1084,1085,1086,1087,1088,1089,1090,1091],{"id":25,"languages_code":925,"label":966,"description":968,"slug":967},{"id":291,"languages_code":927,"label":974,"description":975,"slug":10},{"id":484,"languages_code":933,"label":966,"description":968,"slug":967},{"id":451,"languages_code":930,"label":978,"description":979,"slug":10},{"id":402,"languages_code":927,"label":981,"description":982,"slug":967},{"id":411,"languages_code":933,"label":966,"description":968,"slug":967},{"id":684,"languages_code":930,"label":978,"description":979,"slug":967},{"id":986,"languages_code":987,"label":988,"description":989,"slug":10},{"id":20,"status":5,"sort":33,"label":991,"alternative_label":992,"slug":993,"description":994,"documentation_link":995,"loc_icon":996,"is_official_plugin":160,"is_universal_plugin":160,"universal_plugin_vendor":10,"translations":1093},[1094,1095,1096,1097,1098],{"id":20,"languages_code":925,"label":991,"description":994,"slug":993},{"id":218,"languages_code":927,"label":1000,"description":1001,"slug":10},{"id":382,"languages_code":933,"label":991,"description":994,"slug":993},{"id":1004,"languages_code":930,"label":1005,"description":1006,"slug":10},{"id":1008,"languages_code":987,"label":1009,"description":1010,"slug":10},{"id":4,"status":5,"sort":25,"label":1012,"alternative_label":759,"slug":540,"description":1013,"documentation_link":1014,"loc_icon":540,"is_official_plugin":160,"is_universal_plugin":160,"universal_plugin_vendor":10,"translations":1100},[1101,1102,1103,1104,1105],{"id":4,"languages_code":925,"label":1012,"description":1013,"slug":540},{"id":207,"languages_code":927,"label":1018,"description":1019,"slug":540},{"id":374,"languages_code":933,"label":1012,"description":1013,"slug":540},{"id":443,"languages_code":930,"label":1022,"description":1023,"slug":540},{"id":1025,"languages_code":987,"label":1026,"description":1027,"slug":10},[],{"id":4,"status":5,"sort":25,"label":1012,"alternative_label":759,"slug":540,"description":1013,"documentation_link":1014,"loc_icon":540,"is_official_plugin":160,"is_universal_plugin":160,"universal_plugin_vendor":10,"translations":1108},[1109,1110,1111,1112,1113],{"id":4,"languages_code":925,"label":1012,"description":1013,"slug":540},{"id":207,"languages_code":927,"label":1018,"description":1019,"slug":540},{"id":374,"languages_code":933,"label":1012,"description":1013,"slug":540},{"id":443,"languages_code":930,"label":1022,"description":1023,"slug":540},{"id":1025,"languages_code":987,"label":1026,"description":1027,"slug":10},[1115,1119],{"id":1004,"status":5,"created_on":1116,"sort":10,"slug":1117,"label":1118,"on_faq_index":10},"2023-03-01T11:21:41.000Z","vue-localization","Vue.js Localization",{"id":1038,"status":5,"created_on":1039,"sort":10,"slug":1040,"label":1041,"on_faq_index":10},[1121],{"languages_code":925,"name":614,"slug":613,"description":1046,"support_type":909,"meta_title":10,"meta_description":10,"marketing_subtitle":910,"tile_subtitle":1047,"tile_description":1048,"id":103,"platforms_id":103,"docs_link":908},{"id":4,"status":5,"created_on":905,"modified_on":1123,"name":627,"slug":626,"description":1124,"docs_link":1125,"priority":10,"has_sdk":160,"sort":41,"highlighted":160,"in_menu":162,"changefreq":10,"support_type":1126,"show_in_spa":162,"is_file_format":160,"meta_title":10,"meta_description":10,"featured_on_web":160,"marketing_subtitle":910,"tile_subtitle":1126,"tile_description":1127,"is_enterprise":160,"is_popular":160,"primary_use_case":1128,"hierarchy_handling":1129,"best_for":1130,"file_extension":1131,"format_code_example":1132,"format_to_extension":1133,"upload_features":1135,"icon":1136,"meta_image":1137,"primary_tag":1139,"tags":1150,"integration_methods":1186,"recommended_methods":1217,"default_integration_method":1218,"faq_categories":1225,"translations":1226,"platforms_id":4},"2025-07-03T14:21:42.000Z","Learn how to use Localazy CLI for localization of Flutter app. Flutter’s ARB format is fully supported including arrays, plurals, and selected context information. No extra configuration is necessary, but you can enable certain features if you want to.","\u002Fdocs\u002Fcli\u002Fflutter-format","ARB format support","Use the Localazy CLI for localization of Flutter projects. Flutter’s ARB format is fully supported.","Supports metadata like placeholders","JSON-like key-value","Flutter apps",".arb","```\n{\n  \"localazy_message\": \"Go international, today. With Localazy.\"\n}\n```",{"arb":1134},"arb",[],{"id":629},{"id":1138},"c2674666-4371-4aa4-9a65-438c7363fafe",{"id":41,"status":5,"sort":53,"created_on":944,"label":1140,"hidden":160,"icon":1141,"translations":1143},"Mobile apps",{"id":1142},"c9c7e1f5-8b59-4016-ae0c-6fba9469cd55",[1144,1145,1147,1149],{"id":41,"languages_code":925,"label":1140},{"id":374,"languages_code":927,"label":1146},"Aplicaciones móviles",{"id":443,"languages_code":930,"label":1148},"Mobilní aplikace",{"id":411,"languages_code":933,"label":1140},[1151,1162,1169,1176],{"id":45,"status":5,"sort":103,"label":1152,"hidden":160,"created_on":944,"icon":1153,"translations":1155},"Desktop & Games",{"id":1154},"65b04533-5b4c-430c-b8a4-ecce84754200",[1156,1157,1159,1161],{"id":45,"languages_code":925,"label":1152},{"id":382,"languages_code":927,"label":1158},"Escritorio y Juegos",{"id":1004,"languages_code":930,"label":1160},"Stolní počítače & Hry",{"id":684,"languages_code":933,"label":1152},{"id":37,"status":5,"sort":20,"label":920,"hidden":160,"created_on":919,"icon":1163,"translations":1164},{"id":922},[1165,1166,1167,1168],{"id":37,"languages_code":925,"label":920},{"id":365,"languages_code":927,"label":928},{"id":782,"languages_code":930,"label":931},{"id":565,"languages_code":933,"label":920},{"id":41,"status":5,"sort":53,"label":1140,"hidden":160,"created_on":944,"icon":1170,"translations":1171},{"id":1142},[1172,1173,1174,1175],{"id":41,"languages_code":925,"label":1140},{"id":374,"languages_code":927,"label":1146},{"id":443,"languages_code":930,"label":1148},{"id":411,"languages_code":933,"label":1140},{"id":223,"status":5,"sort":407,"label":1177,"hidden":162,"created_on":944,"icon":10,"translations":1178},"ARB",[1179,1180,1182,1184],{"id":223,"languages_code":925,"label":1177},{"id":1181,"languages_code":927,"label":1177},120,{"id":1183,"languages_code":930,"label":1177},125,{"id":1185,"languages_code":933,"label":1177},130,[1187,1193,1203,1210],{"id":33,"status":5,"sort":41,"label":771,"alternative_label":10,"slug":775,"description":954,"documentation_link":955,"loc_icon":775,"is_official_plugin":160,"is_universal_plugin":160,"universal_plugin_vendor":10,"translations":1188},[1189,1190,1191,1192],{"id":33,"languages_code":925,"label":771,"description":954,"slug":775},{"id":959,"languages_code":927,"label":771,"description":960,"slug":775},{"id":782,"languages_code":933,"label":771,"description":962,"slug":775},{"id":565,"languages_code":930,"label":771,"description":964,"slug":775},{"id":25,"status":5,"sort":37,"label":966,"alternative_label":10,"slug":967,"description":968,"documentation_link":969,"loc_icon":970,"is_official_plugin":160,"is_universal_plugin":160,"universal_plugin_vendor":10,"translations":1194},[1195,1196,1197,1198,1199,1200,1201,1202],{"id":25,"languages_code":925,"label":966,"description":968,"slug":967},{"id":291,"languages_code":927,"label":974,"description":975,"slug":10},{"id":484,"languages_code":933,"label":966,"description":968,"slug":967},{"id":451,"languages_code":930,"label":978,"description":979,"slug":10},{"id":402,"languages_code":927,"label":981,"description":982,"slug":967},{"id":411,"languages_code":933,"label":966,"description":968,"slug":967},{"id":684,"languages_code":930,"label":978,"description":979,"slug":967},{"id":986,"languages_code":987,"label":988,"description":989,"slug":10},{"id":20,"status":5,"sort":33,"label":991,"alternative_label":992,"slug":993,"description":994,"documentation_link":995,"loc_icon":996,"is_official_plugin":160,"is_universal_plugin":160,"universal_plugin_vendor":10,"translations":1204},[1205,1206,1207,1208,1209],{"id":20,"languages_code":925,"label":991,"description":994,"slug":993},{"id":218,"languages_code":927,"label":1000,"description":1001,"slug":10},{"id":382,"languages_code":933,"label":991,"description":994,"slug":993},{"id":1004,"languages_code":930,"label":1005,"description":1006,"slug":10},{"id":1008,"languages_code":987,"label":1009,"description":1010,"slug":10},{"id":4,"status":5,"sort":25,"label":1012,"alternative_label":759,"slug":540,"description":1013,"documentation_link":1014,"loc_icon":540,"is_official_plugin":160,"is_universal_plugin":160,"universal_plugin_vendor":10,"translations":1211},[1212,1213,1214,1215,1216],{"id":4,"languages_code":925,"label":1012,"description":1013,"slug":540},{"id":207,"languages_code":927,"label":1018,"description":1019,"slug":540},{"id":374,"languages_code":933,"label":1012,"description":1013,"slug":540},{"id":443,"languages_code":930,"label":1022,"description":1023,"slug":540},{"id":1025,"languages_code":987,"label":1026,"description":1027,"slug":10},[],{"id":4,"status":5,"sort":25,"label":1012,"alternative_label":759,"slug":540,"description":1013,"documentation_link":1014,"loc_icon":540,"is_official_plugin":160,"is_universal_plugin":160,"universal_plugin_vendor":10,"translations":1219},[1220,1221,1222,1223,1224],{"id":4,"languages_code":925,"label":1012,"description":1013,"slug":540},{"id":207,"languages_code":927,"label":1018,"description":1019,"slug":540},{"id":374,"languages_code":933,"label":1012,"description":1013,"slug":540},{"id":443,"languages_code":930,"label":1022,"description":1023,"slug":540},{"id":1025,"languages_code":987,"label":1026,"description":1027,"slug":10},[],[1227],{"languages_code":925,"name":627,"slug":626,"description":1124,"support_type":1126,"meta_title":10,"meta_description":10,"marketing_subtitle":910,"tile_subtitle":1126,"tile_description":1127,"id":4,"platforms_id":4,"docs_link":1125},{"id":570,"status":5,"created_on":1229,"modified_on":1230,"name":641,"slug":640,"description":1231,"docs_link":1232,"priority":10,"has_sdk":160,"sort":19,"highlighted":160,"in_menu":162,"changefreq":10,"support_type":1233,"show_in_spa":162,"is_file_format":160,"meta_title":10,"meta_description":10,"featured_on_web":162,"marketing_subtitle":910,"tile_subtitle":1233,"tile_description":1234,"is_enterprise":160,"is_popular":160,"primary_use_case":10,"hierarchy_handling":10,"best_for":10,"file_extension":10,"format_code_example":10,"format_to_extension":1235,"upload_features":1237,"icon":1238,"meta_image":1239,"primary_tag":1241,"tags":1254,"integration_methods":1269,"recommended_methods":1300,"default_integration_method":1301,"faq_categories":1308,"translations":1312,"platforms_id":570},"2022-03-18T08:09:25.000Z","2024-07-17T07:43:22.000Z","Localize your app with JavaScript localizations and Localazy CLI.\nUpload JavaScript files with strings to Localazy and manage your translations easily. Download translated files back.","\u002Fdocs\u002Fcli\u002Fjavascript-format","JS file support","Translating JS files is easy as a pie with Localazy!",{"js":1236},"js",[],{"id":643},{"id":1240},"2c6699eb-1d80-4772-8268-5597dbcead8c",{"id":61,"status":5,"sort":61,"created_on":944,"label":1242,"hidden":160,"icon":1243,"translations":1245},"Programming Languages",{"id":1244},"8c5836bb-1fbe-49c5-9330-8f931838c457",[1246,1247,1249,1252],{"id":61,"languages_code":925,"label":1242},{"id":468,"languages_code":927,"label":1248},"Lenguajes de Programación",{"id":1250,"languages_code":930,"label":1251},68,"Programovací Jazyky",{"id":1253,"languages_code":933,"label":1242},70,[1255,1262],{"id":37,"status":5,"sort":20,"label":920,"hidden":160,"created_on":919,"icon":1256,"translations":1257},{"id":922},[1258,1259,1260,1261],{"id":37,"languages_code":925,"label":920},{"id":365,"languages_code":927,"label":928},{"id":782,"languages_code":930,"label":931},{"id":565,"languages_code":933,"label":920},{"id":61,"status":5,"sort":61,"label":1242,"hidden":160,"created_on":944,"icon":1263,"translations":1264},{"id":1244},[1265,1266,1267,1268],{"id":61,"languages_code":925,"label":1242},{"id":468,"languages_code":927,"label":1248},{"id":1250,"languages_code":930,"label":1251},{"id":1253,"languages_code":933,"label":1242},[1270,1276,1286,1293],{"id":33,"status":5,"sort":41,"label":771,"alternative_label":10,"slug":775,"description":954,"documentation_link":955,"loc_icon":775,"is_official_plugin":160,"is_universal_plugin":160,"universal_plugin_vendor":10,"translations":1271},[1272,1273,1274,1275],{"id":33,"languages_code":925,"label":771,"description":954,"slug":775},{"id":959,"languages_code":927,"label":771,"description":960,"slug":775},{"id":782,"languages_code":933,"label":771,"description":962,"slug":775},{"id":565,"languages_code":930,"label":771,"description":964,"slug":775},{"id":25,"status":5,"sort":37,"label":966,"alternative_label":10,"slug":967,"description":968,"documentation_link":969,"loc_icon":970,"is_official_plugin":160,"is_universal_plugin":160,"universal_plugin_vendor":10,"translations":1277},[1278,1279,1280,1281,1282,1283,1284,1285],{"id":25,"languages_code":925,"label":966,"description":968,"slug":967},{"id":291,"languages_code":927,"label":974,"description":975,"slug":10},{"id":484,"languages_code":933,"label":966,"description":968,"slug":967},{"id":451,"languages_code":930,"label":978,"description":979,"slug":10},{"id":402,"languages_code":927,"label":981,"description":982,"slug":967},{"id":411,"languages_code":933,"label":966,"description":968,"slug":967},{"id":684,"languages_code":930,"label":978,"description":979,"slug":967},{"id":986,"languages_code":987,"label":988,"description":989,"slug":10},{"id":20,"status":5,"sort":33,"label":991,"alternative_label":992,"slug":993,"description":994,"documentation_link":995,"loc_icon":996,"is_official_plugin":160,"is_universal_plugin":160,"universal_plugin_vendor":10,"translations":1287},[1288,1289,1290,1291,1292],{"id":20,"languages_code":925,"label":991,"description":994,"slug":993},{"id":218,"languages_code":927,"label":1000,"description":1001,"slug":10},{"id":382,"languages_code":933,"label":991,"description":994,"slug":993},{"id":1004,"languages_code":930,"label":1005,"description":1006,"slug":10},{"id":1008,"languages_code":987,"label":1009,"description":1010,"slug":10},{"id":4,"status":5,"sort":25,"label":1012,"alternative_label":759,"slug":540,"description":1013,"documentation_link":1014,"loc_icon":540,"is_official_plugin":160,"is_universal_plugin":160,"universal_plugin_vendor":10,"translations":1294},[1295,1296,1297,1298,1299],{"id":4,"languages_code":925,"label":1012,"description":1013,"slug":540},{"id":207,"languages_code":927,"label":1018,"description":1019,"slug":540},{"id":374,"languages_code":933,"label":1012,"description":1013,"slug":540},{"id":443,"languages_code":930,"label":1022,"description":1023,"slug":540},{"id":1025,"languages_code":987,"label":1026,"description":1027,"slug":10},[],{"id":4,"status":5,"sort":25,"label":1012,"alternative_label":759,"slug":540,"description":1013,"documentation_link":1014,"loc_icon":540,"is_official_plugin":160,"is_universal_plugin":160,"universal_plugin_vendor":10,"translations":1302},[1303,1304,1305,1306,1307],{"id":4,"languages_code":925,"label":1012,"description":1013,"slug":540},{"id":207,"languages_code":927,"label":1018,"description":1019,"slug":540},{"id":374,"languages_code":933,"label":1012,"description":1013,"slug":540},{"id":443,"languages_code":930,"label":1022,"description":1023,"slug":540},{"id":1025,"languages_code":987,"label":1026,"description":1027,"slug":10},[1309],{"id":464,"status":5,"created_on":1310,"sort":10,"slug":1311,"label":641,"on_faq_index":160},"2022-06-10T09:49:33.000Z","javascript-i18n-localization",[1313],{"languages_code":925,"name":641,"slug":640,"description":1231,"support_type":1233,"meta_title":10,"meta_description":10,"marketing_subtitle":910,"tile_subtitle":1233,"tile_description":1234,"id":570,"platforms_id":570,"docs_link":1232},{"id":19,"status":5,"created_on":1229,"modified_on":1315,"name":648,"slug":647,"description":1316,"docs_link":908,"priority":10,"has_sdk":160,"sort":107,"highlighted":160,"in_menu":162,"changefreq":10,"support_type":1317,"show_in_spa":162,"is_file_format":162,"meta_title":10,"meta_description":10,"featured_on_web":162,"marketing_subtitle":910,"tile_subtitle":1318,"tile_description":1319,"is_enterprise":160,"is_popular":162,"primary_use_case":1320,"hierarchy_handling":1321,"best_for":1322,"file_extension":1323,"format_code_example":1324,"format_to_extension":1325,"upload_features":1326,"icon":1327,"meta_image":1328,"primary_tag":1330,"tags":1341,"integration_methods":1349,"recommended_methods":1380,"default_integration_method":1381,"faq_categories":1388,"translations":1391,"platforms_id":19},"2025-10-14T11:22:29.000Z","Online JSON translator you will love. Comfortable JSON language files editor with powerful CLI under your fingers for continuous localization.","Advanced format support","{Objectively the best}","Translate any JSON files with Localazy, with the best in class plural and array support.","Used for structured data storage and APIs","Uses key-value pairs","Web & mobile apps, APIs",".json","```\n{\n  \"parent\": {\n    \"child\": {\n      \"another_nested_level\": \"All is supported.\"\n    }\n  }\n}\n```",{"json":647},[],{"id":650},{"id":1329},"8d614c20-667e-4bee-a64d-7d7ce9c0ee0a",{"id":33,"status":5,"sort":37,"created_on":944,"label":1331,"hidden":160,"icon":1332,"translations":1334},"File formats",{"id":1333},"ab7c8f89-dcce-45ab-9e21-8605aef289c3",[1335,1336,1338,1340],{"id":33,"languages_code":925,"label":1331},{"id":356,"languages_code":927,"label":1337},"Formatos de archivo",{"id":484,"languages_code":930,"label":1339},"Formáty souborů",{"id":574,"languages_code":933,"label":1331},[1342],{"id":33,"status":5,"sort":37,"label":1331,"hidden":160,"created_on":944,"icon":1343,"translations":1344},{"id":1333},[1345,1346,1347,1348],{"id":33,"languages_code":925,"label":1331},{"id":356,"languages_code":927,"label":1337},{"id":484,"languages_code":930,"label":1339},{"id":574,"languages_code":933,"label":1331},[1350,1356,1366,1373],{"id":33,"status":5,"sort":41,"label":771,"alternative_label":10,"slug":775,"description":954,"documentation_link":955,"loc_icon":775,"is_official_plugin":160,"is_universal_plugin":160,"universal_plugin_vendor":10,"translations":1351},[1352,1353,1354,1355],{"id":33,"languages_code":925,"label":771,"description":954,"slug":775},{"id":959,"languages_code":927,"label":771,"description":960,"slug":775},{"id":782,"languages_code":933,"label":771,"description":962,"slug":775},{"id":565,"languages_code":930,"label":771,"description":964,"slug":775},{"id":25,"status":5,"sort":37,"label":966,"alternative_label":10,"slug":967,"description":968,"documentation_link":969,"loc_icon":970,"is_official_plugin":160,"is_universal_plugin":160,"universal_plugin_vendor":10,"translations":1357},[1358,1359,1360,1361,1362,1363,1364,1365],{"id":25,"languages_code":925,"label":966,"description":968,"slug":967},{"id":291,"languages_code":927,"label":974,"description":975,"slug":10},{"id":484,"languages_code":933,"label":966,"description":968,"slug":967},{"id":451,"languages_code":930,"label":978,"description":979,"slug":10},{"id":402,"languages_code":927,"label":981,"description":982,"slug":967},{"id":411,"languages_code":933,"label":966,"description":968,"slug":967},{"id":684,"languages_code":930,"label":978,"description":979,"slug":967},{"id":986,"languages_code":987,"label":988,"description":989,"slug":10},{"id":20,"status":5,"sort":33,"label":991,"alternative_label":992,"slug":993,"description":994,"documentation_link":995,"loc_icon":996,"is_official_plugin":160,"is_universal_plugin":160,"universal_plugin_vendor":10,"translations":1367},[1368,1369,1370,1371,1372],{"id":20,"languages_code":925,"label":991,"description":994,"slug":993},{"id":218,"languages_code":927,"label":1000,"description":1001,"slug":10},{"id":382,"languages_code":933,"label":991,"description":994,"slug":993},{"id":1004,"languages_code":930,"label":1005,"description":1006,"slug":10},{"id":1008,"languages_code":987,"label":1009,"description":1010,"slug":10},{"id":4,"status":5,"sort":25,"label":1012,"alternative_label":759,"slug":540,"description":1013,"documentation_link":1014,"loc_icon":540,"is_official_plugin":160,"is_universal_plugin":160,"universal_plugin_vendor":10,"translations":1374},[1375,1376,1377,1378,1379],{"id":4,"languages_code":925,"label":1012,"description":1013,"slug":540},{"id":207,"languages_code":927,"label":1018,"description":1019,"slug":540},{"id":374,"languages_code":933,"label":1012,"description":1013,"slug":540},{"id":443,"languages_code":930,"label":1022,"description":1023,"slug":540},{"id":1025,"languages_code":987,"label":1026,"description":1027,"slug":10},[],{"id":4,"status":5,"sort":25,"label":1012,"alternative_label":759,"slug":540,"description":1013,"documentation_link":1014,"loc_icon":540,"is_official_plugin":160,"is_universal_plugin":160,"universal_plugin_vendor":10,"translations":1382},[1383,1384,1385,1386,1387],{"id":4,"languages_code":925,"label":1012,"description":1013,"slug":540},{"id":207,"languages_code":927,"label":1018,"description":1019,"slug":540},{"id":374,"languages_code":933,"label":1012,"description":1013,"slug":540},{"id":443,"languages_code":930,"label":1022,"description":1023,"slug":540},{"id":1025,"languages_code":987,"label":1026,"description":1027,"slug":10},[1389],{"id":423,"status":5,"created_on":1390,"sort":10,"slug":647,"label":648,"on_faq_index":160},"2022-06-10T10:49:07.000Z",[1392],{"languages_code":925,"name":648,"slug":647,"description":1316,"support_type":1317,"meta_title":10,"meta_description":10,"marketing_subtitle":910,"tile_subtitle":1318,"tile_description":1319,"id":19,"platforms_id":19,"docs_link":908},{"id":24,"status":5,"created_on":1229,"modified_on":1394,"name":655,"slug":654,"description":1395,"docs_link":1396,"priority":10,"has_sdk":160,"sort":24,"highlighted":160,"in_menu":162,"changefreq":10,"support_type":1397,"show_in_spa":160,"is_file_format":162,"meta_title":10,"meta_description":10,"featured_on_web":162,"marketing_subtitle":910,"tile_subtitle":1398,"tile_description":1399,"is_enterprise":160,"is_popular":162,"primary_use_case":1400,"hierarchy_handling":1401,"best_for":1402,"file_extension":1403,"format_code_example":1404,"format_to_extension":1405,"upload_features":1407,"icon":1408,"meta_image":1409,"primary_tag":1411,"tags":1418,"integration_methods":1440,"recommended_methods":1471,"default_integration_method":1472,"faq_categories":1479,"translations":1480,"platforms_id":24},"2025-07-03T14:28:31.000Z","XLIFF is meant for localization. Enjoy Localazy - an online XLIFF editor for your translation management. Integrate your XLIFF files with Localazy to achieve true continuous localization and translate XLIFF files on autopilot.","\u002Fdocs\u002Fcli\u002Fxliff-12-format","File format support","Meant for localization","XLIFF stands for XML Localization Interchange File Format - and Localazy is the best way to manage XLIFF files.","Used in translation pipelines","XML-based exchange format","Translation & software",".xliff","```\n\u003Ctrans-unit id=\"localazy_message\">\n    \u003Csource>Go international, today. With Localazy.\u003C\u002Fsource>\n\u003C\u002Ftrans-unit>\n```",{"xliff":1406},"xlf",[],{"id":657},{"id":1410},"889970a6-cce8-4055-b96a-9c3f292aa67f",{"id":33,"status":5,"sort":37,"created_on":944,"label":1331,"hidden":160,"icon":1412,"translations":1413},{"id":1333},[1414,1415,1416,1417],{"id":33,"languages_code":925,"label":1331},{"id":356,"languages_code":927,"label":1337},{"id":484,"languages_code":930,"label":1339},{"id":574,"languages_code":933,"label":1331},[1419,1426,1433],{"id":33,"status":5,"sort":37,"label":1331,"hidden":160,"created_on":944,"icon":1420,"translations":1421},{"id":1333},[1422,1423,1424,1425],{"id":33,"languages_code":925,"label":1331},{"id":356,"languages_code":927,"label":1337},{"id":484,"languages_code":930,"label":1339},{"id":574,"languages_code":933,"label":1331},{"id":33,"status":5,"sort":37,"label":1331,"hidden":160,"created_on":944,"icon":1427,"translations":1428},{"id":1333},[1429,1430,1431,1432],{"id":33,"languages_code":925,"label":1331},{"id":356,"languages_code":927,"label":1337},{"id":484,"languages_code":930,"label":1339},{"id":574,"languages_code":933,"label":1331},{"id":33,"status":5,"sort":37,"label":1331,"hidden":160,"created_on":944,"icon":1434,"translations":1435},{"id":1333},[1436,1437,1438,1439],{"id":33,"languages_code":925,"label":1331},{"id":356,"languages_code":927,"label":1337},{"id":484,"languages_code":930,"label":1339},{"id":574,"languages_code":933,"label":1331},[1441,1447,1457,1464],{"id":33,"status":5,"sort":41,"label":771,"alternative_label":10,"slug":775,"description":954,"documentation_link":955,"loc_icon":775,"is_official_plugin":160,"is_universal_plugin":160,"universal_plugin_vendor":10,"translations":1442},[1443,1444,1445,1446],{"id":33,"languages_code":925,"label":771,"description":954,"slug":775},{"id":959,"languages_code":927,"label":771,"description":960,"slug":775},{"id":782,"languages_code":933,"label":771,"description":962,"slug":775},{"id":565,"languages_code":930,"label":771,"description":964,"slug":775},{"id":25,"status":5,"sort":37,"label":966,"alternative_label":10,"slug":967,"description":968,"documentation_link":969,"loc_icon":970,"is_official_plugin":160,"is_universal_plugin":160,"universal_plugin_vendor":10,"translations":1448},[1449,1450,1451,1452,1453,1454,1455,1456],{"id":25,"languages_code":925,"label":966,"description":968,"slug":967},{"id":291,"languages_code":927,"label":974,"description":975,"slug":10},{"id":484,"languages_code":933,"label":966,"description":968,"slug":967},{"id":451,"languages_code":930,"label":978,"description":979,"slug":10},{"id":402,"languages_code":927,"label":981,"description":982,"slug":967},{"id":411,"languages_code":933,"label":966,"description":968,"slug":967},{"id":684,"languages_code":930,"label":978,"description":979,"slug":967},{"id":986,"languages_code":987,"label":988,"description":989,"slug":10},{"id":20,"status":5,"sort":33,"label":991,"alternative_label":992,"slug":993,"description":994,"documentation_link":995,"loc_icon":996,"is_official_plugin":160,"is_universal_plugin":160,"universal_plugin_vendor":10,"translations":1458},[1459,1460,1461,1462,1463],{"id":20,"languages_code":925,"label":991,"description":994,"slug":993},{"id":218,"languages_code":927,"label":1000,"description":1001,"slug":10},{"id":382,"languages_code":933,"label":991,"description":994,"slug":993},{"id":1004,"languages_code":930,"label":1005,"description":1006,"slug":10},{"id":1008,"languages_code":987,"label":1009,"description":1010,"slug":10},{"id":4,"status":5,"sort":25,"label":1012,"alternative_label":759,"slug":540,"description":1013,"documentation_link":1014,"loc_icon":540,"is_official_plugin":160,"is_universal_plugin":160,"universal_plugin_vendor":10,"translations":1465},[1466,1467,1468,1469,1470],{"id":4,"languages_code":925,"label":1012,"description":1013,"slug":540},{"id":207,"languages_code":927,"label":1018,"description":1019,"slug":540},{"id":374,"languages_code":933,"label":1012,"description":1013,"slug":540},{"id":443,"languages_code":930,"label":1022,"description":1023,"slug":540},{"id":1025,"languages_code":987,"label":1026,"description":1027,"slug":10},[],{"id":4,"status":5,"sort":25,"label":1012,"alternative_label":759,"slug":540,"description":1013,"documentation_link":1014,"loc_icon":540,"is_official_plugin":160,"is_universal_plugin":160,"universal_plugin_vendor":10,"translations":1473},[1474,1475,1476,1477,1478],{"id":4,"languages_code":925,"label":1012,"description":1013,"slug":540},{"id":207,"languages_code":927,"label":1018,"description":1019,"slug":540},{"id":374,"languages_code":933,"label":1012,"description":1013,"slug":540},{"id":443,"languages_code":930,"label":1022,"description":1023,"slug":540},{"id":1025,"languages_code":987,"label":1026,"description":1027,"slug":10},[],[1481],{"languages_code":925,"name":655,"slug":654,"description":1395,"support_type":1397,"meta_title":10,"meta_description":10,"marketing_subtitle":910,"tile_subtitle":1398,"tile_description":1399,"id":24,"platforms_id":24,"docs_link":1396},{"id":107,"status":5,"created_on":1483,"modified_on":1483,"name":1484,"slug":1485,"description":1486,"docs_link":1487,"priority":10,"has_sdk":160,"sort":247,"highlighted":160,"in_menu":162,"changefreq":10,"support_type":1397,"show_in_spa":162,"is_file_format":162,"meta_title":10,"meta_description":10,"featured_on_web":160,"marketing_subtitle":910,"tile_subtitle":1488,"tile_description":1489,"is_enterprise":160,"is_popular":162,"primary_use_case":10,"hierarchy_handling":10,"best_for":10,"file_extension":10,"format_code_example":10,"format_to_extension":1490,"upload_features":1491,"icon":1492,"meta_image":1494,"primary_tag":1496,"tags":1503,"integration_methods":1531,"recommended_methods":1562,"default_integration_method":1563,"faq_categories":1570,"translations":1571,"platforms_id":107},"2026-05-21T20:49:09.000Z","PO","po","Edit .po and .pot files with your team, automate translation with AI, and ship faster.","\u002Fdocs\u002Fcli\u002Fpo-format","Seamless integration","Upload, edit and translate PO files with Localazy.",{"po":1485},[],{"id":1493},"25f317fe-0c10-4f0b-92cd-f80d1f3c6a67",{"id":1495},"490022f9-d91a-4e1a-9e79-db374ec997c2",{"id":33,"status":5,"sort":37,"created_on":944,"label":1331,"hidden":160,"icon":1497,"translations":1498},{"id":1333},[1499,1500,1501,1502],{"id":33,"languages_code":925,"label":1331},{"id":356,"languages_code":927,"label":1337},{"id":484,"languages_code":930,"label":1339},{"id":574,"languages_code":933,"label":1331},[1504,1511,1521],{"id":33,"status":5,"sort":37,"label":1331,"hidden":160,"created_on":944,"icon":1505,"translations":1506},{"id":1333},[1507,1508,1509,1510],{"id":33,"languages_code":925,"label":1331},{"id":356,"languages_code":927,"label":1337},{"id":484,"languages_code":930,"label":1339},{"id":574,"languages_code":933,"label":1331},{"id":394,"status":5,"sort":394,"label":1512,"hidden":162,"created_on":944,"icon":10,"translations":1513},"C++",[1514,1515,1517,1519],{"id":394,"languages_code":925,"label":1512},{"id":1516,"languages_code":927,"label":1512},135,{"id":1518,"languages_code":930,"label":1512},140,{"id":1520,"languages_code":933,"label":1512},144,{"id":24,"status":5,"sort":247,"label":1522,"hidden":162,"created_on":944,"icon":10,"translations":1523},"Gettext",[1524,1525,1527,1529],{"id":24,"languages_code":925,"label":1522},{"id":1526,"languages_code":927,"label":1522},101,{"id":1528,"languages_code":930,"label":1522},106,{"id":1530,"languages_code":933,"label":1522},111,[1532,1538,1548,1555],{"id":33,"status":5,"sort":41,"label":771,"alternative_label":10,"slug":775,"description":954,"documentation_link":955,"loc_icon":775,"is_official_plugin":160,"is_universal_plugin":160,"universal_plugin_vendor":10,"translations":1533},[1534,1535,1536,1537],{"id":33,"languages_code":925,"label":771,"description":954,"slug":775},{"id":959,"languages_code":927,"label":771,"description":960,"slug":775},{"id":782,"languages_code":933,"label":771,"description":962,"slug":775},{"id":565,"languages_code":930,"label":771,"description":964,"slug":775},{"id":25,"status":5,"sort":37,"label":966,"alternative_label":10,"slug":967,"description":968,"documentation_link":969,"loc_icon":970,"is_official_plugin":160,"is_universal_plugin":160,"universal_plugin_vendor":10,"translations":1539},[1540,1541,1542,1543,1544,1545,1546,1547],{"id":25,"languages_code":925,"label":966,"description":968,"slug":967},{"id":291,"languages_code":927,"label":974,"description":975,"slug":10},{"id":484,"languages_code":933,"label":966,"description":968,"slug":967},{"id":451,"languages_code":930,"label":978,"description":979,"slug":10},{"id":402,"languages_code":927,"label":981,"description":982,"slug":967},{"id":411,"languages_code":933,"label":966,"description":968,"slug":967},{"id":684,"languages_code":930,"label":978,"description":979,"slug":967},{"id":986,"languages_code":987,"label":988,"description":989,"slug":10},{"id":20,"status":5,"sort":33,"label":991,"alternative_label":992,"slug":993,"description":994,"documentation_link":995,"loc_icon":996,"is_official_plugin":160,"is_universal_plugin":160,"universal_plugin_vendor":10,"translations":1549},[1550,1551,1552,1553,1554],{"id":20,"languages_code":925,"label":991,"description":994,"slug":993},{"id":218,"languages_code":927,"label":1000,"description":1001,"slug":10},{"id":382,"languages_code":933,"label":991,"description":994,"slug":993},{"id":1004,"languages_code":930,"label":1005,"description":1006,"slug":10},{"id":1008,"languages_code":987,"label":1009,"description":1010,"slug":10},{"id":4,"status":5,"sort":25,"label":1012,"alternative_label":759,"slug":540,"description":1013,"documentation_link":1014,"loc_icon":540,"is_official_plugin":160,"is_universal_plugin":160,"universal_plugin_vendor":10,"translations":1556},[1557,1558,1559,1560,1561],{"id":4,"languages_code":925,"label":1012,"description":1013,"slug":540},{"id":207,"languages_code":927,"label":1018,"description":1019,"slug":540},{"id":374,"languages_code":933,"label":1012,"description":1013,"slug":540},{"id":443,"languages_code":930,"label":1022,"description":1023,"slug":540},{"id":1025,"languages_code":987,"label":1026,"description":1027,"slug":10},[],{"id":4,"status":5,"sort":25,"label":1012,"alternative_label":759,"slug":540,"description":1013,"documentation_link":1014,"loc_icon":540,"is_official_plugin":160,"is_universal_plugin":160,"universal_plugin_vendor":10,"translations":1564},[1565,1566,1567,1568,1569],{"id":4,"languages_code":925,"label":1012,"description":1013,"slug":540},{"id":207,"languages_code":927,"label":1018,"description":1019,"slug":540},{"id":374,"languages_code":933,"label":1012,"description":1013,"slug":540},{"id":443,"languages_code":930,"label":1022,"description":1023,"slug":540},{"id":1025,"languages_code":987,"label":1026,"description":1027,"slug":10},[],[1572],{"languages_code":925,"name":1484,"slug":1485,"description":1486,"support_type":1397,"meta_title":10,"meta_description":10,"marketing_subtitle":910,"tile_subtitle":1488,"tile_description":1489,"id":107,"platforms_id":107,"docs_link":1487},{"id":252,"status":5,"created_on":1229,"modified_on":1574,"name":1575,"slug":1576,"description":1577,"docs_link":1578,"priority":10,"has_sdk":160,"sort":230,"highlighted":160,"in_menu":162,"changefreq":10,"support_type":1397,"show_in_spa":162,"is_file_format":162,"meta_title":10,"meta_description":10,"featured_on_web":160,"marketing_subtitle":910,"tile_subtitle":1579,"tile_description":1580,"is_enterprise":160,"is_popular":160,"primary_use_case":1581,"hierarchy_handling":1582,"best_for":1583,"file_extension":1584,"format_code_example":1585,"format_to_extension":1586,"upload_features":1587,"icon":1588,"meta_image":1589,"primary_tag":1591,"tags":1598,"integration_methods":1616,"recommended_methods":1647,"default_integration_method":1648,"faq_categories":1655,"translations":1658,"platforms_id":252},"2025-10-02T08:32:44.000Z","RESX","resx","Quickly translate and manage your RESX files with Localazy or integrate Localazy with your .NET project and enjoy a fully automated localization process. ","\u002Fdocs\u002Fcli\u002Fresx-format",".NET localization","Translate .NET projects using RESX files and Localazy.","Standard format for Windows\u002F.NET localization","Flat key-value structure",".NET applications",".resx","```\n\u003C?xml version=\"1.0\" encoding=\"utf-8\"?>\n\u003Croot>\n  \u003Cdata name=\"localazy_message\" xml:space=\"preserve\">\n    \u003Cvalue>Go international, today. With Localazy.\u003C\u002Fvalue>\n  \u003C\u002Fdata>\n\u003C\u002Froot>\n```",{"resx":1576},[],{"id":1493},{"id":1590},"1f07bf83-9363-47d6-b21b-a5121c0efaf6",{"id":33,"status":5,"sort":37,"created_on":944,"label":1331,"hidden":160,"icon":1592,"translations":1593},{"id":1333},[1594,1595,1596,1597],{"id":33,"languages_code":925,"label":1331},{"id":356,"languages_code":927,"label":1337},{"id":484,"languages_code":930,"label":1339},{"id":574,"languages_code":933,"label":1331},[1599,1606],{"id":33,"status":5,"sort":37,"label":1331,"hidden":160,"created_on":944,"icon":1600,"translations":1601},{"id":1333},[1602,1603,1604,1605],{"id":33,"languages_code":925,"label":1331},{"id":356,"languages_code":927,"label":1337},{"id":484,"languages_code":930,"label":1339},{"id":574,"languages_code":933,"label":1331},{"id":247,"status":5,"sort":252,"label":1607,"hidden":162,"created_on":944,"icon":10,"translations":1608},"C#",[1609,1610,1612,1614],{"id":247,"languages_code":925,"label":1607},{"id":1611,"languages_code":927,"label":1607},103,{"id":1613,"languages_code":930,"label":1607},108,{"id":1615,"languages_code":933,"label":1607},113,[1617,1623,1633,1640],{"id":33,"status":5,"sort":41,"label":771,"alternative_label":10,"slug":775,"description":954,"documentation_link":955,"loc_icon":775,"is_official_plugin":160,"is_universal_plugin":160,"universal_plugin_vendor":10,"translations":1618},[1619,1620,1621,1622],{"id":33,"languages_code":925,"label":771,"description":954,"slug":775},{"id":959,"languages_code":927,"label":771,"description":960,"slug":775},{"id":782,"languages_code":933,"label":771,"description":962,"slug":775},{"id":565,"languages_code":930,"label":771,"description":964,"slug":775},{"id":25,"status":5,"sort":37,"label":966,"alternative_label":10,"slug":967,"description":968,"documentation_link":969,"loc_icon":970,"is_official_plugin":160,"is_universal_plugin":160,"universal_plugin_vendor":10,"translations":1624},[1625,1626,1627,1628,1629,1630,1631,1632],{"id":25,"languages_code":925,"label":966,"description":968,"slug":967},{"id":291,"languages_code":927,"label":974,"description":975,"slug":10},{"id":484,"languages_code":933,"label":966,"description":968,"slug":967},{"id":451,"languages_code":930,"label":978,"description":979,"slug":10},{"id":402,"languages_code":927,"label":981,"description":982,"slug":967},{"id":411,"languages_code":933,"label":966,"description":968,"slug":967},{"id":684,"languages_code":930,"label":978,"description":979,"slug":967},{"id":986,"languages_code":987,"label":988,"description":989,"slug":10},{"id":20,"status":5,"sort":33,"label":991,"alternative_label":992,"slug":993,"description":994,"documentation_link":995,"loc_icon":996,"is_official_plugin":160,"is_universal_plugin":160,"universal_plugin_vendor":10,"translations":1634},[1635,1636,1637,1638,1639],{"id":20,"languages_code":925,"label":991,"description":994,"slug":993},{"id":218,"languages_code":927,"label":1000,"description":1001,"slug":10},{"id":382,"languages_code":933,"label":991,"description":994,"slug":993},{"id":1004,"languages_code":930,"label":1005,"description":1006,"slug":10},{"id":1008,"languages_code":987,"label":1009,"description":1010,"slug":10},{"id":4,"status":5,"sort":25,"label":1012,"alternative_label":759,"slug":540,"description":1013,"documentation_link":1014,"loc_icon":540,"is_official_plugin":160,"is_universal_plugin":160,"universal_plugin_vendor":10,"translations":1641},[1642,1643,1644,1645,1646],{"id":4,"languages_code":925,"label":1012,"description":1013,"slug":540},{"id":207,"languages_code":927,"label":1018,"description":1019,"slug":540},{"id":374,"languages_code":933,"label":1012,"description":1013,"slug":540},{"id":443,"languages_code":930,"label":1022,"description":1023,"slug":540},{"id":1025,"languages_code":987,"label":1026,"description":1027,"slug":10},[],{"id":4,"status":5,"sort":25,"label":1012,"alternative_label":759,"slug":540,"description":1013,"documentation_link":1014,"loc_icon":540,"is_official_plugin":160,"is_universal_plugin":160,"universal_plugin_vendor":10,"translations":1649},[1650,1651,1652,1653,1654],{"id":4,"languages_code":925,"label":1012,"description":1013,"slug":540},{"id":207,"languages_code":927,"label":1018,"description":1019,"slug":540},{"id":374,"languages_code":933,"label":1012,"description":1013,"slug":540},{"id":443,"languages_code":930,"label":1022,"description":1023,"slug":540},{"id":1025,"languages_code":987,"label":1026,"description":1027,"slug":10},[1656],{"id":356,"status":5,"created_on":1657,"sort":10,"slug":1576,"label":1575,"on_faq_index":10},"2022-08-01T16:44:06.000Z",[1659],{"languages_code":925,"name":1575,"slug":1576,"description":1577,"support_type":1397,"meta_title":10,"meta_description":10,"marketing_subtitle":910,"tile_subtitle":1579,"tile_description":1580,"id":252,"platforms_id":252,"docs_link":1578},{"id":661,"status":5,"created_on":1661,"modified_on":1662,"name":664,"slug":663,"description":1663,"docs_link":1664,"priority":10,"has_sdk":10,"sort":662,"highlighted":160,"in_menu":162,"changefreq":10,"support_type":1665,"show_in_spa":162,"is_file_format":10,"meta_title":10,"meta_description":10,"featured_on_web":162,"marketing_subtitle":1665,"tile_subtitle":1665,"tile_description":1666,"is_enterprise":160,"is_popular":162,"primary_use_case":10,"hierarchy_handling":10,"best_for":10,"file_extension":10,"format_code_example":10,"format_to_extension":10,"upload_features":10,"icon":1667,"meta_image":1668,"primary_tag":1670,"tags":1682,"integration_methods":1726,"recommended_methods":1746,"default_integration_method":1747,"faq_categories":1754,"translations":1757,"platforms_id":661},"2022-06-16T09:08:11.000Z","2026-04-27T18:16:54.000Z","Enjoy seamless integration of Strapi & Localazy and translate your website efficiently. Download the official Localazy plugin in the Strapi Marketplace to get started!","\u002Fdocs\u002Fstrapi\u002Fstrapi-plugin-introduction","Localization Plugin","Localize your Strapi website with our official localization plugin. Easy setup and installation.",{"id":666},{"id":1669},"5995b721-a2ea-487e-ad4b-298a489bbd24",{"id":19,"status":5,"sort":15,"created_on":944,"label":1671,"hidden":160,"icon":1672,"translations":1674},"CMS",{"id":1673},"1172a655-928c-4594-9263-d8afdfd9cd79",[1675,1676,1678,1680],{"id":19,"languages_code":925,"label":1671},{"id":1677,"languages_code":927,"label":1671},73,{"id":1679,"languages_code":930,"label":1671},81,{"id":1681,"languages_code":933,"label":1671},84,[1683,1695,1707,1714],{"id":99,"status":5,"sort":95,"label":1684,"hidden":160,"created_on":944,"icon":10,"translations":1685},"Multilingual SEO",[1686,1687,1690,1693],{"id":99,"languages_code":925,"label":1684},{"id":1688,"languages_code":927,"label":1689},89,"SEO multilingüe",{"id":1691,"languages_code":930,"label":1692},94,"Vícejazyčné SEO",{"id":1694,"languages_code":933,"label":1684},99,{"id":535,"status":5,"sort":535,"label":302,"hidden":160,"created_on":944,"icon":1696,"translations":1698},{"id":1697},"e782ed3f-d954-45ca-8b17-5bf5fe95f30a",[1699,1700,1703,1705],{"id":535,"languages_code":925,"label":302},{"id":1701,"languages_code":927,"label":1702},132,"Comercio electrónico",{"id":1704,"languages_code":930,"label":302},137,{"id":1706,"languages_code":933,"label":302},142,{"id":19,"status":5,"sort":15,"label":1671,"hidden":160,"created_on":944,"icon":1708,"translations":1709},{"id":1673},[1710,1711,1712,1713],{"id":19,"languages_code":925,"label":1671},{"id":1677,"languages_code":927,"label":1671},{"id":1679,"languages_code":930,"label":1671},{"id":1681,"languages_code":933,"label":1671},{"id":20,"status":5,"sort":41,"label":1715,"hidden":160,"created_on":944,"icon":1716,"translations":1718},"Marketing tools",{"id":1717},"098fe6a4-dd2e-42d8-937e-2d8121e6e266",[1719,1720,1723,1725],{"id":20,"languages_code":925,"label":1715},{"id":1721,"languages_code":927,"label":1722},43,"Herramientas de marketing",{"id":431,"languages_code":930,"label":1724},"Marketingové nástroje",{"id":509,"languages_code":933,"label":1715},[1727],{"id":53,"status":5,"sort":10,"label":1728,"alternative_label":1729,"slug":1730,"description":1731,"documentation_link":1732,"loc_icon":1733,"is_official_plugin":162,"is_universal_plugin":160,"universal_plugin_vendor":10,"translations":1734},"Official Strapi Plugin","Official Plugin","official-strapi-plugin","Our developers maintain an official Strapi localization plugin. Start in a few clicks!","\u002Fdocs\u002Fstrapi","localazy-box",[1735,1736,1739,1740,1743],{"id":53,"languages_code":925,"label":1728,"description":1731,"slug":1730},{"id":1721,"languages_code":927,"label":1737,"description":1738,"slug":10},"Complemento Oficial de Strapi","Nuestros desarrolladores mantienen un complemento oficial de localización de Strapi. ¡Empiece en unos pocos clics!",{"id":500,"languages_code":933,"label":1728,"description":1731,"slug":1730},{"id":574,"languages_code":930,"label":1741,"description":1742,"slug":10},"Oficiál Plugin Strapi","Naši vývojáři udržují a neustále vylepšují oficiální lokalizační plugin Strapi. Začněte několika kliknutími!",{"id":1688,"languages_code":987,"label":1744,"description":1745,"slug":10},"Offizielles Strapi-Plugin","Unsere Entwickler pflegen ein offizielles Strapi-Lokalisierungs-Plugin. Starten Sie mit ein paar Klicks!",[],{"id":53,"status":5,"sort":10,"label":1728,"alternative_label":1729,"slug":1730,"description":1731,"documentation_link":1732,"loc_icon":1733,"is_official_plugin":162,"is_universal_plugin":160,"universal_plugin_vendor":10,"translations":1748},[1749,1750,1751,1752,1753],{"id":53,"languages_code":925,"label":1728,"description":1731,"slug":1730},{"id":1721,"languages_code":927,"label":1737,"description":1738,"slug":10},{"id":500,"languages_code":933,"label":1728,"description":1731,"slug":1730},{"id":574,"languages_code":930,"label":1741,"description":1742,"slug":10},{"id":1688,"languages_code":987,"label":1744,"description":1745,"slug":10},[1755],{"id":207,"status":5,"created_on":1756,"sort":10,"slug":663,"label":664,"on_faq_index":10},"2022-06-16T09:24:13.000Z",[1758],{"languages_code":925,"name":664,"slug":663,"description":1663,"support_type":1665,"meta_title":10,"meta_description":10,"marketing_subtitle":1665,"tile_subtitle":1665,"tile_description":1666,"id":661,"platforms_id":661,"docs_link":1664},{"id":451,"status":5,"created_on":1229,"modified_on":1760,"name":671,"slug":670,"description":10,"docs_link":1761,"priority":10,"has_sdk":160,"sort":443,"highlighted":160,"in_menu":162,"changefreq":10,"support_type":1762,"show_in_spa":162,"is_file_format":160,"meta_title":10,"meta_description":10,"featured_on_web":162,"marketing_subtitle":1763,"tile_subtitle":1764,"tile_description":1765,"is_enterprise":160,"is_popular":162,"primary_use_case":10,"hierarchy_handling":10,"best_for":10,"file_extension":10,"format_code_example":10,"format_to_extension":10,"upload_features":1766,"icon":1767,"meta_image":1768,"primary_tag":1770,"tags":1783,"integration_methods":1791,"recommended_methods":1804,"default_integration_method":1805,"faq_categories":1811,"translations":1812,"platforms_id":451},"2024-12-20T15:00:22.000Z","\u002Fdocs\u002Fintegrations\u002Fquick-start-figma","plugin","Figma plugin","Localization plugin","Quickly translate your Figma designs and seamlessly reuse the translations during the development of your project.",[],{"id":673},{"id":1769},"7573fed6-8817-4cb4-84d2-be327e6c4891",{"id":25,"status":5,"sort":45,"created_on":944,"label":1771,"hidden":160,"icon":1772,"translations":1774},"Design tools",{"id":1773},"1053d863-b690-4fbd-aadf-dbf2ba282768",[1775,1776,1779,1782],{"id":25,"languages_code":925,"label":1771},{"id":1777,"languages_code":927,"label":1778},42,"Herramientas de diseño",{"id":1780,"languages_code":930,"label":1781},49,"Nástroje pro návrh",{"id":557,"languages_code":933,"label":1771},[1784],{"id":25,"status":5,"sort":45,"label":1771,"hidden":160,"created_on":944,"icon":1785,"translations":1786},{"id":1773},[1787,1788,1789,1790],{"id":25,"languages_code":925,"label":1771},{"id":1777,"languages_code":927,"label":1778},{"id":1780,"languages_code":930,"label":1781},{"id":557,"languages_code":933,"label":1771},[1792],{"id":45,"status":5,"sort":10,"label":1729,"alternative_label":1729,"slug":1793,"description":1794,"documentation_link":85,"loc_icon":1733,"is_official_plugin":162,"is_universal_plugin":160,"universal_plugin_vendor":10,"translations":1795},"official-plugin","Our developers maintain an official plugin for this integration. Start in a few clicks!",[1796,1797,1800,1801],{"id":45,"languages_code":925,"label":1729,"description":1794,"slug":1793},{"id":280,"languages_code":927,"label":1798,"description":1799,"slug":10},"Plugin Oficial","Nuestros desarrolladores mantienen un plugin oficial para esta integración. ¡Empiece con unos pocos clics!",{"id":271,"languages_code":933,"label":1729,"description":1794,"slug":1793},{"id":464,"languages_code":930,"label":1802,"description":1803,"slug":10},"Oficiální Plugin","Naši vývojáři udržují a neustále vylepšují oficiální plugin pro tuto integraci. Začněte několika kliknutími!",[],{"id":45,"status":5,"sort":10,"label":1729,"alternative_label":1729,"slug":1793,"description":1794,"documentation_link":85,"loc_icon":1733,"is_official_plugin":162,"is_universal_plugin":160,"universal_plugin_vendor":10,"translations":1806},[1807,1808,1809,1810],{"id":45,"languages_code":925,"label":1729,"description":1794,"slug":1793},{"id":280,"languages_code":927,"label":1798,"description":1799,"slug":10},{"id":271,"languages_code":933,"label":1729,"description":1794,"slug":1793},{"id":464,"languages_code":930,"label":1802,"description":1803,"slug":10},[],[1813],{"languages_code":925,"name":671,"slug":670,"description":10,"support_type":1762,"meta_title":10,"meta_description":10,"marketing_subtitle":1763,"tile_subtitle":1764,"tile_description":1765,"id":451,"platforms_id":451,"docs_link":1761},{"id":1815,"owner":1816,"created_by":10,"sort":10,"title":1821,"slug":1822,"modified_on":877,"created_on":1823,"pinned":160,"badge":10,"priority":1824,"main_image":1825,"status":5,"tags":1826,"dictionary":1834,"reading_time":1835,"excerpt":-1,"og_title":877,"og_description":877,"og_image":877},"69d78a237ab1270001eddabf",{"id":1817,"first_name":1818,"last_name":877,"slug":1819,"avatar":1820},"606c233dcf7b6a0001d1da93","Petr Hodný","petr-hodny","https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2023\u002F12\u002Fpetr.png","Translation API: Translate your content on the fly with Localazy AI!","translation-api-translate-your-content-on-the-fly-with-localazy-ai","2026-04-24T09:27:26.000+02:00","0.7","https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2026\u002F04\u002FLocalazy-AI-translation-api.png",[1827,1829,1832],{"id":451,"created_on":1828,"status":5,"label":771,"slug":775,"on_index_page":160},"2026-05-28 18:10:34",{"id":402,"created_on":1828,"status":5,"label":1830,"slug":1831,"on_index_page":162},"AI","ai",{"id":451,"created_on":1828,"status":5,"label":352,"slug":1833,"on_index_page":162},"localization",[],0,{"id":1837,"owner":1838,"created_by":10,"sort":10,"title":1839,"slug":1840,"modified_on":877,"created_on":1841,"pinned":160,"badge":10,"priority":1824,"main_image":1842,"status":5,"tags":1843,"dictionary":1850,"reading_time":1835,"excerpt":-1,"og_title":877,"og_description":877,"og_image":877},"69ea1abb7ab1270001ede902",{"id":1817,"first_name":1818,"last_name":877,"slug":1819,"avatar":1820},"You can just build things. But should you? The build vs. buy debate in localization","build-vs-buy-in-localization-you-can-build-things-but-should-you","2026-05-25T08:43:00.000+02:00","https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2026\u002F05\u002Flocalazy-Vibe-coding.png",[1844,1845,1849],{"id":402,"created_on":1828,"status":5,"label":1830,"slug":1831,"on_index_page":162},{"id":1846,"created_on":1828,"status":5,"label":1847,"slug":1848,"on_index_page":160},646,"Business Development","business-development",{"id":451,"created_on":1828,"status":5,"label":352,"slug":1833,"on_index_page":162},[],{"post":1852,"relatedPosts":1992,"banner":2051},{"id":1853,"owner":1854,"created_by":10,"sort":10,"title":1859,"slug":1860,"modified_on":1861,"created_on":1862,"pinned":162,"badge":10,"priority":1824,"main_image":1863,"status":5,"tags":1864,"dictionary":1874,"reading_time":61,"excerpt":1915,"og_title":877,"og_description":877,"og_image":877,"content":1916,"meta_title":877,"meta_description":877,"canonical":877,"cta":1917,"fullGhostPost":1925},"62c5dee8fe956a000108748a",{"id":1855,"first_name":1856,"last_name":877,"slug":1857,"avatar":1858},"6062091b2a37af00016d4140","Jan Bílek","jan-bilek","https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2023\u002F12\u002Fhonza.png","How to improve the PageSpeed score of your Nuxt.js website in 6 steps","how-improve-pagespeed-score-nuxt-js-website-6-steps","2024-01-25T12:12:14.000+01:00","2022-07-07T14:15:05.000+02:00","https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2024\u002F01\u002Fnuxt-pagespeed.png",[1865,1868,1871],{"id":451,"created_on":1828,"status":5,"label":1866,"slug":1867,"on_index_page":162},"DevTips","devtips",{"id":451,"created_on":1828,"status":5,"label":1869,"slug":1870,"on_index_page":160},"HowTo","howto",{"id":451,"created_on":1828,"status":5,"label":1872,"slug":1873,"on_index_page":160},"Nuxt.js","nuxtjs",[1875,1887,1904,1910],{"id":1004,"status":5,"owner":1876,"created_on":1877,"title":1878,"excerpt":1879,"content":1880,"slug":1881,"meta_title":10,"meta_description":10,"canonical":10,"related_terms":1882},"2bac48a8-b362-482f-b574-3bc71dca4c5b","2022-03-17T12:22:55.000Z","CI","CI can stand for Continuous Integration or Continuous Improvement. What is the difference?","CI can stand for Continuous Integration or Continuous Improvement. \n\nWhat is the difference?\n\n+ [Continuous Improvement](\u002Fdictionary\u002Fcontinuous-improvement\u002F) in Organizational Management\n+ [Continuous Integration](\u002Fdictionary\u002Fcontinuous-integration\u002F) in Software Development","ci",[1883,1885],{"id":557,"slug":1884},"continuous-improvement",{"id":509,"slug":1886},"continuous-integration",{"id":1888,"status":5,"owner":1876,"created_on":1877,"title":641,"excerpt":1889,"content":1890,"slug":640,"meta_title":877,"meta_description":10,"canonical":10,"related_terms":1891},75,"JavaScript is a scripting language that allows developers to create interactive web interfaces.","JavaScript is a scripting language that makes it possible to dynamically update content, control multimedia, animate images, and achieve many other things. Most websites use JavaScript on the client-side to change how pages look and behave when users interact with them. JavaScript is most well-known as the scripting language for web interfaces, although many non-browser environments also use it, such as [Node.js](\u002Fdictionary\u002Fnodejs). \n\nJavaScript first appeared in 1995. Brendan Eich of Netscape initially designed it, but others have also contributed to the ECMAScript standard that forms the basis of JavaScript.\n\nJavaScript is the basis for many popular web development frameworks, such as:\n- [Vue.js](\u002Fdictionary\u002Fvuejs)\n- [Angular](\u002Fdictionary\u002Fangular)\n- [React](\u002Fdictionary\u002Freact)\n\nLocalazy supports [integrations](\u002Fintegrations) with many JavaScript frameworks and file formats.\n\n## Helpful resources:\n- [MDN Web Docs - JavaScript](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FJavaScript) \n- [JavaScript.com Learning Resources](https:\u002F\u002Fwww.javascript.com\u002F)\n- [Tutorial: How to localize JavaScript project with Localazy](\u002Fblog\u002Fjavascript-app-localization-i18next-localazy)",[1892,1894,1895,1897,1898,1901],{"id":1893,"slug":633},74,{"id":1250,"slug":606},{"id":1896,"slug":620},69,{"id":1253,"slug":613},{"id":1899,"slug":1900},80,"nodejs",{"id":1902,"slug":1903},77,"nuxt",{"id":1899,"status":5,"owner":1876,"created_on":1877,"title":1905,"excerpt":1906,"content":1907,"slug":1900,"meta_title":10,"meta_description":10,"canonical":877,"related_terms":1908},"NodeJS","NodeJS is a run-time JavaScript enviroment for server-side use.","NodeJS is a run-time JavaScript envinroment for server-side use. It comes packaged with everything needed to run JavaScript on a server. It uses NPM as a package manager to add additional features. NodeJS is mainly used for creating web applications and serving websites to end-users. It is also a popular first language to learn due to it's small learning curve and its high use.\n\nYou can localize NodeJS apps using Localazy.",[1909],{"id":1888,"slug":640},{"id":1902,"status":5,"owner":1876,"created_on":1877,"title":1911,"excerpt":1912,"content":1912,"slug":1903,"meta_title":877,"meta_description":10,"canonical":10,"related_terms":1913},"Nuxt","Nuxt is described as a meta framework for applications. It is based on several different frameworks and is written in JavaScript.",[1914],{"id":1888,"slug":640},"Poor website performance might be costing you money. Learn why the PageSpeed score is important and how the web developers at Localazy improved the PageSpeed score of our Nuxt.js website in 6 steps. ","\u003Cp>Google's \u003Ca href=\"https:\u002F\u002Fpagespeed.web.dev\">PageSpeed Insights\u003C\u002Fa> has become the standard for measuring and evaluating website performance. The method can measure your website performance and loading times on a scale of 0-100, with an overview of the key metrics and recommendations for improving them. \u003C\u002Fp>\u003Ch2 id=\"why-is-the-pagespeed-score-so-important\">🤔 Why is the PageSpeed score so important? \u003Ca class=\"markdownit-header-anchor\" href=\"#why-is-the-pagespeed-score-so-important\">🔗\u003C\u002Fa>\u003C\u002Fh2>\u003Cp>Naturally, there's been a lot of discussion about the score's usefulness and how it reflects real user experience. \u003C\u002Fp>\u003Cp>We have to admit we found out that the total score of your page matters a lot the hard way when our ad budgets didn't allocate as effectively as before due to a sudden drop in the scores. But there is more to it than ad costs, and the three main reasons are listed below.\u003C\u002Fp>\u003Ch3 id=\"1-seo\">1. SEO \u003Ca class=\"markdownit-header-anchor\" href=\"#1-seo\">🔗\u003C\u002Fa>\u003C\u002Fh3>\u003Cp>\u003Ca href=\"https:\u002F\u002Fdevelopers.google.com\u002Fsearch\u002Fblog\u002F2010\u002F04\u002Fusing-site-speed-in-web-search-ranking\">Since 2010\u003C\u002Fa>, PageSpeed has been a ranking factor for desktop searches. \u003Ca href=\"https:\u002F\u002Fdeveloper.chrome.com\u002Fblog\u002Fsearch-ads-speed\u002F#speed-is-now-used-as-a-ranking-factor-for-mobile-searches\">In 2018\u003C\u002Fa>, Google announced that it would also be considered in mobile searches. This decision makes the SERP ranking directly tied to the PageSpeed performance and makes it an integral part of search engine optimization.\u003C\u002Fp>\u003Ch3 id=\"2-ux\">2. UX \u003Ca class=\"markdownit-header-anchor\" href=\"#2-ux\">🔗\u003C\u002Fa>\u003C\u002Fh3>\u003Cp>Faster websites mean better user experience and happier users in general. There are numerous studies on how page speed affects revenue (\u003Ca href=\"https:\u002F\u002Fwww2.deloitte.com\u002Fcontent\u002Fdam\u002FDeloitte\u002Fie\u002FDocuments\u002FConsulting\u002FMilliseconds_Make_Millions_report.pdf\">this\u003C\u002Fa> or \u003Ca href=\"https:\u002F\u002Fnitropack.io\u002Fblog\u002Fpost\u002Fweb-performance-matters-case-studies\">this\u003C\u002Fa>).\u003Cbr>Making websites faster simply benefits both the user and the business.\u003C\u002Fp>\u003Cp>To fight the objections on how accurately the PageSpeed score represents the perceived performance, Google now measures the actual performance on user devices and uses an aggregated score over a certain period of time.\u003C\u002Fp>\u003Ch3 id=\"3-ads\">3. Ads \u003Ca class=\"markdownit-header-anchor\" href=\"#3-ads\">🔗\u003C\u002Fa>\u003C\u002Fh3>\u003Cp>\u003Ca href=\"https:\u002F\u002Fdeveloper.chrome.com\u002Fblog\u002Fsearch-ads-speed\u002F#the-mobile-speed-score-for-ads-landing-pages\">In the same announcement in 2018\u003C\u002Fa>, Google also mentioned that page speed is now another factor for determining QualityScore for both desktop and mobile landing pages. This means that pages with low scores will now decrease your ad CTR and also increase CPC! \u003C\u002Fp>\u003Cp>Competitors' ads are then more likely to be displayed instead of yours, which is something nobody wants. So simply put, to optimize your marketing budget, optimize your PageSpeed as well.\u003C\u002Fp>\u003Ch2 id=\"our-current-site-architecture\">📐 Our Current Site Architecture \u003Ca class=\"markdownit-header-anchor\" href=\"#our-current-site-architecture\">🔗\u003C\u002Fa>\u003C\u002Fh2>\u003Cp>As the title suggests, we use the \u003Ca href=\"https:\u002F\u002Fnuxtjs.org\">Nuxt.js\u003C\u002Fa> framework for the whole public-facing website.\u003C\u002Fp>\u003Cp>Every page is built out of common components we share throughout our entire codebase and is also a core dependency of our app, plugins, etc. We use \u003Ca href=\"https:\u002F\u002Ftailwindcss.com\">Tailwind CSS\u003C\u002Fa> to speed up the development and create consistent visuals over the entire platform.\u003C\u002Fp>\u003Cp>The site content is then fetched from various sources, including the \u003Ca href=\"https:\u002F\u002Fdirectus.io\">Directus platform\u003C\u002Fa> and a \u003Ca href=\"https:\u002F\u002Fghost.org\">Ghost blog\u003C\u002Fa>.\u003C\u002Fp>\u003Cp>The whole site is deployed in the \u003Ca href=\"https:\u002F\u002Fnuxtjs.org\u002Fdocs\u002Fconcepts\u002Fstatic-site-generation\">static mode\u003C\u002Fa>, meaning all pages are pre-generated and served as static HTML files, so no server runtime is required. Everything is then loaded on multiple replicas, cached, and distributed through a \u003Ca href=\"https:\u002F\u002Fcloudflare.com\">Cloudflare CDN\u003C\u002Fa>, which makes the site incredibly lightweight and resilient, as it requires negligible computing resources.\u003C\u002Fp>\u003Ch2 id=\"the-problem-with-the-setup\">🚧 The Problem With the Setup \u003Ca class=\"markdownit-header-anchor\" href=\"#the-problem-with-the-setup\">🔗\u003C\u002Fa>\u003C\u002Fh2>\u003Cp>Even though the site architecture looks very scalable and has the potential to serve millions of users daily, we weren't getting the expected results in terms of PageSpeed.\u003C\u002Fp>\u003Cp>The main identified problems were:\u003C\u002Fp>\u003Col>\u003Cli>The large size of the JS bundle (loaded and parsed), mainly due to 3rd party dependencies\u003C\u002Fli>\u003Cli>Large page size in total, including static resources\u003C\u002Fli>\u003Cli>Huge Render blocking time\u003C\u002Fli>\u003C\u002Fol>\u003Cfigure class=\"kg-card kg-image-card\">\u003Cimg src=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2022\u002F07\u002FScreenshot-2022-07-07-at-23.34.24.png\" class=\"kg-image\" alt loading=\"lazy\" width=\"1688\" height=\"1334\" srcset=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw600\u002F2022\u002F07\u002FScreenshot-2022-07-07-at-23.34.24.png 600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1000\u002F2022\u002F07\u002FScreenshot-2022-07-07-at-23.34.24.png 1000w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1600\u002F2022\u002F07\u002FScreenshot-2022-07-07-at-23.34.24.png 1600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2022\u002F07\u002FScreenshot-2022-07-07-at-23.34.24.png 1688w\" sizes=\"(min-width: 720px) 720px\">\u003C\u002Ffigure>\u003Ch2 id=\"the-solution\">🚀 The Solution \u003Ca class=\"markdownit-header-anchor\" href=\"#the-solution\">🔗\u003C\u002Fa>\u003C\u002Fh2>\u003Cp>There are many articles about web performance in the wild, giving you advice on how to speed up your site, but when it comes to practical examples, these are rare. Therefore, I decided present the complete list of steps we took to improve our PageSpeed score. Some are specific to our architecture described earlier and should be adapted to your setup.\u003C\u002Fp>\u003Ch3 id=\"check-your-cloudflare-configuration\">Check your Cloudflare configuration \u003Ca class=\"markdownit-header-anchor\" href=\"#check-your-cloudflare-configuration\">🔗\u003C\u002Fa>\u003C\u002Fh3>\u003Cp>Many of you probably use Cloudflare to manage your DNS configuration. It's a fantastic service with many options to improve your website's security, resiliency, and performance. However, most sites simply do the initial configuration and rarely touch it later. We're on a paid plan, so we might have more settings available, but most of these options are also available in their free tier.\u003C\u002Fp>\u003Cfigure class=\"kg-card kg-image-card\">\u003Cimg src=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2022\u002F07\u002Fa31z4Ke_460s-5.jpg\" class=\"kg-image\" alt loading=\"lazy\" width=\"459\" height=\"395\">\u003C\u002Ffigure>\u003Ch4 id=\"caching\">Caching\u003C\u002Fh4>\u003Cp>Cloudflare's caching is a powerful service. It distributes your resources over a CDN and can significantly reduce the download time, esp. for a global audience. Here are some steps you can do immediately:\u003C\u002Fp>\u003Cp>Increase the TTL of the browser cache in \u003Cstrong>Caching \u003C\u002Fstrong>section. This helps clients to cache your files for a longer duration. One year is the recommended setting here.\u003C\u002Fp>\u003Cfigure class=\"kg-card kg-image-card\">\u003Cimg src=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-8.34.04.png\" class=\"kg-image\" alt loading=\"lazy\" width=\"2000\" height=\"468\" srcset=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw600\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-8.34.04.png 600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1000\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-8.34.04.png 1000w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1600\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-8.34.04.png 1600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-8.34.04.png 2094w\" sizes=\"(min-width: 720px) 720px\">\u003C\u002Ffigure>\u003Cp>Set a page rule to match all static assets. By default, Cloudflare caches only those static assets with \u003Ca href=\"https:\u002F\u002Fdevelopers.cloudflare.com\u002Fcache\u002Fabout\u002Fdefault-cache-behavior\u002F#default-cached-file-extensions\">listed extensions\u003C\u002Fa>. Create a Page Rule for your assets to cache everything.\u003C\u002Fp>\u003Cfigure class=\"kg-card kg-image-card\">\u003Cimg src=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-8.36.00-1.png\" class=\"kg-image\" alt loading=\"lazy\" width=\"1614\" height=\"498\" srcset=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw600\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-8.36.00-1.png 600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1000\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-8.36.00-1.png 1000w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1600\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-8.36.00-1.png 1600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-8.36.00-1.png 1614w\" sizes=\"(min-width: 720px) 720px\">\u003C\u002Ffigure>\u003Ch4 id=\"performance\">Performance\u003C\u002Fh4>\u003Cp>Enable Auto Minify for your resources. Everything in the output bundle of Nuxt.js is minified by default, but there could be some 3rd party resources on your site which need optimization. It's good to keep this setting enabled.\u003C\u002Fp>\u003Cfigure class=\"kg-card kg-image-card\">\u003Cimg src=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-9.13.41.png\" class=\"kg-image\" alt loading=\"lazy\" width=\"2000\" height=\"515\" srcset=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw600\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-9.13.41.png 600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1000\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-9.13.41.png 1000w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1600\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-9.13.41.png 1600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-9.13.41.png 2090w\" sizes=\"(min-width: 720px) 720px\">\u003C\u002Ffigure>\u003Cp>Enable Brotli compression to reduce the amount of data that needs to be transferred over the network.\u003C\u002Fp>\u003Cfigure class=\"kg-card kg-image-card\">\u003Cimg src=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-8.46.54.png\" class=\"kg-image\" alt loading=\"lazy\" width=\"2000\" height=\"357\" srcset=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw600\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-8.46.54.png 600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1000\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-8.46.54.png 1000w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1600\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-8.46.54.png 1600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-8.46.54.png 2108w\" sizes=\"(min-width: 720px) 720px\">\u003C\u002Ffigure>\u003Cp>Enable HTTP\u002F2 prioritization, which allows for better parallelization of resource downloads. HTTP\u002F2 is enabled by default.\u003C\u002Fp>\u003Cfigure class=\"kg-card kg-image-card\">\u003Cimg src=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-8.49.38.png\" class=\"kg-image\" alt loading=\"lazy\" width=\"2000\" height=\"405\" srcset=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw600\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-8.49.38.png 600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1000\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-8.49.38.png 1000w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1600\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-8.49.38.png 1600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-8.49.38.png 2102w\" sizes=\"(min-width: 720px) 720px\">\u003C\u002Ffigure>\u003Cp>⚠️ \u003Cstrong>Caution:\u003C\u002Fstrong> You can also enable Mirage and Rocket Loader™. These two settings can speed up the initial page load on desktop and mobile but use them carefully because they might trigger unexpected behavior - like completely blank pages in some browsers, etc. This setting works best for us.\u003C\u002Fp>\u003Cfigure class=\"kg-card kg-image-card\">\u003Cimg src=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-8.50.25.png\" class=\"kg-image\" alt loading=\"lazy\" width=\"2000\" height=\"888\" srcset=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw600\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-8.50.25.png 600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1000\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-8.50.25.png 1000w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1600\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-8.50.25.png 1600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-8.50.25.png 2118w\" sizes=\"(min-width: 720px) 720px\">\u003C\u002Ffigure>\u003Ch3 id=\"optimize-css\">Optimize CSS \u003Ca class=\"markdownit-header-anchor\" href=\"#optimize-css\">🔗\u003C\u002Fa>\u003C\u002Fh3>\u003Ch4 id=\"use-utility-first-css-framework\">Use utility-first CSS framework\u003C\u002Fh4>\u003Cp>We use \u003Ca href=\"https:\u002F\u002Ftailwindcss.com\">Tailwind CSS\u003C\u002Fa> in our entire codebase. Libraries like Tailwind have a considerable performance benefit since you don't need to write new CSS rules. You can leverage the use of already available classes, and your stylesheets don't grow much over time.\u003C\u002Fp>\u003Cp>Tailwind keeps your output CSS lean by generating only those utilities you actually use. It isn't bloating your stylesheets with all available utils like, i.e., \u003Ca href=\"https:\u002F\u002Fgetbootstrap.com\">Bootstrap\u003C\u002Fa> does.\u003C\u002Fp>\u003Ch4 id=\"purge-unused-css\">Purge unused CSS\u003C\u002Fh4>\u003Cp>\u003Ca href=\"https:\u002F\u002Fpurgecss.com\">Purge CSS\u003C\u002Fa> is another great option to keep your stylesheet size low and increase the PageSpeed score. It's especially useful if you're importing some 3rd party stylesheets and would like to use only what's required. The configuration usually takes a bit of tinkering to get right, but it's definitely worth the effort.\u003C\u002Fp>\u003Ch3 id=\"optimize-your-js-bundle\">Optimize your JS Bundle \u003Ca class=\"markdownit-header-anchor\" href=\"#optimize-your-js-bundle\">🔗\u003C\u002Fa>\u003C\u002Fh3>\u003Cp>To quickly inspect your dependency tree and identify some potential issues, you can run the \u003Ccode>nuxt build\u003C\u002Fcode>  command with  \u003Ccode>--analyze\u003C\u002Fcode> flag.\u003Cbr>Add this command to the \u003Ccode>\"scripts\"\u003C\u002Fcode> section in your \u003Ccode>package.json\u003C\u002Fcode> and run it as \u003Ccode>npm run analyze\u003C\u002Fcode>\u003C\u002Fp>\u003Cpre>\u003Ccode class=\"language-json\">\"scripts\":{\n  \"analyze\": \"nuxt build --analyze\",\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cfigure class=\"kg-card kg-image-card\">\u003Cimg src=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-14.09.52.png\" class=\"kg-image\" alt loading=\"lazy\" width=\"2000\" height=\"1284\" srcset=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw600\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-14.09.52.png 600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1000\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-14.09.52.png 1000w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1600\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-14.09.52.png 1600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw2400\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-14.09.52.png 2400w\" sizes=\"(min-width: 720px) 720px\">\u003C\u002Ffigure>\u003Ch4 id=\"split-chunks-using-webpack\">Split chunks using webpack\u003C\u002Fh4>\u003Cp>Thanks to HTTP\u002F2, loading multiple smaller bundles is faster than loading one file. Try to add \u003Ccode>maxSize\u003C\u002Fcode>  to your \u003Ccode>nuxt.config.js\u003C\u002Fcode> to force webpack to split your bundle into smaller chunks. But don't try to set the number too low, as too many small bundles will still create an overhead. You will need to experiment a bit to find the balance.\u003C\u002Fp>\u003Cpre>\u003Ccode class=\"language-js\">optimization: {\n  splitChunks: {\n    maxSize: 300000\n  }\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Ch4 id=\"check-your-website-dependencies\">Check your website dependencies\u003C\u002Fh4>\u003Cp>Review what libraries you import into your code and how big they are. Do you really need the 30kB library just to get a more comfortable way to set a cookie? Is there a more lightweight alternative solution? Remember that these numbers quickly add up.\u003C\u002Fp>\u003Cp>When adding a library, make sure that the library uses ES6 modules. Webpack, the bundler that comes with Nuxt.js, can create highly optimized bundles for each page and can tree-shake the unused code.\u003C\u002Fp>\u003Cp>If the library, on the other hand, uses CommonJS or UMD modules, it gets embedded directly in the  \u003Ccode>chunk-vendors.js\u003C\u002Fcode>  bundle together with the rest of your dependencies and has to be downloaded on all pages! And trust me, \u003Ccode>chunk-vendors.js\u003C\u002Fcode> can get really chunky. 🤭\u003C\u002Fp>\u003Cfigure class=\"kg-card kg-image-card\">\u003Cimg src=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-14.53.33.png\" class=\"kg-image\" alt loading=\"lazy\" width=\"2000\" height=\"1750\" srcset=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw600\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-14.53.33.png 600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1000\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-14.53.33.png 1000w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1600\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-14.53.33.png 1600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw2400\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-14.53.33.png 2400w\" sizes=\"(min-width: 720px) 720px\">\u003C\u002Ffigure>\u003Cp>A good example is a popular \u003Ca href=\"https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Flodash\">lodash\u003C\u002Fa> library, which isn't tree-shakeable in the original version. (It's intended to be used in Node.js environments). However, there's an ES6 version called \u003Ca href=\"https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Flodash-es\">lodash-es\u003C\u002Fa> which should be used by default together with all modern bundlers.\u003C\u002Fp>\u003Ch4 id=\"use-async-components\">Use async components\u003C\u002Fh4>\u003Cp>In Nuxt.js, there's a simple way to tell Webpack where it should split your code. It's called \"async components\", and it uses special \u003Ccode>import\u003C\u002Fcode> syntax.\u003C\u002Fp>\u003Cpre>\u003Ccode class=\"language-js\">const MyComponent = await import('@\u002Fmodules\u002Fcommon\u002FMyComponent.vue');\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>You can then register the component in your .vue file as usual.\u003C\u002Fp>\u003Cpre>\u003Ccode class=\"language-js\">components: {\n MyComponent,\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>Whenever webpack encounters an async component in your code, it creates a separate chunk for your component and its dependencies. The bundle is later loaded asynchronously on demand. This way don't saves only bandwidth, but you also reduce the time for parsing and evaluating your code during the initial page load.\u003C\u002Fp>\u003Cp>This technique is especially handy for loading interaction-heavy components or animations.\u003C\u002Fp>\u003Ch3 id=\"externalize-and-lazy-load-all-svgs\">Externalize and lazy-load all SVGs \u003Ca class=\"markdownit-header-anchor\" href=\"#externalize-and-lazy-load-all-svgs\">🔗\u003C\u002Fa>\u003C\u002Fh3>\u003Cp>Loading external SVG icons while maintaining the flexibility of the format is \u003Ca href=\"https:\u002F\u002Fcss-tricks.com\u002Fusing-svg\u002F\">tricky\u003C\u002Fa>. After all, the only reliable method is to inline them directly into HTML. As you would expect, this can get quickly out of hand, and either your JS bundle or HTML size grows with every new icon.\u003C\u002Fp>\u003Cp>What if we stored the SVGs externally and injected them later with a script? Well, that's precisely what the \u003Ca href=\"https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Fexternal-svg-loader\">external-svg-loader\u003C\u002Fa> library does and what we're using in our reusable icon component.\u003C\u002Fp>\u003Cp>All icons are now stored on CDN and lazy-loaded when needed. Most of them are also cached locally, so they don't even have to be downloaded most of the time.\u003C\u002Fp>\u003Cfigure class=\"kg-card kg-image-card\">\u003Cimg src=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-21.23.09.png\" class=\"kg-image\" alt loading=\"lazy\" width=\"2000\" height=\"776\" srcset=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw600\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-21.23.09.png 600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1000\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-21.23.09.png 1000w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1600\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-21.23.09.png 1600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-21.23.09.png 2210w\" sizes=\"(min-width: 720px) 720px\">\u003C\u002Ffigure>\u003Ch3 id=\"optimize-all-images\">Optimize all images \u003Ca class=\"markdownit-header-anchor\" href=\"#optimize-all-images\">🔗\u003C\u002Fa>\u003C\u002Fh3>\u003Cp>Image optimization would make for another whole article by itself, as there are simply too many things you can do. However, you can reach for the low-hanging fruit by setting some default configuration for all images and optimizing from there.\u003C\u002Fp>\u003Cp>Make sure to try out the \u003Ca href=\"https:\u002F\u002Fimage.nuxtjs.org\">NuxtImage\u003C\u002Fa> module. It has plenty of options and even an integrated library for image optimization during build time.\u003C\u002Fp>\u003Cp>We like to store all images on our website externally for easier management as close as possible to the actual content. We use \u003Ca href=\"https:\u002F\u002Fdirectus.io\">Directus CMS\u003C\u002Fa>, which includes its own asset management with integrated image optimizations, but any other CMS should work similarly.\u003C\u002Fp>\u003Cp>Using custom providers, we can simply plug in the Directus image optimization options into the nuxt-image module. A simplified code for the provider looks like the following:\u003C\u002Fp>\u003Cpre>\u003Ccode class=\"language-ts\">export function getImage(src, {}, { options}) {\n\nconst { transform } = options;\n\nconst query = '?key=quality-90&amp;format=webp';\n\nreturn {\n\n  url: withoutTrailingSlash(joinURL(fileUrl(src), query))\n\n};\n\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>You need to register the provider in your \u003Ccode>nuxt.config.js\u003C\u002Fcode>:\u003C\u002Fp>\u003Cpre>\u003Ccode class=\"language-js\">image: {\n  providers: {\n    directus: {\n      name: 'directus',\n      provider: '~plugins\u002Fdirectus-image-provider' \n  }\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>Then, for every image in your codebase, simply use \u003Ccode>&lt;nuxt-image&gt;\u003C\u002Fcode> instead of \u003Ccode>&lt;img&gt;\u003C\u002Fcode>.\u003C\u002Fp>\u003Cp>A considerable advantage of this approach is that you can quickly apply it globally.\u003C\u002Fp>\u003Cp>TIP: Make sure to check all module options, as it allows you to specify different image sizes on different screens easily and further improve performance on mobile.\u003C\u002Fp>\u003Ch3 id=\"delay-nuxtjs-hydration\">Delay Nuxt.js hydration \u003Ca class=\"markdownit-header-anchor\" href=\"#delay-nuxtjs-hydration\">🔗\u003C\u002Fa>\u003C\u002Fh3>\u003Cp>To understand this optimization, it's important to know how the Nuxt.js page lifecycle works.\u003C\u002Fp>\u003Cp>In statically generated mode, a fully rendered static HTML page is returned.\u003Cbr>During the initial phase, Nuxt.js attaches itself to the DOM and hydrates the static page with javascript making it fully interactive. (For more info, see the \u003Ca href=\"https:\u002F\u002Fnuxtjs.org\u002Fdocs\u002Fconcepts\u002Fnuxt-lifecycle\">Nuxt lifecycle diagram\u003C\u002Fa>).\u003C\u002Fp>\u003Cp>Thanks to this approach, you can disable JavaScript, and the page will still load all of its pre-rendered content.\u003C\u002Fp>\u003Cp>The \u003Ca href=\"https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Fnuxt-delay-hydration\">@nuxt\u002Fdelay-hydration\u003C\u002Fa> module takes advantage of this concept and delays this process after the page loads and sits idle. This drastically reduces your page blocking time and offloads the unnecessary scripts for later when needed.\u003C\u002Fp>\u003Cp>The module is highly configurable and works in various modes, where you can delay everything, only non-critical code, or allows you to pick portions of your page manually.\u003C\u002Fp>\u003Ch2 id=\"the-result\">💯 The Result \u003Ca class=\"markdownit-header-anchor\" href=\"#the-result\">🔗\u003C\u002Fa>\u003C\u002Fh2>\u003Cp>After deploying all these changes on our website, the PageSpeed score jumped from \u003Cstrong>23\u003C\u002Fstrong> to \u003Cstrong>97\u003C\u002Fstrong>. To ensure that the numbers won't drop over time, I'd recommend setting up the \u003Ca href=\"https:\u002F\u002Funlighthouse.dev\">https:\u002F\u002Funlighthouse.dev\u003C\u002Fa> checks for your CI\u002FCD.\u003C\u002Fp>\u003Cfigure class=\"kg-card kg-image-card\">\u003Cimg src=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2022\u002F07\u002FScreenshot-2022-07-03-at-18.32.22.png\" class=\"kg-image\" alt loading=\"lazy\" width=\"2000\" height=\"1495\" srcset=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw600\u002F2022\u002F07\u002FScreenshot-2022-07-03-at-18.32.22.png 600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1000\u002F2022\u002F07\u002FScreenshot-2022-07-03-at-18.32.22.png 1000w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1600\u002F2022\u002F07\u002FScreenshot-2022-07-03-at-18.32.22.png 1600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2022\u002F07\u002FScreenshot-2022-07-03-at-18.32.22.png 2012w\" sizes=\"(min-width: 720px) 720px\">\u003C\u002Ffigure>\u003Ch2 id=\"conclusion\">✔️ Conclusion \u003Ca class=\"markdownit-header-anchor\" href=\"#conclusion\">🔗\u003C\u002Fa>\u003C\u002Fh2>\u003Cp>Note that this is not an exhaustive list of options. Some steps might be more effective than what's listed here, depending on your context. Make sure to check the \u003Ca href=\"https:\u002F\u002Fgooglechrome.github.io\u002Flighthouse\u002Fscorecalc\u002F\">Lighthouse Score calculator\u003C\u002Fa> to identify what parameters have the most significant impact on your score and what areas you should focus on.\u003C\u002Fp>\u003Cp>Do you know some other tricks and tips to improve the PageSpeed scores with Nuxt.js? Share your thoughts in the comments!\u003C\u002Fp>\u003Ch2 id=\"do-you-love-nuxt\">🙌 Do you love Nuxt? \u003Ca class=\"markdownit-header-anchor\" href=\"#do-you-love-nuxt\">🔗\u003C\u002Fa>\u003C\u002Fh2>\u003Cp>Use the coupon \"\u003Cstrong>lovenuxt\u003C\u002Fstrong>\" during your Localazy plan checkout and get a 25% discount on your purchase.\u003C\u002Fp>\u003Cp>Discount applies to the \u003Ca href=\"https:\u002F\u002Flocalazy.com\u002Ftiers\u002Fprofessional\">Professional\u003C\u002Fa> plan. Enjoy!\u003C\u002Fp>",{"id":107,"status":5,"created_on":1918,"modified_on":1919,"icon":1920,"header":1921,"description":1922,"button_label":1923,"link":1924},"2022-03-17T12:23:03.000Z","2024-11-26T17:03:11.000Z","member","Need help with your site's multilingual SEO? 🌍","Contact us and let's talk about your needs. Localazy professionals will provide all the services and tools you need to break through to new global markets.","Contact us","term\u002Fmultilingual-search-engine-optimization",{"slug":1860,"id":1853,"uuid":1926,"title":1859,"html":1927,"comment_id":1853,"feature_image":1863,"featured":162,"visibility":1928,"email_recipient_filter":1929,"created_at":1930,"updated_at":1861,"published_at":1862,"custom_excerpt":1915,"codeinjection_head":1931,"codeinjection_foot":10,"custom_template":10,"canonical_url":10,"authors":1932,"tags":1939,"primary_author":1989,"primary_tag":1990,"url":1991,"excerpt":1915,"reading_time":57,"access":162,"send_email_when_published":160,"og_image":10,"og_title":10,"og_description":10,"twitter_image":10,"twitter_title":10,"twitter_description":10,"meta_title":10,"meta_description":10,"email_subject":10,"frontmatter":10,"dictionary":1874,"cta":1917,"plainTags":1864},"18b1b76e-9ad9-44b4-8ec3-f4d4c4422343","\u003Cp>Google's \u003Ca href=\"https:\u002F\u002Fpagespeed.web.dev\">PageSpeed Insights\u003C\u002Fa> has become the standard for measuring and evaluating website performance. The method can measure your website performance and loading times on a scale of 0-100, with an overview of the key metrics and recommendations for improving them. \u003C\u002Fp>\u003Ch2 id=\"%F0%9F%A4%94-why-is-the-pagespeed-score-so-important\">🤔 Why is the PageSpeed score so important?\u003C\u002Fh2>\u003Cp>Naturally, there's been a lot of discussion about the score's usefulness and how it reflects real user experience. \u003C\u002Fp>\u003Cp>We have to admit we found out that the total score of your page matters a lot the hard way when our ad budgets didn't allocate as effectively as before due to a sudden drop in the scores. But there is more to it than ad costs, and the three main reasons are listed below.\u003C\u002Fp>\u003Ch3 id=\"1-seo\">1. SEO\u003C\u002Fh3>\u003Cp>\u003Ca href=\"https:\u002F\u002Fdevelopers.google.com\u002Fsearch\u002Fblog\u002F2010\u002F04\u002Fusing-site-speed-in-web-search-ranking\">Since 2010\u003C\u002Fa>, PageSpeed has been a ranking factor for desktop searches. \u003Ca href=\"https:\u002F\u002Fdeveloper.chrome.com\u002Fblog\u002Fsearch-ads-speed\u002F#speed-is-now-used-as-a-ranking-factor-for-mobile-searches\">In 2018\u003C\u002Fa>, Google announced that it would also be considered in mobile searches. This decision makes the SERP ranking directly tied to the PageSpeed performance and makes it an integral part of search engine optimization.\u003C\u002Fp>\u003Ch3 id=\"2-ux\">2. UX\u003C\u002Fh3>\u003Cp>Faster websites mean better user experience and happier users in general. There are numerous studies on how page speed affects revenue (\u003Ca href=\"https:\u002F\u002Fwww2.deloitte.com\u002Fcontent\u002Fdam\u002FDeloitte\u002Fie\u002FDocuments\u002FConsulting\u002FMilliseconds_Make_Millions_report.pdf\">this\u003C\u002Fa> or \u003Ca href=\"https:\u002F\u002Fnitropack.io\u002Fblog\u002Fpost\u002Fweb-performance-matters-case-studies\">this\u003C\u002Fa>).\u003Cbr>Making websites faster simply benefits both the user and the business.\u003C\u002Fp>\u003Cp>To fight the objections on how accurately the PageSpeed score represents the perceived performance, Google now measures the actual performance on user devices and uses an aggregated score over a certain period of time.\u003C\u002Fp>\u003Ch3 id=\"3-ads\">3. Ads\u003C\u002Fh3>\u003Cp>\u003Ca href=\"https:\u002F\u002Fdeveloper.chrome.com\u002Fblog\u002Fsearch-ads-speed\u002F#the-mobile-speed-score-for-ads-landing-pages\">In the same announcement in 2018\u003C\u002Fa>, Google also mentioned that page speed is now another factor for determining QualityScore for both desktop and mobile landing pages. This means that pages with low scores will now decrease your ad CTR and also increase CPC! \u003C\u002Fp>\u003Cp>Competitors' ads are then more likely to be displayed instead of yours, which is something nobody wants. So simply put, to optimize your marketing budget, optimize your PageSpeed as well.\u003C\u002Fp>\u003Ch2 id=\"%F0%9F%93%90-our-current-site-architecture\">📐 Our Current Site Architecture\u003C\u002Fh2>\u003Cp>As the title suggests, we use the \u003Ca href=\"https:\u002F\u002Fnuxtjs.org\">Nuxt.js\u003C\u002Fa> framework for the whole public-facing website.\u003C\u002Fp>\u003Cp>Every page is built out of common components we share throughout our entire codebase and is also a core dependency of our app, plugins, etc. We use \u003Ca href=\"https:\u002F\u002Ftailwindcss.com\">Tailwind CSS\u003C\u002Fa> to speed up the development and create consistent visuals over the entire platform.\u003C\u002Fp>\u003Cp>The site content is then fetched from various sources, including the \u003Ca href=\"https:\u002F\u002Fdirectus.io\">Directus platform\u003C\u002Fa> and a \u003Ca href=\"https:\u002F\u002Fghost.org\">Ghost blog\u003C\u002Fa>.\u003C\u002Fp>\u003Cp>The whole site is deployed in the \u003Ca href=\"https:\u002F\u002Fnuxtjs.org\u002Fdocs\u002Fconcepts\u002Fstatic-site-generation\">static mode\u003C\u002Fa>, meaning all pages are pre-generated and served as static HTML files, so no server runtime is required. Everything is then loaded on multiple replicas, cached, and distributed through a \u003Ca href=\"https:\u002F\u002Fcloudflare.com\">Cloudflare CDN\u003C\u002Fa>, which makes the site incredibly lightweight and resilient, as it requires negligible computing resources.\u003C\u002Fp>\u003Ch2 id=\"%F0%9F%9A%A7-the-problem-with-the-setup\">🚧 The Problem With the Setup\u003C\u002Fh2>\u003Cp>Even though the site architecture looks very scalable and has the potential to serve millions of users daily, we weren't getting the expected results in terms of PageSpeed.\u003C\u002Fp>\u003Cp>The main identified problems were:\u003C\u002Fp>\u003Col>\u003Cli>The large size of the JS bundle (loaded and parsed), mainly due to 3rd party dependencies\u003C\u002Fli>\u003Cli>Large page size in total, including static resources\u003C\u002Fli>\u003Cli>Huge Render blocking time\u003C\u002Fli>\u003C\u002Fol>\u003Cfigure class=\"kg-card kg-image-card\">\u003Cimg src=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2022\u002F07\u002FScreenshot-2022-07-07-at-23.34.24.png\" class=\"kg-image\" alt loading=\"lazy\" width=\"1688\" height=\"1334\" srcset=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw600\u002F2022\u002F07\u002FScreenshot-2022-07-07-at-23.34.24.png 600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1000\u002F2022\u002F07\u002FScreenshot-2022-07-07-at-23.34.24.png 1000w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1600\u002F2022\u002F07\u002FScreenshot-2022-07-07-at-23.34.24.png 1600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2022\u002F07\u002FScreenshot-2022-07-07-at-23.34.24.png 1688w\" sizes=\"(min-width: 720px) 720px\">\u003C\u002Ffigure>\u003Ch2 id=\"%F0%9F%9A%80-the-solution\">🚀 The Solution\u003C\u002Fh2>\u003Cp>There are many articles about web performance in the wild, giving you advice on how to speed up your site, but when it comes to practical examples, these are rare. Therefore, I decided present the complete list of steps we took to improve our PageSpeed score. Some are specific to our architecture described earlier and should be adapted to your setup.\u003C\u002Fp>\u003Ch3 id=\"check-your-cloudflare-configuration\">Check your Cloudflare configuration\u003C\u002Fh3>\u003Cp>Many of you probably use Cloudflare to manage your DNS configuration. It's a fantastic service with many options to improve your website's security, resiliency, and performance. However, most sites simply do the initial configuration and rarely touch it later. We're on a paid plan, so we might have more settings available, but most of these options are also available in their free tier.\u003C\u002Fp>\u003Cfigure class=\"kg-card kg-image-card\">\u003Cimg src=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2022\u002F07\u002Fa31z4Ke_460s-5.jpg\" class=\"kg-image\" alt loading=\"lazy\" width=\"459\" height=\"395\">\u003C\u002Ffigure>\u003Ch4 id=\"caching\">Caching\u003C\u002Fh4>\u003Cp>Cloudflare's caching is a powerful service. It distributes your resources over a CDN and can significantly reduce the download time, esp. for a global audience. Here are some steps you can do immediately:\u003C\u002Fp>\u003Cp>Increase the TTL of the browser cache in \u003Cstrong>Caching \u003C\u002Fstrong>section. This helps clients to cache your files for a longer duration. One year is the recommended setting here.\u003C\u002Fp>\u003Cfigure class=\"kg-card kg-image-card\">\u003Cimg src=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-8.34.04.png\" class=\"kg-image\" alt loading=\"lazy\" width=\"2000\" height=\"468\" srcset=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw600\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-8.34.04.png 600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1000\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-8.34.04.png 1000w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1600\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-8.34.04.png 1600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-8.34.04.png 2094w\" sizes=\"(min-width: 720px) 720px\">\u003C\u002Ffigure>\u003Cp>Set a page rule to match all static assets. By default, Cloudflare caches only those static assets with \u003Ca href=\"https:\u002F\u002Fdevelopers.cloudflare.com\u002Fcache\u002Fabout\u002Fdefault-cache-behavior\u002F#default-cached-file-extensions\">listed extensions\u003C\u002Fa>. Create a Page Rule for your assets to cache everything.\u003C\u002Fp>\u003Cfigure class=\"kg-card kg-image-card\">\u003Cimg src=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-8.36.00-1.png\" class=\"kg-image\" alt loading=\"lazy\" width=\"1614\" height=\"498\" srcset=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw600\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-8.36.00-1.png 600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1000\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-8.36.00-1.png 1000w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1600\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-8.36.00-1.png 1600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-8.36.00-1.png 1614w\" sizes=\"(min-width: 720px) 720px\">\u003C\u002Ffigure>\u003Ch4 id=\"performance\">Performance\u003C\u002Fh4>\u003Cp>Enable Auto Minify for your resources. Everything in the output bundle of Nuxt.js is minified by default, but there could be some 3rd party resources on your site which need optimization. It's good to keep this setting enabled.\u003C\u002Fp>\u003Cfigure class=\"kg-card kg-image-card\">\u003Cimg src=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-9.13.41.png\" class=\"kg-image\" alt loading=\"lazy\" width=\"2000\" height=\"515\" srcset=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw600\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-9.13.41.png 600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1000\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-9.13.41.png 1000w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1600\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-9.13.41.png 1600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-9.13.41.png 2090w\" sizes=\"(min-width: 720px) 720px\">\u003C\u002Ffigure>\u003Cp>Enable Brotli compression to reduce the amount of data that needs to be transferred over the network.\u003C\u002Fp>\u003Cfigure class=\"kg-card kg-image-card\">\u003Cimg src=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-8.46.54.png\" class=\"kg-image\" alt loading=\"lazy\" width=\"2000\" height=\"357\" srcset=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw600\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-8.46.54.png 600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1000\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-8.46.54.png 1000w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1600\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-8.46.54.png 1600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-8.46.54.png 2108w\" sizes=\"(min-width: 720px) 720px\">\u003C\u002Ffigure>\u003Cp>Enable HTTP\u002F2 prioritization, which allows for better parallelization of resource downloads. HTTP\u002F2 is enabled by default.\u003C\u002Fp>\u003Cfigure class=\"kg-card kg-image-card\">\u003Cimg src=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-8.49.38.png\" class=\"kg-image\" alt loading=\"lazy\" width=\"2000\" height=\"405\" srcset=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw600\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-8.49.38.png 600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1000\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-8.49.38.png 1000w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1600\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-8.49.38.png 1600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-8.49.38.png 2102w\" sizes=\"(min-width: 720px) 720px\">\u003C\u002Ffigure>\u003Cp>⚠️ \u003Cstrong>Caution:\u003C\u002Fstrong> You can also enable Mirage and Rocket Loader™. These two settings can speed up the initial page load on desktop and mobile but use them carefully because they might trigger unexpected behavior - like completely blank pages in some browsers, etc. This setting works best for us.\u003C\u002Fp>\u003Cfigure class=\"kg-card kg-image-card\">\u003Cimg src=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-8.50.25.png\" class=\"kg-image\" alt loading=\"lazy\" width=\"2000\" height=\"888\" srcset=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw600\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-8.50.25.png 600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1000\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-8.50.25.png 1000w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1600\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-8.50.25.png 1600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-8.50.25.png 2118w\" sizes=\"(min-width: 720px) 720px\">\u003C\u002Ffigure>\u003Ch3 id=\"optimize-css\">Optimize CSS\u003C\u002Fh3>\u003Ch4 id=\"use-utility-first-css-framework\">Use utility-first CSS framework\u003C\u002Fh4>\u003Cp>We use \u003Ca href=\"https:\u002F\u002Ftailwindcss.com\">Tailwind CSS\u003C\u002Fa> in our entire codebase. Libraries like Tailwind have a considerable performance benefit since you don't need to write new CSS rules. You can leverage the use of already available classes, and your stylesheets don't grow much over time.\u003C\u002Fp>\u003Cp>Tailwind keeps your output CSS lean by generating only those utilities you actually use. It isn't bloating your stylesheets with all available utils like, i.e., \u003Ca href=\"https:\u002F\u002Fgetbootstrap.com\">Bootstrap\u003C\u002Fa> does.\u003C\u002Fp>\u003Ch4 id=\"purge-unused-css\">Purge unused CSS\u003C\u002Fh4>\u003Cp>\u003Ca href=\"https:\u002F\u002Fpurgecss.com\">Purge CSS\u003C\u002Fa> is another great option to keep your stylesheet size low and increase the PageSpeed score. It's especially useful if you're importing some 3rd party stylesheets and would like to use only what's required. The configuration usually takes a bit of tinkering to get right, but it's definitely worth the effort.\u003C\u002Fp>\u003Ch3 id=\"optimize-your-js-bundle\">Optimize your JS Bundle\u003C\u002Fh3>\u003Cp>To quickly inspect your dependency tree and identify some potential issues, you can run the \u003Ccode>nuxt build\u003C\u002Fcode>  command with  \u003Ccode>--analyze\u003C\u002Fcode> flag.\u003Cbr>Add this command to the \u003Ccode>\"scripts\"\u003C\u002Fcode> section in your \u003Ccode>package.json\u003C\u002Fcode> and run it as \u003Ccode>npm run analyze\u003C\u002Fcode>\u003C\u002Fp>\u003Cpre>\u003Ccode class=\"language-json\">\"scripts\":{\n  \"analyze\": \"nuxt build --analyze\",\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cfigure class=\"kg-card kg-image-card\">\u003Cimg src=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-14.09.52.png\" class=\"kg-image\" alt loading=\"lazy\" width=\"2000\" height=\"1284\" srcset=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw600\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-14.09.52.png 600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1000\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-14.09.52.png 1000w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1600\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-14.09.52.png 1600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw2400\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-14.09.52.png 2400w\" sizes=\"(min-width: 720px) 720px\">\u003C\u002Ffigure>\u003Ch4 id=\"split-chunks-using-webpack\">Split chunks using webpack\u003C\u002Fh4>\u003Cp>Thanks to HTTP\u002F2, loading multiple smaller bundles is faster than loading one file. Try to add \u003Ccode>maxSize\u003C\u002Fcode>  to your \u003Ccode>nuxt.config.js\u003C\u002Fcode> to force webpack to split your bundle into smaller chunks. But don't try to set the number too low, as too many small bundles will still create an overhead. You will need to experiment a bit to find the balance.\u003C\u002Fp>\u003Cpre>\u003Ccode class=\"language-js\">optimization: {\n  splitChunks: {\n    maxSize: 300000\n  }\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Ch4 id=\"check-your-website-dependencies\">Check your website dependencies\u003C\u002Fh4>\u003Cp>Review what libraries you import into your code and how big they are. Do you really need the 30kB library just to get a more comfortable way to set a cookie? Is there a more lightweight alternative solution? Remember that these numbers quickly add up.\u003C\u002Fp>\u003Cp>When adding a library, make sure that the library uses ES6 modules. Webpack, the bundler that comes with Nuxt.js, can create highly optimized bundles for each page and can tree-shake the unused code.\u003C\u002Fp>\u003Cp>If the library, on the other hand, uses CommonJS or UMD modules, it gets embedded directly in the  \u003Ccode>chunk-vendors.js\u003C\u002Fcode>  bundle together with the rest of your dependencies and has to be downloaded on all pages! And trust me, \u003Ccode>chunk-vendors.js\u003C\u002Fcode> can get really chunky. 🤭\u003C\u002Fp>\u003Cfigure class=\"kg-card kg-image-card\">\u003Cimg src=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-14.53.33.png\" class=\"kg-image\" alt loading=\"lazy\" width=\"2000\" height=\"1750\" srcset=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw600\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-14.53.33.png 600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1000\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-14.53.33.png 1000w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1600\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-14.53.33.png 1600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw2400\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-14.53.33.png 2400w\" sizes=\"(min-width: 720px) 720px\">\u003C\u002Ffigure>\u003Cp>A good example is a popular \u003Ca href=\"https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Flodash\">lodash\u003C\u002Fa> library, which isn't tree-shakeable in the original version. (It's intended to be used in Node.js environments). However, there's an ES6 version called \u003Ca href=\"https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Flodash-es\">lodash-es\u003C\u002Fa> which should be used by default together with all modern bundlers.\u003C\u002Fp>\u003Ch4 id=\"use-async-components\">Use async components\u003C\u002Fh4>\u003Cp>In Nuxt.js, there's a simple way to tell Webpack where it should split your code. It's called \"async components\", and it uses special \u003Ccode>import\u003C\u002Fcode> syntax.\u003C\u002Fp>\u003Cpre>\u003Ccode class=\"language-js\">const MyComponent = await import('@\u002Fmodules\u002Fcommon\u002FMyComponent.vue');\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>You can then register the component in your .vue file as usual.\u003C\u002Fp>\u003Cpre>\u003Ccode class=\"language-js\">components: {\n MyComponent,\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>Whenever webpack encounters an async component in your code, it creates a separate chunk for your component and its dependencies. The bundle is later loaded asynchronously on demand. This way don't saves only bandwidth, but you also reduce the time for parsing and evaluating your code during the initial page load.\u003C\u002Fp>\u003Cp>This technique is especially handy for loading interaction-heavy components or animations.\u003C\u002Fp>\u003Ch3 id=\"externalize-and-lazy-load-all-svgs\">Externalize and lazy-load all SVGs\u003C\u002Fh3>\u003Cp>Loading external SVG icons while maintaining the flexibility of the format is \u003Ca href=\"https:\u002F\u002Fcss-tricks.com\u002Fusing-svg\u002F\">tricky\u003C\u002Fa>. After all, the only reliable method is to inline them directly into HTML. As you would expect, this can get quickly out of hand, and either your JS bundle or HTML size grows with every new icon.\u003C\u002Fp>\u003Cp>What if we stored the SVGs externally and injected them later with a script? Well, that's precisely what the \u003Ca href=\"https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Fexternal-svg-loader\">external-svg-loader\u003C\u002Fa> library does and what we're using in our reusable icon component.\u003C\u002Fp>\u003Cp>All icons are now stored on CDN and lazy-loaded when needed. Most of them are also cached locally, so they don't even have to be downloaded most of the time.\u003C\u002Fp>\u003Cfigure class=\"kg-card kg-image-card\">\u003Cimg src=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-21.23.09.png\" class=\"kg-image\" alt loading=\"lazy\" width=\"2000\" height=\"776\" srcset=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw600\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-21.23.09.png 600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1000\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-21.23.09.png 1000w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1600\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-21.23.09.png 1600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2022\u002F07\u002FScreenshot-2022-07-06-at-21.23.09.png 2210w\" sizes=\"(min-width: 720px) 720px\">\u003C\u002Ffigure>\u003Ch3 id=\"optimize-all-images\">Optimize all images\u003C\u002Fh3>\u003Cp>Image optimization would make for another whole article by itself, as there are simply too many things you can do. However, you can reach for the low-hanging fruit by setting some default configuration for all images and optimizing from there.\u003C\u002Fp>\u003Cp>Make sure to try out the \u003Ca href=\"https:\u002F\u002Fimage.nuxtjs.org\">NuxtImage\u003C\u002Fa> module. It has plenty of options and even an integrated library for image optimization during build time.\u003C\u002Fp>\u003Cp>We like to store all images on our website externally for easier management as close as possible to the actual content. We use \u003Ca href=\"https:\u002F\u002Fdirectus.io\">Directus CMS\u003C\u002Fa>, which includes its own asset management with integrated image optimizations, but any other CMS should work similarly.\u003C\u002Fp>\u003Cp>Using custom providers, we can simply plug in the Directus image optimization options into the nuxt-image module. A simplified code for the provider looks like the following:\u003C\u002Fp>\u003Cpre>\u003Ccode class=\"language-ts\">export function getImage(src, {}, { options}) {\n\nconst { transform } = options;\n\nconst query = '?key=quality-90&amp;format=webp';\n\nreturn {\n\n  url: withoutTrailingSlash(joinURL(fileUrl(src), query))\n\n};\n\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>You need to register the provider in your \u003Ccode>nuxt.config.js\u003C\u002Fcode>:\u003C\u002Fp>\u003Cpre>\u003Ccode class=\"language-js\">image: {\n  providers: {\n    directus: {\n      name: 'directus',\n      provider: '~plugins\u002Fdirectus-image-provider' \n  }\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>Then, for every image in your codebase, simply use \u003Ccode>&lt;nuxt-image&gt;\u003C\u002Fcode> instead of \u003Ccode>&lt;img&gt;\u003C\u002Fcode>.\u003C\u002Fp>\u003Cp>A considerable advantage of this approach is that you can quickly apply it globally.\u003C\u002Fp>\u003Cp>TIP: Make sure to check all module options, as it allows you to specify different image sizes on different screens easily and further improve performance on mobile.\u003C\u002Fp>\u003Ch3 id=\"delay-nuxtjs-hydration\">Delay Nuxt.js hydration\u003C\u002Fh3>\u003Cp>To understand this optimization, it's important to know how the Nuxt.js page lifecycle works.\u003C\u002Fp>\u003Cp>In statically generated mode, a fully rendered static HTML page is returned.\u003Cbr>During the initial phase, Nuxt.js attaches itself to the DOM and hydrates the static page with javascript making it fully interactive. (For more info, see the \u003Ca href=\"https:\u002F\u002Fnuxtjs.org\u002Fdocs\u002Fconcepts\u002Fnuxt-lifecycle\">Nuxt lifecycle diagram\u003C\u002Fa>).\u003C\u002Fp>\u003Cp>Thanks to this approach, you can disable JavaScript, and the page will still load all of its pre-rendered content.\u003C\u002Fp>\u003Cp>The \u003Ca href=\"https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Fnuxt-delay-hydration\">@nuxt\u002Fdelay-hydration\u003C\u002Fa> module takes advantage of this concept and delays this process after the page loads and sits idle. This drastically reduces your page blocking time and offloads the unnecessary scripts for later when needed.\u003C\u002Fp>\u003Cp>The module is highly configurable and works in various modes, where you can delay everything, only non-critical code, or allows you to pick portions of your page manually.\u003C\u002Fp>\u003Ch2 id=\"%F0%9F%92%AF-the-result\">💯 The Result\u003C\u002Fh2>\u003Cp>After deploying all these changes on our website, the PageSpeed score jumped from \u003Cstrong>23\u003C\u002Fstrong> to \u003Cstrong>97\u003C\u002Fstrong>. To ensure that the numbers won't drop over time, I'd recommend setting up the \u003Ca href=\"https:\u002F\u002Funlighthouse.dev\">https:\u002F\u002Funlighthouse.dev\u003C\u002Fa> checks for your CI\u002FCD.\u003C\u002Fp>\u003Cfigure class=\"kg-card kg-image-card\">\u003Cimg src=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2022\u002F07\u002FScreenshot-2022-07-03-at-18.32.22.png\" class=\"kg-image\" alt loading=\"lazy\" width=\"2000\" height=\"1495\" srcset=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw600\u002F2022\u002F07\u002FScreenshot-2022-07-03-at-18.32.22.png 600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1000\u002F2022\u002F07\u002FScreenshot-2022-07-03-at-18.32.22.png 1000w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1600\u002F2022\u002F07\u002FScreenshot-2022-07-03-at-18.32.22.png 1600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2022\u002F07\u002FScreenshot-2022-07-03-at-18.32.22.png 2012w\" sizes=\"(min-width: 720px) 720px\">\u003C\u002Ffigure>\u003Ch2 id=\"%E2%9C%94%EF%B8%8F-conclusion\">✔️ Conclusion\u003C\u002Fh2>\u003Cp>Note that this is not an exhaustive list of options. Some steps might be more effective than what's listed here, depending on your context. Make sure to check the \u003Ca href=\"https:\u002F\u002Fgooglechrome.github.io\u002Flighthouse\u002Fscorecalc\u002F\">Lighthouse Score calculator\u003C\u002Fa> to identify what parameters have the most significant impact on your score and what areas you should focus on.\u003C\u002Fp>\u003Cp>Do you know some other tricks and tips to improve the PageSpeed scores with Nuxt.js? Share your thoughts in the comments!\u003C\u002Fp>\u003Ch2 id=\"%F0%9F%99%8C-do-you-love-nuxt\">🙌 Do you love Nuxt?\u003C\u002Fh2>\u003Cp>Use the coupon \"\u003Cstrong>lovenuxt\u003C\u002Fstrong>\" during your Localazy plan checkout and get a 25% discount on your purchase.\u003C\u002Fp>\u003Cp>Discount applies to the \u003Ca href=\"https:\u002F\u002Flocalazy.com\u002Ftiers\u002Fprofessional\">Professional\u003C\u002Fa> plan. Enjoy!\u003C\u002Fp>","public","none","2022-07-06T21:13:44.000+02:00","https:\u002F\u002Fintercom.help\u002Flocalazy-test\u002Fen\u002Farticles\u002F7917136-how-to-improve-the-pagespeed-score-of-your-nuxt-js-website-in-6-steps",[1933],{"id":1855,"name":1856,"slug":1857,"profile_image":1858,"cover_image":10,"bio":1934,"website":1935,"location":1936,"facebook":10,"twitter":1937,"meta_title":10,"meta_description":10,"url":1938},"I'm Jan, PM @Localazy. I enjoy getting things done with a passion and an eye for detail. My mission is to listen, learn, and then create an outstanding product our users will love.","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fxbilek18\u002F","Katowice, Poland","@honzabilek4","https:\u002F\u002Fghost.localazy.com\u002Fauthor\u002Fjan-bilek\u002F",[1940,1943,1948,1951,1956,1959,1964,1969,1974,1979,1984],{"id":1941,"name":1866,"slug":1867,"description":1866,"feature_image":10,"visibility":1928,"og_image":10,"og_title":10,"og_description":10,"twitter_image":10,"twitter_title":10,"twitter_description":10,"meta_title":10,"meta_description":10,"codeinjection_head":10,"codeinjection_foot":10,"canonical_url":10,"accent_color":10,"url":1942},"60a37fc7cf7b6a0001d1f0ea","https:\u002F\u002Fghost.localazy.com\u002Ftag\u002Fdevtips\u002F",{"id":1944,"name":1945,"slug":1946,"description":1922,"feature_image":10,"visibility":1928,"og_image":10,"og_title":10,"og_description":10,"twitter_image":10,"twitter_title":10,"twitter_description":10,"meta_title":10,"meta_description":10,"codeinjection_head":10,"codeinjection_foot":10,"canonical_url":10,"accent_color":10,"url":1947},"619d1c0fdf4bcb00010bbfce","[CTA] Need help with multilingual SEO of your website? 🌍","cta-20","https:\u002F\u002Fghost.localazy.com\u002Ftag\u002Fcta-20\u002F",{"id":1949,"name":1869,"slug":1870,"description":1869,"feature_image":10,"visibility":1928,"og_image":10,"og_title":10,"og_description":10,"twitter_image":10,"twitter_title":10,"twitter_description":10,"meta_title":10,"meta_description":10,"codeinjection_head":10,"codeinjection_foot":10,"canonical_url":10,"accent_color":10,"url":1950},"60a37fc7cf7b6a0001d1f0fa","https:\u002F\u002Fghost.localazy.com\u002Ftag\u002Fhowto\u002F",{"id":1952,"name":1953,"slug":1954,"description":10,"feature_image":10,"visibility":1928,"og_image":10,"og_title":10,"og_description":10,"twitter_image":10,"twitter_title":10,"twitter_description":10,"meta_title":10,"meta_description":10,"codeinjection_head":10,"codeinjection_foot":10,"canonical_url":10,"accent_color":10,"url":1955},"60fffb486f8ebe0001bd8ddd","[COMSHARE]","comshare","https:\u002F\u002Fghost.localazy.com\u002Ftag\u002Fcomshare\u002F",{"id":1957,"name":1872,"slug":1873,"description":1872,"feature_image":10,"visibility":1928,"og_image":10,"og_title":10,"og_description":10,"twitter_image":10,"twitter_title":10,"twitter_description":10,"meta_title":10,"meta_description":10,"codeinjection_head":10,"codeinjection_foot":10,"canonical_url":10,"accent_color":10,"url":1958},"60a37fc7cf7b6a0001d1f0ee","https:\u002F\u002Fghost.localazy.com\u002Ftag\u002Fnuxtjs\u002F",{"id":1960,"name":1961,"slug":1962,"description":1879,"feature_image":10,"visibility":1928,"og_image":10,"og_title":10,"og_description":10,"twitter_image":10,"twitter_title":10,"twitter_description":10,"meta_title":10,"meta_description":10,"codeinjection_head":10,"codeinjection_foot":10,"canonical_url":10,"accent_color":10,"url":1963},"60a37fc7cf7b6a0001d1f155","[DICT] CI","term-56","https:\u002F\u002Fghost.localazy.com\u002Ftag\u002Fterm-56\u002F",{"id":1965,"name":1966,"slug":1967,"description":1889,"feature_image":10,"visibility":1928,"og_image":10,"og_title":10,"og_description":10,"twitter_image":10,"twitter_title":10,"twitter_description":10,"meta_title":10,"meta_description":10,"codeinjection_head":10,"codeinjection_foot":10,"canonical_url":10,"accent_color":10,"url":1968},"60a37fc7cf7b6a0001d1f168","[DICT] JavaScript","term-75","https:\u002F\u002Fghost.localazy.com\u002Ftag\u002Fterm-75\u002F",{"id":1970,"name":1971,"slug":1972,"description":1906,"feature_image":10,"visibility":1928,"og_image":10,"og_title":10,"og_description":10,"twitter_image":10,"twitter_title":10,"twitter_description":10,"meta_title":10,"meta_description":10,"codeinjection_head":10,"codeinjection_foot":10,"canonical_url":10,"accent_color":10,"url":1973},"60a37fc7cf7b6a0001d1f16d","[DICT] NodeJS","term-80","https:\u002F\u002Fghost.localazy.com\u002Ftag\u002Fterm-80\u002F",{"id":1975,"name":1976,"slug":1977,"description":1912,"feature_image":10,"visibility":1928,"og_image":10,"og_title":10,"og_description":10,"twitter_image":10,"twitter_title":10,"twitter_description":10,"meta_title":10,"meta_description":10,"codeinjection_head":10,"codeinjection_foot":10,"canonical_url":10,"accent_color":10,"url":1978},"60a37fc7cf7b6a0001d1f16a","[DICT] Nuxt","term-77","https:\u002F\u002Fghost.localazy.com\u002Ftag\u002Fterm-77\u002F",{"id":1980,"name":1981,"slug":1982,"description":10,"feature_image":10,"visibility":1928,"og_image":10,"og_title":10,"og_description":10,"twitter_image":10,"twitter_title":10,"twitter_description":10,"meta_title":10,"meta_description":10,"codeinjection_head":10,"codeinjection_foot":10,"canonical_url":10,"accent_color":10,"url":1983},"61a0daffdf4bcb00010bc50c","[SYNDICATE]","syndicate","https:\u002F\u002Fghost.localazy.com\u002Ftag\u002Fsyndicate\u002F",{"id":1985,"name":1986,"slug":1987,"description":10,"feature_image":10,"visibility":1928,"og_image":10,"og_title":10,"og_description":10,"twitter_image":10,"twitter_title":10,"twitter_description":10,"meta_title":10,"meta_description":10,"codeinjection_head":10,"codeinjection_foot":10,"canonical_url":10,"accent_color":10,"url":1988},"62e39b7cfe956a0001088cd3","[AD] Nuxt3","ad-3","https:\u002F\u002Fghost.localazy.com\u002Ftag\u002Fad-3\u002F",{"id":1855,"name":1856,"slug":1857,"profile_image":1858,"cover_image":10,"bio":1934,"website":1935,"location":1936,"facebook":10,"twitter":1937,"meta_title":10,"meta_description":10,"url":1938},{"id":1941,"name":1866,"slug":1867,"description":1866,"feature_image":10,"visibility":1928,"og_image":10,"og_title":10,"og_description":10,"twitter_image":10,"twitter_title":10,"twitter_description":10,"meta_title":10,"meta_description":10,"codeinjection_head":10,"codeinjection_foot":10,"canonical_url":10,"accent_color":10,"url":1942},"https:\u002F\u002Fghost.localazy.com\u002Fhow-improve-pagespeed-score-nuxt-js-website-6-steps\u002F",[1993,2013,2032],{"id":1994,"owner":1995,"created_by":10,"sort":10,"title":2000,"slug":2001,"modified_on":877,"created_on":2002,"pinned":160,"badge":10,"priority":1824,"main_image":2003,"status":5,"tags":2004,"dictionary":2012,"reading_time":1835,"excerpt":-1,"og_title":877,"og_description":877,"og_image":877},"6372308e04709100019374c9",{"id":1996,"first_name":1997,"last_name":877,"slug":1998,"avatar":1999},"6061ffdd2a37af00016d413d","Daniel Charvát","daniel-charvat","https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2023\u002F12\u002Fdan-1.png","Figma in Localization: Figma as a Source of Truth","figma-series-figma-as-source-of-truth","2023-02-08T20:43:55.000+01:00","https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2023\u002F01\u002FFigma-Series-3.png",[2005,2007,2008,2009],{"id":2006,"created_on":1828,"status":5,"label":671,"slug":670,"on_index_page":162},6183,{"id":451,"created_on":1828,"status":5,"label":1869,"slug":1870,"on_index_page":160},{"id":451,"created_on":1828,"status":5,"label":1866,"slug":1867,"on_index_page":162},{"id":411,"created_on":1828,"status":5,"label":2010,"slug":2011,"on_index_page":160},"Design","design",[],{"id":2014,"owner":2015,"created_by":10,"sort":10,"title":2020,"slug":2021,"modified_on":877,"created_on":2022,"pinned":160,"badge":10,"priority":1824,"main_image":2023,"status":5,"tags":2024,"dictionary":2031,"reading_time":1835,"excerpt":-1,"og_title":877,"og_description":877,"og_image":877},"67cec8e634f1ce00011a908c",{"id":2016,"first_name":2017,"last_name":877,"slug":2018,"avatar":2019},"60a37d0bcf7b6a0001d1eca7","Localazy Team","localazy-team","https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2022\u002F11\u002FLogo-Gradient.png","A beginner's guide to pluralization in software localization","pluralization-in-software-localization-beginners-guide","2025-07-21T08:47:00.000+02:00","https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2025\u002F06\u002FPluralization-2.png",[2025,2027,2028],{"id":451,"created_on":1828,"status":5,"label":2026,"slug":408,"on_index_page":160},"Plurals",{"id":451,"created_on":1828,"status":5,"label":1866,"slug":1867,"on_index_page":162},{"id":451,"created_on":1828,"status":5,"label":2029,"slug":2030,"on_index_page":160},"Guide","guide",[],{"id":2033,"owner":2034,"created_by":10,"sort":10,"title":2039,"slug":2040,"modified_on":877,"created_on":2041,"pinned":160,"badge":10,"priority":1824,"main_image":2042,"status":5,"tags":2043,"dictionary":2050,"reading_time":1835,"excerpt":-1,"og_title":877,"og_description":877,"og_image":877},"63dd1bf30470910001939f8b",{"id":2035,"first_name":2036,"last_name":877,"slug":2037,"avatar":2038},"61dc4e87df4bcb00010bd508","Mary Okosun","mary-okosun","https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2023\u002F12\u002Fokosun.png","The ultimate guide to Localazy API","the-ultimate-guide-to-localazy-api","2023-03-15T10:00:00.000+01:00","https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2023\u002F03\u002Fultimate-localazy-api-guide.png",[2044,2045,2048,2049],{"id":451,"created_on":1828,"status":5,"label":771,"slug":775,"on_index_page":160},{"id":451,"created_on":1828,"status":5,"label":2046,"slug":2047,"on_index_page":160},"Automated Localization","automated-localization",{"id":451,"created_on":1828,"status":5,"label":1869,"slug":1870,"on_index_page":160},{"id":451,"created_on":1828,"status":5,"label":2029,"slug":2030,"on_index_page":160},[],{"id":25,"sort":10,"created_on":2052,"name":2053,"cta_link":2054,"banner_image":2055},"2022-07-29T08:33:12.000Z","Nuxt3","https:\u002F\u002Flocalazy.com\u002Fregister?ref=blog-banner-nuxt",{"id":2056},"1c552da1-991e-4aba-87f6-37a8c4f43b1d"]