{"avg":{"avg_bot_access":91.6,"avg_rendering":93,"avg_structure":35.3,"avg_schema":9.4,"avg_tech_stack":63.4,"avg_overall":56.8},"domain":{"domain":"lingco.io","crawled_at":"2026-03-13T11:15:40.72022Z","gptbot_allowed":true,"claudebot_allowed":true,"ccbot_allowed":true,"google_extended_allowed":true,"googlebot_allowed":true,"raw_text_length":1799,"rendered_text_length":1894,"ghost_ratio":0.05000000074505806,"rendering_type":"SSR","word_count":277,"li_count":0,"tr_count":0,"th_count":0,"structure_score":0,"has_org_schema":false,"has_product_schema":false,"schema_count":0,"tech_stack":"nextjs","server_header":"Vercel","cdn":"vercel","http_status":200,"load_time_ms":531,"total_html_bytes":102783,"useful_text_bytes":1799,"token_bloat_ratio":57.099998474121094,"images_total":23,"images_with_alt":18,"multimodal_pct":78,"tdm_reservation":false,"has_noai_tag":false,"script_bytes":50594,"has_breadcrumb_schema":false,"has_faq_schema":false,"has_article_schema":false,"has_website_schema":false,"page_title":"Live Outside the Book | Lingco","meta_description":"Delivering the next generation of language learning to schools.","logo_url":"https://lingco.io/favicon.ico","crawl_blocked":false,"ai_readiness_score":62,"sub_bot_access":100,"sub_rendering":99,"sub_structure":0,"sub_schema":0,"sub_tech_stack":70,"extractability_score":27,"crawl_cost_score":45,"crawl_cost_label":"Medium","blocklist_risk":0,"blocklist_risk_label":"None","acri_score":25,"acri_extractability":70,"acri_semantic_structure":20,"acri_content_integrity":13,"acri_retrieval_robustness":10,"acri_grade":"F","h1_text":"Live Outside the Book","h2_texts":"This is how | Unlock your creativity.","tranco_rank":193910,"category":"saas","title_length":30,"meta_desc_length":63,"has_canonical":false,"canonical_mismatch":false,"has_meta_viewport":true,"h1_count":1,"h2_count":2,"h2_before_h1":false,"has_hreflang":false,"has_noindex":false,"has_lang_attr":true,"lang_attr":"en","og_title":"Lingco - Next Generation Language Learning for Schools","og_description":"Discover Lingco, the innovative platform revolutionizing language education with adaptive learning and comprehensive tools for educators and students.","og_image":"https://lingco.io/class%20URL%20%7B%20%20#context%20=%20new%20URLContext();%20%20#searchParams;%20%20#searchParamsModified;%20%20static%20{%20%20%20%20setURLSearchParamsModified%20=%20(obj)%20=%3E%20{%20%20%20%20%20%20/%20When%20URLSearchParams%20changes,%20we%20lazily%20update%20URL%20on%20the%20next%20read/write%20for%20performance.%20%20%20%20%20%20obj.#searchParamsModified%20=%20true;%20%20%20%20%20%20/%20If%20URL%20has%20an%20existing%20search,%20remove%20it%20without%20cascading%20back%20to%20URLSearchParams.%20%20%20%20%20%20/%20Do%20this%20to%20avoid%20any%20internal%20confusion%20about%20whether%20URLSearchParams%20or%20URL%20is%20up-to-date.%20%20%20%20%20%20if%20(obj.#context.hasSearch)%20{%20%20%20%20%20%20%20%20obj.#updateContext(bindingUrl.update(obj.#context.href,%20updateActions.kSearch,%20''));%20%20%20%20%20%20}%20%20%20%20};%20%20}%20%20constructor(input,%20base%20=%20undefined,%20parseSymbol%20=%20undefined)%20{%20%20%20%20markTransferMode(this,%20false,%20false);%20%20%20%20if%20(arguments.length%20===%200)%20{%20%20%20%20%20%20throw%20new%20ERR_MISSING_ARGS('url');%20%20%20%20}%20%20%20%20/%20StringPrototypeToWellFormed%20is%20not%20needed.%20%20%20%20input%20=%20%60${input}%60;%20%20%20%20if%20(base%20!==%20undefined)%20{%20%20%20%20%20%20base%20=%20%60${base}%60;%20%20%20%20}%20%20%20%20let%20href;%20%20%20%20if%20(arguments.length%20%3C%203)%20{%20%20%20%20%20%20href%20=%20bindingUrl.parse(input,%20base,%20true);%20%20%20%20}%20else%20{%20%20%20%20%20%20const%20raiseException%20=%20parseSymbol%20!==%20kParseURLSymbol;%20%20%20%20%20%20const%20interpretAsWindowsPath%20=%20parseSymbol%20===%20kCreateURLFromWindowsPathSymbol;%20%20%20%20%20%20const%20pathToFileURL%20=%20interpretAsWindowsPath%20||%20(parseSymbol%20===%20kCreateURLFromPosixPathSymbol);%20%20%20%20%20%20href%20=%20pathToFileURL%20?%20%20%20%20%20%20%20%20bindingUrl.pathToFileURL(input,%20interpretAsWindowsPath,%20base)%20:%20%20%20%20%20%20%20%20bindingUrl.parse(input,%20base,%20raiseException);%20%20%20%20}%20%20%20%20if%20(href)%20{%20%20%20%20%20%20this.#updateContext(href);%20%20%20%20}%20%20}%20%20static%20parse(input,%20base%20=%20undefined)%20{%20%20%20%20if%20(arguments.length%20===%200)%20{%20%20%20%20%20%20throw%20new%20ERR_MISSING_ARGS('url');%20%20%20%20}%20%20%20%20const%20parsedURLObject%20=%20new%20URL(input,%20base,%20kParseURLSymbol);%20%20%20%20return%20parsedURLObject.href%20?%20parsedURLObject%20:%20null;%20%20}%20%20[inspect.custom](depth,%20opts)%20{%20%20%20%20if%20(typeof%20depth%20===%20'number'%20\u0026\u0026%20depth%20%3C%200)%20%20%20%20%20%20return%20this;%20%20%20%20const%20constructor%20=%20getConstructorOf(this)%20||%20URL;%20%20%20%20const%20obj%20=%20{%20__proto__:%20{%20constructor%20}%20};%20%20%20%20obj.href%20=%20this.href;%20%20%20%20obj.origin%20=%20this.origin;%20%20%20%20obj.protocol%20=%20this.protocol;%20%20%20%20obj.username%20=%20this.username;%20%20%20%20obj.password%20=%20this.password;%20%20%20%20obj.host%20=%20this.host;%20%20%20%20obj.hostname%20=%20this.hostname;%20%20%20%20obj.port%20=%20this.port;%20%20%20%20obj.pathname%20=%20this.pathname;%20%20%20%20obj.search%20=%20this.search;%20%20%20%20obj.searchParams%20=%20this.searchParams;%20%20%20%20obj.hash%20=%20this.hash;%20%20%20%20if%20(opts.showHidden)%20{%20%20%20%20%20%20obj[contextForInspect]%20=%20this.#context;%20%20%20%20}%20%20%20%20return%20%60${constructor.name}%20${inspect(obj,%20opts)}%60;%20%20}%20%20#getSearchFromContext()%20{%20%20%20%20if%20(!this.#context.hasSearch)%20return%20'';%20%20%20%20let%20endsAt%20=%20this.#context.href.length;%20%20%20%20if%20(this.#context.hasHash)%20endsAt%20=%20this.#context.hash_start;%20%20%20%20if%20(endsAt%20-%20this.#context.search_start%20%3C=%201)%20return%20'';%20%20%20%20return%20StringPrototypeSlice(this.#context.href,%20this.#context.search_start,%20endsAt);%20%20}%20%20#getSearchFromParams()%20{%20%20%20%20if%20(!this.#searchParams?.size)%20return%20'';%20%20%20%20return%20%60?${this.#searchParams}%60;%20%20}%20%20#ensureSearchParamsUpdated()%20{%20%20%20%20/%20URL%20is%20updated%20lazily%20to%20greatly%20improve%20performance%20when%20URLSearchParams%20is%20updated%20repeatedly.%20%20%20%20/%20If%20URLSearchParams%20has%20been%20modified,%20reflect%20that%20back%20into%20URL,%20without%20cascading%20back.%20%20%20%20if%20(this.#searchParamsModified)%20{%20%20%20%20%20%20this.#searchParamsModified%20=%20false;%20%20%20%20%20%20this.#updateContext(bindingUrl.update(this.#context.href,%20updateActions.kSearch,%20this.#getSearchFromParams()));%20%20%20%20}%20%20}%20%20/**%20%20%20*%20Update%20the%20internal%20context%20state%20for%20URL.%20%20%20*%20@param%20{string}%20href%20New%20href%20string%20from%20%60bindingUrl.update%60.%20%20%20*%20@param%20{boolean}%20[shouldUpdateSearchParams]%20If%20the%20update%20has%20potential%20to%20update%20search%20params%20(href/search).%20%20%20*/%20%20#updateContext(href,%20shouldUpdateSearchParams%20=%20false)%20{%20%20%20%20const%20previousSearch%20=%20shouldUpdateSearchParams%20\u0026\u0026%20this.#searchParams%20\u0026\u0026%20%20%20%20%20%20(this.#searchParamsModified%20?%20this.#getSearchFromParams()%20:%20this.#getSearchFromContext());%20%20%20%20this.#context.href%20=%20href;%20%20%20%20const%20{%20%20%20%20%20%200:%20protocol_end,%20%20%20%20%20%201:%20username_end,%20%20%20%20%20%202:%20host_start,%20%20%20%20%20%203:%20host_end,%20%20%20%20%20%204:%20port,%20%20%20%20%20%205:%20pathname_start,%20%20%20%20%20%206:%20search_start,%20%20%20%20%20%207:%20hash_start,%20%20%20%20%20%208:%20scheme_type,%20%20%20%20}%20=%20bindingUrl.urlComponents;%20%20%20%20this.#context.protocol_end%20=%20protocol_end;%20%20%20%20this.#context.username_end%20=%20username_end;%20%20%20%20this.#context.host_start%20=%20host_start;%20%20%20%20this.#context.host_end%20=%20host_end;%20%20%20%20this.#context.port%20=%20port;%20%20%20%20this.#context.pathname_start%20=%20pathname_start;%20%20%20%20this.#context.search_start%20=%20search_start;%20%20%20%20this.#context.hash_start%20=%20hash_start;%20%20%20%20this.#context.scheme_type%20=%20scheme_type;%20%20%20%20if%20(this.#searchParams)%20{%20%20%20%20%20%20/%20If%20the%20search%20string%20has%20updated,%20URL%20becomes%20the%20source%20of%20truth,%20and%20we%20update%20URLSearchParams.%20%20%20%20%20%20/%20Only%20do%20this%20when%20we're%20expecting%20it%20to%20have%20changed,%20otherwise%20a%20change%20to%20hash%20etc.%20%20%20%20%20%20/%20would%20incorrectly%20compare%20the%20URLSearchParams%20state%20to%20the%20empty%20URL%20search%20state.%20%20%20%20%20%20if%20(shouldUpdateSearchParams)%20{%20%20%20%20%20%20%20%20const%20currentSearch%20=%20this.#getSearchFromContext();%20%20%20%20%20%20%20%20if%20(previousSearch%20!==%20currentSearch)%20{%20%20%20%20%20%20%20%20%20%20setURLSearchParams(this.#searchParams,%20currentSearch);%20%20%20%20%20%20%20%20%20%20this.#searchParamsModified%20=%20false;%20%20%20%20%20%20%20%20}%20%20%20%20%20%20}%20%20%20%20%20%20/%20If%20we%20have%20a%20URLSearchParams,%20ensure%20that%20URL%20is%20up-to-date%20with%20any%20modification%20to%20it.%20%20%20%20%20%20this.#ensureSearchParamsUpdated();%20%20%20%20}%20%20}%20%20toString()%20{%20%20%20%20/%20Updates%20to%20URLSearchParams%20are%20lazily%20propagated%20to%20URL,%20so%20we%20need%20to%20check%20we're%20in%20sync.%20%20%20%20this.#ensureSearchParamsUpdated();%20%20%20%20return%20this.#context.href;%20%20}%20%20get%20href()%20{%20%20%20%20/%20Updates%20to%20URLSearchParams%20are%20lazily%20propagated%20to%20URL,%20so%20we%20need%20to%20check%20we're%20in%20sync.%20%20%20%20this.#ensureSearchParamsUpdated();%20%20%20%20return%20this.#context.href;%20%20}%20%20set%20href(value)%20{%20%20%20%20value%20=%20%60${value}%60;%20%20%20%20const%20href%20=%20bindingUrl.update(this.#context.href,%20updateActions.kHref,%20value);%20%20%20%20if%20(!href)%20{%20throw%20new%20ERR_INVALID_URL(value);%20}%20%20%20%20this.#updateContext(href,%20true);%20%20}%20%20/%20readonly%20%20get%20origin()%20{%20%20%20%20const%20protocol%20=%20StringPrototypeSlice(this.#context.href,%200,%20this.#context.protocol_end);%20%20%20%20/%20Check%20if%20scheme_type%20is%20not%20%60NOT_SPECIAL%60%20%20%20%20if%20(this.#context.scheme_type%20!==%201)%20{%20%20%20%20%20%20/%20Check%20if%20scheme_type%20is%20%60FILE%60%20%20%20%20%20%20if%20(this.#context.scheme_type%20===%206)%20{%20%20%20%20%20%20%20%20return%20'null';%20%20%20%20%20%20}%20%20%20%20%20%20return%20%60${protocol}/${this.host}%60;%20%20%20%20}%20%20%20%20if%20(protocol%20===%20'blob:')%20{%20%20%20%20%20%20const%20path%20=%20this.pathname;%20%20%20%20%20%20if%20(path.length%20%3E%200)%20{%20%20%20%20%20%20%20%20try%20{%20%20%20%20%20%20%20%20%20%20const%20out%20=%20new%20URL(path);%20%20%20%20%20%20%20%20%20%20/%20Only%20return%20origin%20of%20scheme%20is%20%60http%60%20or%20%60https%60%20%20%20%20%20%20%20%20%20%20/%20Otherwise%20return%20a%20new%20opaque%20origin%20(null).%20%20%20%20%20%20%20%20%20%20if%20(out.#context.scheme_type%20===%200%20||%20out.#context.scheme_type%20===%202)%20{%20%20%20%20%20%20%20%20%20%20%20%20return%20%60${out.protocol}/${out.host}%60;%20%20%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20}%20catch%20{%20%20%20%20%20%20%20%20%20%20/%20Do%20nothing.%20%20%20%20%20%20%20%20}%20%20%20%20%20%20}%20%20%20%20}%20%20%20%20return%20'null';%20%20}%20%20get%20protocol()%20{%20%20%20%20return%20StringPrototypeSlice(this.#context.href,%200,%20this.#context.protocol_end);%20%20}%20%20set%20protocol(value)%20{%20%20%20%20const%20href%20=%20bindingUrl.update(this.#context.href,%20updateActions.kProtocol,%20%60${value}%60);%20%20%20%20if%20(href)%20{%20%20%20%20%20%20this.#updateContext(href);%20%20%20%20}%20%20}%20%20get%20username()%20{%20%20%20%20if%20(this.#context.protocol_end%20+%202%20%3C%20this.#context.username_end)%20{%20%20%20%20%20%20return%20StringPrototypeSlice(this.#context.href,%20this.#context.protocol_end%20+%202,%20this.#context.username_end);%20%20%20%20}%20%20%20%20return%20'';%20%20}%20%20set%20username(value)%20{%20%20%20%20const%20href%20=%20bindingUrl.update(this.#context.href,%20updateActions.kUsername,%20%60${value}%60);%20%20%20%20if%20(href)%20{%20%20%20%20%20%20this.#updateContext(href);%20%20%20%20}%20%20}%20%20get%20password()%20{%20%20%20%20if%20(this.#context.host_start%20-%20this.#context.username_end%20%3E%200)%20{%20%20%20%20%20%20return%20StringPrototypeSlice(this.#context.href,%20this.#context.username_end%20+%201,%20this.#context.host_start);%20%20%20%20}%20%20%20%20return%20'';%20%20}%20%20set%20password(value)%20{%20%20%20%20const%20href%20=%20bindingUrl.update(this.#context.href,%20updateActions.kPassword,%20%60${value}%60);%20%20%20%20if%20(href)%20{%20%20%20%20%20%20this.#updateContext(href);%20%20%20%20}%20%20}%20%20get%20host()%20{%20%20%20%20let%20startsAt%20=%20this.#context.host_start;%20%20%20%20if%20(this.#context.href[startsAt]%20===%20'@')%20{%20%20%20%20%20%20startsAt++;%20%20%20%20}%20%20%20%20/%20If%20we%20have%20an%20empty%20host,%20then%20the%20space%20between%20components.host_end%20and%20%20%20%20/%20components.pathname_start%20may%20be%20occupied%20by%20/.%20%20%20%20if%20(startsAt%20===%20this.#context.host_end)%20{%20%20%20%20%20%20return%20'';%20%20%20%20}%20%20%20%20return%20StringPrototypeSlice(this.#context.href,%20startsAt,%20this.#context.pathname_start);%20%20}%20%20set%20host(value)%20{%20%20%20%20const%20href%20=%20bindingUrl.update(this.#context.href,%20updateActions.kHost,%20%60${value}%60);%20%20%20%20if%20(href)%20{%20%20%20%20%20%20this.#updateContext(href);%20%20%20%20}%20%20}%20%20get%20hostname()%20{%20%20%20%20let%20startsAt%20=%20this.#context.host_start;%20%20%20%20/%20host_start%20might%20be%20%22@%22%20if%20the%20URL%20has%20credentials%20%20%20%20if%20(this.#context.href[startsAt]%20===%20'@')%20{%20%20%20%20%20%20startsAt++;%20%20%20%20}%20%20%20%20return%20StringPrototypeSlice(this.#context.href,%20startsAt,%20this.#context.host_end);%20%20}%20%20set%20hostname(value)%20{%20%20%20%20const%20href%20=%20bindingUrl.update(this.#context.href,%20updateActions.kHostname,%20%60${value}%60);%20%20%20%20if%20(href)%20{%20%20%20%20%20%20this.#updateContext(href);%20%20%20%20}%20%20}%20%20get%20port()%20{%20%20%20%20if%20(this.#context.hasPort)%20{%20%20%20%20%20%20return%20%60${this.#context.port}%60;%20%20%20%20}%20%20%20%20return%20'';%20%20}%20%20set%20port(value)%20{%20%20%20%20const%20href%20=%20bindingUrl.update(this.#context.href,%20updateActions.kPort,%20%60${value}%60);%20%20%20%20if%20(href)%20{%20%20%20%20%20%20this.#updateContext(href);%20%20%20%20}%20%20}%20%20get%20pathname()%20{%20%20%20%20let%20endsAt;%20%20%20%20if%20(this.#context.hasSearch)%20{%20%20%20%20%20%20endsAt%20=%20this.#context.search_start;%20%20%20%20}%20else%20if%20(this.#context.hasHash)%20{%20%20%20%20%20%20endsAt%20=%20this.#context.hash_start;%20%20%20%20}%20%20%20%20return%20StringPrototypeSlice(this.#context.href,%20this.#context.pathname_start,%20endsAt);%20%20}%20%20set%20pathname(value)%20{%20%20%20%20const%20href%20=%20bindingUrl.update(this.#context.href,%20updateActions.kPathname,%20%60${value}%60);%20%20%20%20if%20(href)%20{%20%20%20%20%20%20this.#updateContext(href);%20%20%20%20}%20%20}%20%20get%20search()%20{%20%20%20%20/%20Updates%20to%20URLSearchParams%20are%20lazily%20propagated%20to%20URL,%20so%20we%20need%20to%20check%20we're%20in%20sync.%20%20%20%20this.#ensureSearchParamsUpdated();%20%20%20%20return%20this.#getSearchFromContext();%20%20}%20%20set%20search(value)%20{%20%20%20%20const%20href%20=%20bindingUrl.update(this.#context.href,%20updateActions.kSearch,%20StringPrototypeToWellFormed(%60${value}%60));%20%20%20%20if%20(href)%20{%20%20%20%20%20%20this.#updateContext(href,%20true);%20%20%20%20}%20%20}%20%20/%20readonly%20%20get%20searchParams()%20{%20%20%20%20/%20Create%20URLSearchParams%20on%20demand%20to%20greatly%20improve%20the%20URL%20performance.%20%20%20%20if%20(this.#searchParams%20==%20null)%20{%20%20%20%20%20%20this.#searchParams%20=%20new%20URLSearchParams(this.#getSearchFromContext());%20%20%20%20%20%20setURLSearchParamsContext(this.#searchParams,%20this);%20%20%20%20%20%20this.#searchParamsModified%20=%20false;%20%20%20%20}%20%20%20%20return%20this.#searchParams;%20%20}%20%20get%20hash()%20{%20%20%20%20if%20(!this.#context.hasHash%20||%20(this.#context.href.length%20-%20this.#context.hash_start%20%3C=%201))%20{%20%20%20%20%20%20return%20'';%20%20%20%20}%20%20%20%20return%20StringPrototypeSlice(this.#context.href,%20this.#context.hash_start);%20%20}%20%20set%20hash(value)%20{%20%20%20%20const%20href%20=%20bindingUrl.update(this.#context.href,%20updateActions.kHash,%20%60${value}%60);%20%20%20%20if%20(href)%20{%20%20%20%20%20%20this.#updateContext(href);%20%20%20%20}%20%20}%20%20toJSON()%20{%20%20%20%20/%20Updates%20to%20URLSearchParams%20are%20lazily%20propagated%20to%20URL,%20so%20we%20need%20to%20check%20we're%20in%20sync.%20%20%20%20this.#ensureSearchParamsUpdated();%20%20%20%20return%20this.#context.href;%20%20}%20%20static%20canParse(url,%20base%20=%20undefined)%20{%20%20%20%20if%20(arguments.length%20===%200)%20{%20%20%20%20%20%20throw%20new%20ERR_MISSING_ARGS('url');%20%20%20%20}%20%20%20%20url%20=%20%60${url}%60;%20%20%20%20if%20(base%20!==%20undefined)%20{%20%20%20%20%20%20return%20bindingUrl.canParse(url,%20%60${base}%60);%20%20%20%20}%20%20%20%20/%20It%20is%20important%20to%20differentiate%20the%20canParse%20call%20statements%20%20%20%20/%20since%20they%20resolve%20into%20different%20v8%20fast%20api%20overloads.%20%20%20%20return%20bindingUrl.canParse(url);%20%20}}/og-image.png","twitter_card":"summary_large_image","ttfb_ms":531,"dom_node_count":257,"html_payload_kb":100.4,"has_hsts":true,"has_csp":false,"cache_control":"public, max-age=0, must-revalidate","sitemap_declared":false,"internal_links":13,"external_links":1,"tracker_scripts":0,"tracker_token_pct":0,"global_score":54,"seo_pillar":50,"geo_pillar":41,"perf_pillar":74,"arch_pillar":68,"data_tier":1,"ai_trust_score":0,"ai_trust_rank":245031,"ai_trust_percentile":0,"inbound_ai_links":0,"outbound_ai_links":2,"llm_analyzed":false},"percentile":51,"similar_domains":[{"domain":"historiska.se","acri_score":50,"ai_readiness_score":73,"tech_stack":"nextjs","category":"saas","token_bloat_ratio":70.69999694824219,"schema_count":1,"distance":8.329999542236328,"page_title":"Startsida - Historiska museet","h1_text":""},{"domain":"soundcloudaud.com","acri_score":50,"ai_readiness_score":69,"tech_stack":"nextjs","category":"saas","token_bloat_ratio":6.699999809265137,"schema_count":0,"distance":8.75,"page_title":"#1 SoundCloud Downloader | Convert Songs, Playlists, Tracks to MP3","h1_text":"SoundCloud MP3 Downloader"},{"domain":"medicalliance.global","acri_score":50,"ai_readiness_score":69,"tech_stack":"nextjs","category":"saas","token_bloat_ratio":2.700000047683716,"schema_count":0,"distance":8.75,"page_title":"Welcome","h1_text":"Welcome at MEDICAlliance and MEDICARE ASIA!"},{"domain":"manawa.com","acri_score":50,"ai_readiness_score":76,"tech_stack":"nextjs","category":"saas","token_bloat_ratio":114.0999984741211,"schema_count":1,"distance":9.25,"page_title":"Manawa - Book outdoor activities worldwide","h1_text":"Live unforgettable moments"},{"domain":"squareinsurance.in","acri_score":50,"ai_readiness_score":73,"tech_stack":"nextjs","category":"saas","token_bloat_ratio":6.300000190734863,"schema_count":1,"distance":9.25,"page_title":"Compare \u0026 Buy Insurance Policy Online - Car, Bike \u0026 Health","h1_text":"best insurance plans"}]}
