CINXE.COM

Understand JavaScript SEO Basics | Google Search Central  |  Documentation  |  Google for Developers

<!doctype html> <html lang="en" dir="ltr"> <head> <meta name="google-signin-client-id" content="721724668570-nbkv1cfusk7kk4eni4pjvepaus73b13t.apps.googleusercontent.com"> <meta name="google-signin-scope" content="profile email https://www.googleapis.com/auth/developerprofiles https://www.googleapis.com/auth/developerprofiles.award"> <meta property="og:site_name" content="Google for Developers"> <meta property="og:type" content="website"><meta name="theme-color" content="#fff"><meta charset="utf-8"> <meta content="IE=Edge" http-equiv="X-UA-Compatible"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="manifest" href="/_pwa/developers/manifest.json" crossorigin="use-credentials"> <link rel="preconnect" href="//www.gstatic.com" crossorigin> <link rel="preconnect" href="//fonts.gstatic.com" crossorigin> <link rel="preconnect" href="//fonts.googleapis.com" crossorigin> <link rel="preconnect" href="//apis.google.com" crossorigin> <link rel="preconnect" href="//www.google-analytics.com" crossorigin><link rel="stylesheet" href="//fonts.googleapis.com/css?family=Google+Sans:400,500|Roboto:400,400italic,500,500italic,700,700italic|Roboto+Mono:400,500,700&display=swap"> <link rel="stylesheet" href="//fonts.googleapis.com/css2?family=Material+Icons&family=Material+Symbols+Outlined&display=block"><link rel="stylesheet" href="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/developers/css/app.css"> <link rel="shortcut icon" href="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/developers/images/favicon-new.png"> <link rel="apple-touch-icon" href="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/developers/images/touchicon-180-new.png"><link rel="canonical" href="https://developers.google.com/search/docs/crawling-indexing/javascript/javascript-seo-basics"><link rel="search" type="application/opensearchdescription+xml" title="Google for Developers" href="https://developers.google.com/s/opensearch.xml"> <link rel="alternate" hreflang="en" href="https://developers.google.com/search/docs/crawling-indexing/javascript/javascript-seo-basics" /><link rel="alternate" hreflang="x-default" href="https://developers.google.com/search/docs/crawling-indexing/javascript/javascript-seo-basics" /><link rel="alternate" hreflang="ar" href="https://developers.google.com/search/docs/crawling-indexing/javascript/javascript-seo-basics?hl=ar" /><link rel="alternate" hreflang="zh-Hans" href="https://developers.google.com/search/docs/crawling-indexing/javascript/javascript-seo-basics?hl=zh-cn" /><link rel="alternate" hreflang="zh-Hant" href="https://developers.google.com/search/docs/crawling-indexing/javascript/javascript-seo-basics?hl=zh-tw" /><link rel="alternate" hreflang="fr" href="https://developers.google.com/search/docs/crawling-indexing/javascript/javascript-seo-basics?hl=fr" /><link rel="alternate" hreflang="de" href="https://developers.google.com/search/docs/crawling-indexing/javascript/javascript-seo-basics?hl=de" /><link rel="alternate" hreflang="hi" href="https://developers.google.com/search/docs/crawling-indexing/javascript/javascript-seo-basics?hl=hi" /><link rel="alternate" hreflang="id" href="https://developers.google.com/search/docs/crawling-indexing/javascript/javascript-seo-basics?hl=id" /><link rel="alternate" hreflang="it" href="https://developers.google.com/search/docs/crawling-indexing/javascript/javascript-seo-basics?hl=it" /><link rel="alternate" hreflang="ja" href="https://developers.google.com/search/docs/crawling-indexing/javascript/javascript-seo-basics?hl=ja" /><link rel="alternate" hreflang="ko" href="https://developers.google.com/search/docs/crawling-indexing/javascript/javascript-seo-basics?hl=ko" /><link rel="alternate" hreflang="pl" href="https://developers.google.com/search/docs/crawling-indexing/javascript/javascript-seo-basics?hl=pl" /><link rel="alternate" hreflang="pt-BR" href="https://developers.google.com/search/docs/crawling-indexing/javascript/javascript-seo-basics?hl=pt-br" /><link rel="alternate" hreflang="ru" href="https://developers.google.com/search/docs/crawling-indexing/javascript/javascript-seo-basics?hl=ru" /><link rel="alternate" hreflang="es" href="https://developers.google.com/search/docs/crawling-indexing/javascript/javascript-seo-basics?hl=es" /><link rel="alternate" hreflang="es-419" href="https://developers.google.com/search/docs/crawling-indexing/javascript/javascript-seo-basics?hl=es-419" /><link rel="alternate" hreflang="th" href="https://developers.google.com/search/docs/crawling-indexing/javascript/javascript-seo-basics?hl=th" /><link rel="alternate" hreflang="tr" href="https://developers.google.com/search/docs/crawling-indexing/javascript/javascript-seo-basics?hl=tr" /><link rel="alternate" hreflang="vi" href="https://developers.google.com/search/docs/crawling-indexing/javascript/javascript-seo-basics?hl=vi" /><title>Understand JavaScript SEO Basics | Google Search Central &nbsp;|&nbsp; Documentation &nbsp;|&nbsp; Google for Developers</title> <meta property="og:title" content="Understand JavaScript SEO Basics | Google Search Central &nbsp;|&nbsp; Documentation &nbsp;|&nbsp; Google for Developers"><meta name="description" content="Discover how Google Search processes JavaScript and explore best practices for improving JavaScript web apps for Google Search."> <meta property="og:description" content="Discover how Google Search processes JavaScript and explore best practices for improving JavaScript web apps for Google Search."><meta property="og:url" content="https://developers.google.com/search/docs/crawling-indexing/javascript/javascript-seo-basics"><meta property="og:image" content="https://developers.google.com/static/search/images/home-social-share-lockup.jpg"> <meta property="og:image:width" content="1200"> <meta property="og:image:height" content="675"><meta property="og:locale" content="en"><meta name="twitter:card" content="summary_large_image"><script type="application/ld+json"> { "@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [{ "@type": "ListItem", "position": 1, "name": "Search Central", "item": "https://developers.google.com/search" },{ "@type": "ListItem", "position": 2, "name": "Documentation", "item": "https://developers.google.com/search/docs" },{ "@type": "ListItem", "position": 3, "name": "Understand JavaScript SEO Basics | Google Search Central", "item": "https://developers.google.com/search/docs/crawling-indexing/javascript/javascript-seo-basics" }] } </script> <meta name="apple-itunes-app" content="app-id=1512522198"> <link rel="stylesheet" href="/extras.css"></head> <body class="" template="page" theme="white" type="lcat" layout="docs" concierge='closed' display-toc pending> <devsite-progress type="indeterminate" id="app-progress"></devsite-progress> <section class="devsite-wrapper"> <devsite-cookie-notification-bar></devsite-cookie-notification-bar><devsite-header role="banner"> <div class="devsite-header--inner nocontent"> <div class="devsite-top-logo-row-wrapper-wrapper"> <div class="devsite-top-logo-row-wrapper"> <div class="devsite-top-logo-row"> <button type="button" id="devsite-hamburger-menu" class="devsite-header-icon-button button-flat material-icons gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Navigation menu button" visually-hidden aria-label="Open menu"> </button> <div class="devsite-product-name-wrapper"> <a href="https://developers.google.com/search"> <div class="devsite-product-logo-container" size="medium" > <picture> <img class="devsite-product-logo" alt="Google Search Central" src="https://developers.google.com/static/search/images/google-search-central-logo.svg" srcset=" /static/search/images/google-search-central-logo.svg" sizes="64px" loading="lazy" > </picture> </div> </a> <span class="devsite-product-name"> <ul class="devsite-breadcrumb-list" > <li class="devsite-breadcrumb-item devsite-has-google-wordmark"> <a href="https://developers.google.com/search" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Upper Header" data-value="1" track-type="globalNav" track-name="breadcrumb" track-metadata-position="1" track-metadata-eventdetail="Google Search Central" > <svg class="devsite-google-wordmark" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 148 48"> <title>Google</title> <path class="devsite-google-wordmark-svg-path" d="M19.58,37.65c-9.87,0-18.17-8.04-18.17-17.91c0-9.87,8.3-17.91,18.17-17.91c5.46,0,9.35,2.14,12.27,4.94l-3.45,3.45c-2.1-1.97-4.93-3.49-8.82-3.49c-7.21,0-12.84,5.81-12.84,13.02c0,7.21,5.64,13.02,12.84,13.02c4.67,0,7.34-1.88,9.04-3.58c1.4-1.4,2.32-3.41,2.66-6.16H19.58v-4.89h16.47c0.18,0.87,0.26,1.92,0.26,3.06c0,3.67-1.01,8.21-4.24,11.44C28.93,35.9,24.91,37.65,19.58,37.65z M61.78,26.12c0,6.64-5.1,11.53-11.36,11.53s-11.36-4.89-11.36-11.53c0-6.68,5.1-11.53,11.36-11.53S61.78,19.43,61.78,26.12z M56.8,26.12c0-4.15-2.96-6.99-6.39-6.99c-3.43,0-6.39,2.84-6.39,6.99c0,4.11,2.96,6.99,6.39,6.99C53.84,33.11,56.8,30.22,56.8,26.12z M87.25,26.12c0,6.64-5.1,11.53-11.36,11.53c-6.26,0-11.36-4.89-11.36-11.53c0-6.68,5.1-11.53,11.36-11.53C82.15,14.59,87.25,19.43,87.25,26.12zM82.28,26.12c0-4.15-2.96-6.99-6.39-6.99c-3.43,0-6.39,2.84-6.39,6.99c0,4.11,2.96,6.99,6.39,6.99C79.32,33.11,82.28,30.22,82.28,26.12z M112.09,15.29v20.7c0,8.52-5.02,12.01-10.96,12.01c-5.59,0-8.95-3.76-10.22-6.81l4.41-1.83c0.79,1.88,2.71,4.1,5.81,4.1c3.8,0,6.16-2.36,6.16-6.77v-1.66h-0.18c-1.14,1.4-3.32,2.62-6.07,2.62c-5.76,0-11.05-5.02-11.05-11.49c0-6.51,5.28-11.57,11.05-11.57c2.75,0,4.93,1.22,6.07,2.58h0.18v-1.88H112.09z M107.64,26.16c0-4.06-2.71-7.03-6.16-7.03c-3.49,0-6.42,2.97-6.42,7.03c0,4.02,2.93,6.94,6.42,6.94C104.93,33.11,107.64,30.18,107.64,26.16z M120.97,3.06v33.89h-5.07V3.06H120.97z M140.89,29.92l3.93,2.62c-1.27,1.88-4.32,5.11-9.61,5.11c-6.55,0-11.28-5.07-11.28-11.53c0-6.86,4.77-11.53,10.71-11.53c5.98,0,8.91,4.76,9.87,7.34l0.52,1.31l-15.42,6.38c1.18,2.31,3.01,3.49,5.59,3.49C137.79,33.11,139.58,31.84,140.89,29.92zM128.79,25.77l10.31-4.28c-0.57-1.44-2.27-2.45-4.28-2.45C132.24,19.04,128.66,21.31,128.79,25.77z"/> </svg>Search Central </a> </li> </ul> </span> </div> <div class="devsite-top-logo-row-middle"> <div class="devsite-header-upper-tabs"> <devsite-tabs class="upper-tabs"> <nav class="devsite-tabs-wrapper" aria-label="Upper tabs"> <tab class="devsite-dropdown devsite-dropdown-full devsite-active "> <a href="https://developers.google.com/search/docs" track-metadata-eventdetail="https://developers.google.com/search/docs" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - documentation" track-metadata-module="primary nav" aria-label="Documentation, selected" data-category="Site-Wide Custom Events" data-label="Tab: Documentation" track-name="documentation" > Documentation </a> <a href="#" role="button" aria-haspopup="true" aria-expanded="false" aria-label="Dropdown menu for Documentation" track-type="nav" track-metadata-eventdetail="https://developers.google.com/search/docs" track-metadata-position="nav - documentation" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Documentation" track-name="documentation" class="devsite-tabs-dropdown-toggle devsite-icon devsite-icon-arrow-drop-down"></a> <div class="devsite-tabs-dropdown" aria-label="submenu" hidden> <div class="devsite-tabs-dropdown-content"> <div class="devsite-tabs-dropdown-column "> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-title" role="heading" tooltip>SEO fundamentals</li> <li class="devsite-nav-item"> <a href="https://developers.google.com/search/docs" track-type="nav" track-metadata-eventdetail="https://developers.google.com/search/docs" track-metadata-position="nav - documentation" track-metadata-module="tertiary nav" track-metadata-module_headline="seo fundamentals" tooltip > <div class="devsite-nav-item-title"> Introduction </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/search/docs/essentials" track-type="nav" track-metadata-eventdetail="https://developers.google.com/search/docs/essentials" track-metadata-position="nav - documentation" track-metadata-module="tertiary nav" track-metadata-module_headline="seo fundamentals" tooltip > <div class="devsite-nav-item-title"> Search Essentials </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/search/docs/fundamentals/seo-starter-guide" track-type="nav" track-metadata-eventdetail="https://developers.google.com/search/docs/fundamentals/seo-starter-guide" track-metadata-position="nav - documentation" track-metadata-module="tertiary nav" track-metadata-module_headline="seo fundamentals" tooltip > <div class="devsite-nav-item-title"> SEO Starter Guide </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/search/docs/fundamentals/how-search-works" track-type="nav" track-metadata-eventdetail="https://developers.google.com/search/docs/fundamentals/how-search-works" track-metadata-position="nav - documentation" track-metadata-module="tertiary nav" track-metadata-module_headline="seo fundamentals" tooltip > <div class="devsite-nav-item-title"> How Google Search Works </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/search/docs/fundamentals/do-i-need-seo" track-type="nav" track-metadata-eventdetail="https://developers.google.com/search/docs/fundamentals/do-i-need-seo" track-metadata-position="nav - documentation" track-metadata-module="tertiary nav" track-metadata-module_headline="seo fundamentals" tooltip > <div class="devsite-nav-item-title"> Do you need an SEO? </div> </a> </li> </ul> </div> <div class="devsite-tabs-dropdown-column "> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-title" role="heading" tooltip>Crawling and indexing</li> <li class="devsite-nav-item"> <a href="https://developers.google.com/search/docs/crawling-indexing/sitemaps/overview" track-type="nav" track-metadata-eventdetail="https://developers.google.com/search/docs/crawling-indexing/sitemaps/overview" track-metadata-position="nav - documentation" track-metadata-module="tertiary nav" track-metadata-module_headline="crawling and indexing" tooltip > <div class="devsite-nav-item-title"> Sitemaps </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/search/docs/crawling-indexing/robots/intro" track-type="nav" track-metadata-eventdetail="https://developers.google.com/search/docs/crawling-indexing/robots/intro" track-metadata-position="nav - documentation" track-metadata-module="tertiary nav" track-metadata-module_headline="crawling and indexing" tooltip > <div class="devsite-nav-item-title"> robots.txt </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/search/docs/crawling-indexing/special-tags" track-type="nav" track-metadata-eventdetail="https://developers.google.com/search/docs/crawling-indexing/special-tags" track-metadata-position="nav - documentation" track-metadata-module="tertiary nav" track-metadata-module_headline="crawling and indexing" tooltip > <div class="devsite-nav-item-title"> Meta tags </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/search/docs/crawling-indexing/ask-google-to-recrawl" track-type="nav" track-metadata-eventdetail="https://developers.google.com/search/docs/crawling-indexing/ask-google-to-recrawl" track-metadata-position="nav - documentation" track-metadata-module="tertiary nav" track-metadata-module_headline="crawling and indexing" tooltip > <div class="devsite-nav-item-title"> Crawler management </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/search/docs/crawling-indexing/control-what-you-share" track-type="nav" track-metadata-eventdetail="https://developers.google.com/search/docs/crawling-indexing/control-what-you-share" track-metadata-position="nav - documentation" track-metadata-module="tertiary nav" track-metadata-module_headline="crawling and indexing" tooltip > <div class="devsite-nav-item-title"> Removals </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/search/docs/crawling-indexing/consolidate-duplicate-urls" track-type="nav" track-metadata-eventdetail="https://developers.google.com/search/docs/crawling-indexing/consolidate-duplicate-urls" track-metadata-position="nav - documentation" track-metadata-module="tertiary nav" track-metadata-module_headline="crawling and indexing" tooltip > <div class="devsite-nav-item-title"> Canonicalization </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/search/docs/crawling-indexing/301-redirects" track-type="nav" track-metadata-eventdetail="https://developers.google.com/search/docs/crawling-indexing/301-redirects" track-metadata-position="nav - documentation" track-metadata-module="tertiary nav" track-metadata-module_headline="crawling and indexing" tooltip > <div class="devsite-nav-item-title"> Redirects </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/search/docs/crawling-indexing/javascript/javascript-seo-basics" track-type="nav" track-metadata-eventdetail="https://developers.google.com/search/docs/crawling-indexing/javascript/javascript-seo-basics" track-metadata-position="nav - documentation" track-metadata-module="tertiary nav" track-metadata-module_headline="crawling and indexing" tooltip > <div class="devsite-nav-item-title"> JavaScript SEO </div> </a> </li> </ul> </div> <div class="devsite-tabs-dropdown-column "> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-title" role="heading" tooltip>Ranking and search appearance</li> <li class="devsite-nav-item"> <a href="https://developers.google.com/search/docs/appearance/visual-elements-gallery" track-type="nav" track-metadata-eventdetail="https://developers.google.com/search/docs/appearance/visual-elements-gallery" track-metadata-position="nav - documentation" track-metadata-module="tertiary nav" track-metadata-module_headline="ranking and search appearance" tooltip > <div class="devsite-nav-item-title"> Visual Elements gallery </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/search/docs/appearance/title-link" track-type="nav" track-metadata-eventdetail="https://developers.google.com/search/docs/appearance/title-link" track-metadata-position="nav - documentation" track-metadata-module="tertiary nav" track-metadata-module_headline="ranking and search appearance" tooltip > <div class="devsite-nav-item-title"> Title links </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/search/docs/appearance/snippet" track-type="nav" track-metadata-eventdetail="https://developers.google.com/search/docs/appearance/snippet" track-metadata-position="nav - documentation" track-metadata-module="tertiary nav" track-metadata-module_headline="ranking and search appearance" tooltip > <div class="devsite-nav-item-title"> Snippets </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/search/docs/appearance/google-images" track-type="nav" track-metadata-eventdetail="https://developers.google.com/search/docs/appearance/google-images" track-metadata-position="nav - documentation" track-metadata-module="tertiary nav" track-metadata-module_headline="ranking and search appearance" tooltip > <div class="devsite-nav-item-title"> Images </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/search/docs/appearance/video" track-type="nav" track-metadata-eventdetail="https://developers.google.com/search/docs/appearance/video" track-metadata-position="nav - documentation" track-metadata-module="tertiary nav" track-metadata-module_headline="ranking and search appearance" tooltip > <div class="devsite-nav-item-title"> Videos </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/search/docs/appearance/structured-data/search-gallery" track-type="nav" track-metadata-eventdetail="https://developers.google.com/search/docs/appearance/structured-data/search-gallery" track-metadata-position="nav - documentation" track-metadata-module="tertiary nav" track-metadata-module_headline="ranking and search appearance" tooltip > <div class="devsite-nav-item-title"> Structured data </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/search/docs/appearance/favicon-in-search" track-type="nav" track-metadata-eventdetail="https://developers.google.com/search/docs/appearance/favicon-in-search" track-metadata-position="nav - documentation" track-metadata-module="tertiary nav" track-metadata-module_headline="ranking and search appearance" tooltip > <div class="devsite-nav-item-title"> Favicons </div> </a> </li> </ul> </div> <div class="devsite-tabs-dropdown-column "> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-title" role="heading" tooltip>Site-specific guides</li> <li class="devsite-nav-item"> <a href="https://developers.google.com/search/docs/specialty/ecommerce" track-type="nav" track-metadata-eventdetail="https://developers.google.com/search/docs/specialty/ecommerce" track-metadata-position="nav - documentation" track-metadata-module="tertiary nav" track-metadata-module_headline="site-specific guides" tooltip > <div class="devsite-nav-item-title"> Ecommerce </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/search/docs/specialty/international" track-type="nav" track-metadata-eventdetail="https://developers.google.com/search/docs/specialty/international" track-metadata-position="nav - documentation" track-metadata-module="tertiary nav" track-metadata-module_headline="site-specific guides" tooltip > <div class="devsite-nav-item-title"> International and multilingual sites </div> </a> </li> </ul> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-title" role="heading" tooltip>Data analysis</li> <li class="devsite-nav-item"> <a href="https://developers.google.com/search/docs/monitor-debug/search-console-start" track-type="nav" track-metadata-eventdetail="https://developers.google.com/search/docs/monitor-debug/search-console-start" track-metadata-position="nav - documentation" track-metadata-module="tertiary nav" track-metadata-module_headline="site-specific guides" tooltip > <div class="devsite-nav-item-title"> Get started with Search Console </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/search/docs/monitor-debug/debugging-search-traffic-drops" track-type="nav" track-metadata-eventdetail="https://developers.google.com/search/docs/monitor-debug/debugging-search-traffic-drops" track-metadata-position="nav - documentation" track-metadata-module="tertiary nav" track-metadata-module_headline="site-specific guides" tooltip > <div class="devsite-nav-item-title"> Debug traffic drops </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/search/docs/monitor-debug/bubble-chart-analysis" track-type="nav" track-metadata-eventdetail="https://developers.google.com/search/docs/monitor-debug/bubble-chart-analysis" track-metadata-position="nav - documentation" track-metadata-module="tertiary nav" track-metadata-module_headline="site-specific guides" tooltip > <div class="devsite-nav-item-title"> Improve SEO with a bubble chart </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/search/docs/monitor-debug/trends-start" track-type="nav" track-metadata-eventdetail="https://developers.google.com/search/docs/monitor-debug/trends-start" track-metadata-position="nav - documentation" track-metadata-module="tertiary nav" track-metadata-module_headline="site-specific guides" tooltip > <div class="devsite-nav-item-title"> Get started with Google Trends </div> </a> </li> </ul> </div> </div> </div> </tab> <tab > <a href="https://developers.google.com/search/help" track-metadata-eventdetail="https://developers.google.com/search/help" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - support" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Support" track-name="support" > Support </a> </tab> <tab > <a href="https://developers.google.com/search/blog" track-metadata-eventdetail="https://developers.google.com/search/blog" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - blog" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Blog" track-name="blog" > Blog </a> </tab> <tab class="devsite-dropdown "> <a href="https://developers.google.com/search/news" track-metadata-eventdetail="https://developers.google.com/search/news" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - what&#39;s new" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: What&#39;s new" track-name="what&#39;s new" > What&#39;s new </a> <a href="#" role="button" aria-haspopup="true" aria-expanded="false" aria-label="Dropdown menu for What&#39;s new" track-type="nav" track-metadata-eventdetail="https://developers.google.com/search/news" track-metadata-position="nav - what&#39;s new" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: What&#39;s new" track-name="what&#39;s new" class="devsite-tabs-dropdown-toggle devsite-icon devsite-icon-arrow-drop-down"></a> <div class="devsite-tabs-dropdown" aria-label="submenu" hidden> <div class="devsite-tabs-dropdown-content"> <div class="devsite-tabs-dropdown-column "> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-item"> <a href="https://developers.google.com/search/news" track-type="nav" track-metadata-eventdetail="https://developers.google.com/search/news" track-metadata-position="nav - what&#39;s new" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> All updates </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/search/updates" track-type="nav" track-metadata-eventdetail="https://developers.google.com/search/updates" track-metadata-position="nav - what&#39;s new" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Documentation updates </div> </a> </li> <li class="devsite-nav-item"> <a href="https://status.search.google.com/products/rGHU1u87FJnkP6W2GwMi/history" track-type="nav" track-metadata-eventdetail="https://status.search.google.com/products/rGHU1u87FJnkP6W2GwMi/history" track-metadata-position="nav - what&#39;s new" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Ranking updates </div> </a> </li> <li class="devsite-nav-item"> <a href="https://www.youtube.com/channel/UCWf2ZlNsCGDS89VBF_awNvA" track-type="nav" track-metadata-eventdetail="https://www.youtube.com/channel/UCWf2ZlNsCGDS89VBF_awNvA" track-metadata-position="nav - what&#39;s new" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> New YouTube videos </div> </a> </li> <li class="devsite-nav-item"> <a href="https://pod.link/1512522198" track-type="nav" track-metadata-eventdetail="https://pod.link/1512522198" track-metadata-position="nav - what&#39;s new" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Recent podcast episodes </div> </a> </li> </ul> </div> </div> </div> </tab> <tab > <a href="https://developers.google.com/search/events" track-metadata-eventdetail="https://developers.google.com/search/events" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - events" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Events" track-name="events" > Events </a> </tab> <tab > <a href="https://developers.google.com/search/case-studies/overview" track-metadata-eventdetail="https://developers.google.com/search/case-studies/overview" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - case studies" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Case studies" track-name="case studies" > Case studies </a> </tab> </nav> </devsite-tabs> </div> <devsite-search enable-signin enable-search enable-suggestions enable-query-completion project-name="Documentation" tenant-name="Google for Developers" project-scope="/search/docs" url-scoped="https://developers.google.com/s/results/search/docs" > <form class="devsite-search-form" action="https://developers.google.com/s/results" method="GET"> <div class="devsite-search-container"> <button type="button" search-open class="devsite-search-button devsite-header-icon-button button-flat material-icons" aria-label="Open search"></button> <div class="devsite-searchbox"> <input aria-activedescendant="" aria-autocomplete="list" aria-label="Search" aria-expanded="false" aria-haspopup="listbox" autocomplete="off" class="devsite-search-field devsite-search-query" name="q" placeholder="Search" role="combobox" type="text" value="" > <div class="devsite-search-image material-icons" aria-hidden="true"> </div> <div class="devsite-search-shortcut-icon-container" aria-hidden="true"> <kbd class="devsite-search-shortcut-icon">/</kbd> </div> </div> </div> </form> <button type="button" search-close class="devsite-search-button devsite-header-icon-button button-flat material-icons" aria-label="Close search"></button> </devsite-search> </div> <devsite-language-selector> <ul role="presentation"> <li role="presentation"> <a role="menuitem" lang="en" >English</a> </li> <li role="presentation"> <a role="menuitem" lang="de" >Deutsch</a> </li> <li role="presentation"> <a role="menuitem" lang="es" >Español</a> </li> <li role="presentation"> <a role="menuitem" lang="es_419" >Español – América Latina</a> </li> <li role="presentation"> <a role="menuitem" lang="fr" >Français</a> </li> <li role="presentation"> <a role="menuitem" lang="id" >Indonesia</a> </li> <li role="presentation"> <a role="menuitem" lang="it" >Italiano</a> </li> <li role="presentation"> <a role="menuitem" lang="pl" >Polski</a> </li> <li role="presentation"> <a role="menuitem" lang="pt_br" >Português – Brasil</a> </li> <li role="presentation"> <a role="menuitem" lang="vi" >Tiếng Việt</a> </li> <li role="presentation"> <a role="menuitem" lang="tr" >Türkçe</a> </li> <li role="presentation"> <a role="menuitem" lang="ru" >Русский</a> </li> <li role="presentation"> <a role="menuitem" lang="ar" >العربيّة</a> </li> <li role="presentation"> <a role="menuitem" lang="hi" >हिंदी</a> </li> <li role="presentation"> <a role="menuitem" lang="th" >ภาษาไทย</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_cn" >中文 – 简体</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_tw" >中文 – 繁體</a> </li> <li role="presentation"> <a role="menuitem" lang="ja" >日本語</a> </li> <li role="presentation"> <a role="menuitem" lang="ko" >한국어</a> </li> </ul> </devsite-language-selector> <devsite-user enable-profiles fp-auth id="devsite-user"> <span class="button devsite-top-button" aria-hidden="true" visually-hidden>Sign in</span> </devsite-user> </div> </div> </div> <div class="devsite-collapsible-section devsite-header-no-lower-tabs "> <div class="devsite-header-background"> <div class="devsite-product-id-row" > <div class="devsite-product-description-row"> <ul class="devsite-breadcrumb-list" > <li class="devsite-breadcrumb-item "> <a href="https://developers.google.com/search/docs" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Lower Header" data-value="1" track-type="globalNav" track-name="breadcrumb" track-metadata-position="1" track-metadata-eventdetail="Documentation" > Documentation </a> </li> </ul> </div> <div class="devsite-product-button-row"> <a href="https://goo.gle/searchconsole" class="button button-primary " data-label="open search console header button" data-category="Search docs" >Search Console</a> </div> </div> </div> </div> </div> </devsite-header> <devsite-book-nav scrollbars > <div class="devsite-book-nav-filter" hidden> <span class="filter-list-icon material-icons" aria-hidden="true"></span> <input type="text" placeholder="Filter" aria-label="Type to filter" role="searchbox"> <span class="filter-clear-button hidden" data-title="Clear filter" aria-label="Clear filter" role="button" tabindex="0"></span> </div> <nav class="devsite-book-nav devsite-nav nocontent" aria-label="Side menu"> <div class="devsite-mobile-header"> <button type="button" id="devsite-close-nav" class="devsite-header-icon-button button-flat material-icons gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Close navigation" aria-label="Close navigation"> </button> <div class="devsite-product-name-wrapper"> <a href="https://developers.google.com/search"> <div class="devsite-product-logo-container" size="medium" > <picture> <img class="devsite-product-logo" alt="Google Search Central" src="https://developers.google.com/static/search/images/google-search-central-logo.svg" srcset=" /static/search/images/google-search-central-logo.svg" sizes="64px" loading="lazy" > </picture> </div> </a> <span class="devsite-product-name"> <ul class="devsite-breadcrumb-list" > <li class="devsite-breadcrumb-item devsite-has-google-wordmark"> <a href="https://developers.google.com/search" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Upper Header" data-value="1" track-type="globalNav" track-name="breadcrumb" track-metadata-position="1" track-metadata-eventdetail="Google Search Central" > <svg class="devsite-google-wordmark" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 148 48"> <title>Google</title> <path class="devsite-google-wordmark-svg-path" d="M19.58,37.65c-9.87,0-18.17-8.04-18.17-17.91c0-9.87,8.3-17.91,18.17-17.91c5.46,0,9.35,2.14,12.27,4.94l-3.45,3.45c-2.1-1.97-4.93-3.49-8.82-3.49c-7.21,0-12.84,5.81-12.84,13.02c0,7.21,5.64,13.02,12.84,13.02c4.67,0,7.34-1.88,9.04-3.58c1.4-1.4,2.32-3.41,2.66-6.16H19.58v-4.89h16.47c0.18,0.87,0.26,1.92,0.26,3.06c0,3.67-1.01,8.21-4.24,11.44C28.93,35.9,24.91,37.65,19.58,37.65z M61.78,26.12c0,6.64-5.1,11.53-11.36,11.53s-11.36-4.89-11.36-11.53c0-6.68,5.1-11.53,11.36-11.53S61.78,19.43,61.78,26.12z M56.8,26.12c0-4.15-2.96-6.99-6.39-6.99c-3.43,0-6.39,2.84-6.39,6.99c0,4.11,2.96,6.99,6.39,6.99C53.84,33.11,56.8,30.22,56.8,26.12z M87.25,26.12c0,6.64-5.1,11.53-11.36,11.53c-6.26,0-11.36-4.89-11.36-11.53c0-6.68,5.1-11.53,11.36-11.53C82.15,14.59,87.25,19.43,87.25,26.12zM82.28,26.12c0-4.15-2.96-6.99-6.39-6.99c-3.43,0-6.39,2.84-6.39,6.99c0,4.11,2.96,6.99,6.39,6.99C79.32,33.11,82.28,30.22,82.28,26.12z M112.09,15.29v20.7c0,8.52-5.02,12.01-10.96,12.01c-5.59,0-8.95-3.76-10.22-6.81l4.41-1.83c0.79,1.88,2.71,4.1,5.81,4.1c3.8,0,6.16-2.36,6.16-6.77v-1.66h-0.18c-1.14,1.4-3.32,2.62-6.07,2.62c-5.76,0-11.05-5.02-11.05-11.49c0-6.51,5.28-11.57,11.05-11.57c2.75,0,4.93,1.22,6.07,2.58h0.18v-1.88H112.09z M107.64,26.16c0-4.06-2.71-7.03-6.16-7.03c-3.49,0-6.42,2.97-6.42,7.03c0,4.02,2.93,6.94,6.42,6.94C104.93,33.11,107.64,30.18,107.64,26.16z M120.97,3.06v33.89h-5.07V3.06H120.97z M140.89,29.92l3.93,2.62c-1.27,1.88-4.32,5.11-9.61,5.11c-6.55,0-11.28-5.07-11.28-11.53c0-6.86,4.77-11.53,10.71-11.53c5.98,0,8.91,4.76,9.87,7.34l0.52,1.31l-15.42,6.38c1.18,2.31,3.01,3.49,5.59,3.49C137.79,33.11,139.58,31.84,140.89,29.92zM128.79,25.77l10.31-4.28c-0.57-1.44-2.27-2.45-4.28-2.45C132.24,19.04,128.66,21.31,128.79,25.77z"/> </svg>Search Central </a> </li> </ul> </span> </div> </div> <div class="devsite-book-nav-wrapper"> <div class="devsite-mobile-nav-top"> <ul class="devsite-nav-list"> <li class="devsite-nav-item"> <a href="/search/docs" class="devsite-nav-title gc-analytics-event devsite-nav-has-children devsite-nav-active" data-category="Site-Wide Custom Events" data-label="Tab: Documentation" track-name="documentation" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Documentation" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Documentation </span> <span class="devsite-nav-icon material-icons" data-icon="forward" > </span> </a> <ul class="devsite-nav-responsive-tabs devsite-nav-has-menu "> <li class="devsite-nav-item"> <span class="devsite-nav-title" tooltip data-category="Site-Wide Custom Events" data-label="Tab: Documentation" track-name="documentation" > <span class="devsite-nav-text" tooltip menu="Documentation"> More </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="Documentation"> </span> </span> </li> </ul> </li> <li class="devsite-nav-item"> <a href="/search/help" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Tab: Support" track-name="support" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Support" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Support </span> <span class="devsite-nav-icon material-icons" data-icon="forward" > </span> </a> </li> <li class="devsite-nav-item"> <a href="/search/blog" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Tab: Blog" track-name="blog" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Blog" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Blog </span> <span class="devsite-nav-icon material-icons" data-icon="forward" > </span> </a> </li> <li class="devsite-nav-item"> <a href="/search/news" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Tab: What&#39;s new" track-name="what&#39;s new" data-category="Site-Wide Custom Events" data-label="Responsive Tab: What&#39;s new" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > What&#39;s new </span> <span class="devsite-nav-icon material-icons" data-icon="forward" > </span> </a> <ul class="devsite-nav-responsive-tabs devsite-nav-has-menu "> <li class="devsite-nav-item"> <span class="devsite-nav-title" tooltip data-category="Site-Wide Custom Events" data-label="Tab: What&#39;s new" track-name="what&#39;s new" > <span class="devsite-nav-text" tooltip menu="What&#39;s new"> More </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="What&#39;s new"> </span> </span> </li> </ul> </li> <li class="devsite-nav-item"> <a href="/search/events" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Tab: Events" track-name="events" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Events" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Events </span> <span class="devsite-nav-icon material-icons" data-icon="forward" > </span> </a> </li> <li class="devsite-nav-item"> <a href="/search/case-studies/overview" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Tab: Case studies" track-name="case studies" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Case studies" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Case studies </span> <span class="devsite-nav-icon material-icons" data-icon="forward" > </span> </a> </li> </ul> </div> <div class="devsite-mobile-nav-bottom"> <ul class="devsite-nav-list" menu="_book"> <li class="devsite-nav-item"><a href="/search/docs" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs" ><span class="devsite-nav-text" tooltip>Introduction</span></a></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Search Essentials</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/search/docs/essentials" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/essentials" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/essentials" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/search/docs/essentials/technical" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/essentials/technical" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/essentials/technical" ><span class="devsite-nav-text" tooltip>Technical requirements</span></a></li><li class="devsite-nav-item"><a href="/search/docs/essentials/spam-policies" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/essentials/spam-policies" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/essentials/spam-policies" ><span class="devsite-nav-text" tooltip>Spam policies</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable devsite-nav-accordion"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>SEO fundamentals</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/search/docs/fundamentals/seo-starter-guide" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/fundamentals/seo-starter-guide" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/fundamentals/seo-starter-guide" ><span class="devsite-nav-text" tooltip>SEO Starter Guide</span></a></li><li class="devsite-nav-item"><a href="/search/docs/fundamentals/how-search-works" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/fundamentals/how-search-works" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/fundamentals/how-search-works" ><span class="devsite-nav-text" tooltip>How Google Search works</span></a></li><li class="devsite-nav-item"><a href="/search/docs/fundamentals/creating-helpful-content" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/fundamentals/creating-helpful-content" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/fundamentals/creating-helpful-content" ><span class="devsite-nav-text" tooltip>Creating helpful, reliable, people-first content</span></a></li><li class="devsite-nav-item"><a href="/search/docs/fundamentals/do-i-need-seo" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/fundamentals/do-i-need-seo" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/fundamentals/do-i-need-seo" ><span class="devsite-nav-text" tooltip>Do you need an SEO?</span></a></li><li class="devsite-nav-item"><a href="/search/docs/fundamentals/get-started" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/fundamentals/get-started" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/fundamentals/get-started" ><span class="devsite-nav-text" tooltip>Maintaining your site&#39;s SEO</span></a></li><li class="devsite-nav-item"><a href="/search/docs/fundamentals/get-started-developers" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/fundamentals/get-started-developers" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/fundamentals/get-started-developers" ><span class="devsite-nav-text" tooltip>Developer&#39;s guide to Search</span></a></li><li class="devsite-nav-item"><a href="/search/docs/fundamentals/get-on-google" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/fundamentals/get-on-google" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/fundamentals/get-on-google" ><span class="devsite-nav-text" tooltip>Get your website on Google</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable devsite-nav-accordion"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Crawling and indexing</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/search/docs/crawling-indexing" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/crawling-indexing" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/crawling-indexing" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/search/docs/crawling-indexing/indexable-file-types" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/crawling-indexing/indexable-file-types" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/crawling-indexing/indexable-file-types" ><span class="devsite-nav-text" tooltip>File types Google can index</span></a></li><li class="devsite-nav-item"><a href="/search/docs/crawling-indexing/url-structure" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/crawling-indexing/url-structure" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/crawling-indexing/url-structure" ><span class="devsite-nav-text" tooltip>URL structure</span></a></li><li class="devsite-nav-item"><a href="/search/docs/crawling-indexing/links-crawlable" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/crawling-indexing/links-crawlable" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/crawling-indexing/links-crawlable" ><span class="devsite-nav-text" tooltip>Links</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Sitemaps</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/search/docs/crawling-indexing/sitemaps/overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/crawling-indexing/sitemaps/overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/crawling-indexing/sitemaps/overview" ><span class="devsite-nav-text" tooltip>Learn about sitemaps</span></a></li><li class="devsite-nav-item"><a href="/search/docs/crawling-indexing/sitemaps/build-sitemap" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/crawling-indexing/sitemaps/build-sitemap" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/crawling-indexing/sitemaps/build-sitemap" ><span class="devsite-nav-text" tooltip>Build and submit a sitemap</span></a></li><li class="devsite-nav-item"><a href="/search/docs/crawling-indexing/sitemaps/large-sitemaps" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/crawling-indexing/sitemaps/large-sitemaps" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/crawling-indexing/sitemaps/large-sitemaps" ><span class="devsite-nav-text" tooltip>Manage sitemaps with sitemap index file</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Sitemap extensions</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/search/docs/crawling-indexing/sitemaps/image-sitemaps" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/crawling-indexing/sitemaps/image-sitemaps" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/crawling-indexing/sitemaps/image-sitemaps" ><span class="devsite-nav-text" tooltip>Image sitemaps</span></a></li><li class="devsite-nav-item"><a href="/search/docs/crawling-indexing/sitemaps/news-sitemap" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/crawling-indexing/sitemaps/news-sitemap" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/crawling-indexing/sitemaps/news-sitemap" ><span class="devsite-nav-text" tooltip>News sitemaps</span></a></li><li class="devsite-nav-item"><a href="/search/docs/crawling-indexing/sitemaps/video-sitemaps" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/crawling-indexing/sitemaps/video-sitemaps" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/crawling-indexing/sitemaps/video-sitemaps" ><span class="devsite-nav-text" tooltip>Video sitemaps and alternatives</span></a></li><li class="devsite-nav-item"><a href="/search/docs/crawling-indexing/sitemaps/combine-sitemap-extensions" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/crawling-indexing/sitemaps/combine-sitemap-extensions" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/crawling-indexing/sitemaps/combine-sitemap-extensions" ><span class="devsite-nav-text" tooltip>Combining sitemap extensions</span></a></li></ul></div></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Crawler management</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/search/docs/crawling-indexing/ask-google-to-recrawl" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/crawling-indexing/ask-google-to-recrawl" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/crawling-indexing/ask-google-to-recrawl" ><span class="devsite-nav-text" tooltip>Ask Google to recrawl your URLs</span></a></li><li class="devsite-nav-item"><a href="/search/docs/crawling-indexing/large-site-managing-crawl-budget" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/crawling-indexing/large-site-managing-crawl-budget" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/crawling-indexing/large-site-managing-crawl-budget" ><span class="devsite-nav-text" tooltip>Large site owner&#39;s guide to managing your crawl budget</span></a></li><li class="devsite-nav-item"><a href="/search/docs/crawling-indexing/http-network-errors" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/crawling-indexing/http-network-errors" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/crawling-indexing/http-network-errors" ><span class="devsite-nav-text" tooltip>How HTTP status codes, and network and DNS errors affect Google Search</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Google crawlers</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/search/docs/crawling-indexing/overview-google-crawlers" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/crawling-indexing/overview-google-crawlers" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/crawling-indexing/overview-google-crawlers" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/search/docs/crawling-indexing/google-common-crawlers" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/crawling-indexing/google-common-crawlers" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/crawling-indexing/google-common-crawlers" ><span class="devsite-nav-text" tooltip>Common crawlers</span></a></li><li class="devsite-nav-item"><a href="/search/docs/crawling-indexing/google-special-case-crawlers" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/crawling-indexing/google-special-case-crawlers" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/crawling-indexing/google-special-case-crawlers" ><span class="devsite-nav-text" tooltip>Special case crawlers</span></a></li><li class="devsite-nav-item"><a href="/search/docs/crawling-indexing/google-user-triggered-fetchers" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/crawling-indexing/google-user-triggered-fetchers" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/crawling-indexing/google-user-triggered-fetchers" ><span class="devsite-nav-text" tooltip>User-triggered fetchers</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Specific crawlers and user-triggered fetchers</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/search/docs/crawling-indexing/googlebot" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/crawling-indexing/googlebot" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/crawling-indexing/googlebot" ><span class="devsite-nav-text" tooltip>Googlebot</span></a></li><li class="devsite-nav-item"><a href="/search/docs/crawling-indexing/read-aloud-user-agent" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/crawling-indexing/read-aloud-user-agent" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/crawling-indexing/read-aloud-user-agent" ><span class="devsite-nav-text" tooltip>Google Read Aloud</span></a></li><li class="devsite-nav-item"><a href="/search/docs/crawling-indexing/apis-user-agent" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/crawling-indexing/apis-user-agent" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/crawling-indexing/apis-user-agent" ><span class="devsite-nav-text" tooltip>APIs-Google</span></a></li><li class="devsite-nav-item"><a href="/search/docs/crawling-indexing/feedfetcher" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/crawling-indexing/feedfetcher" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/crawling-indexing/feedfetcher" ><span class="devsite-nav-text" tooltip>Feedfetcher</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/search/docs/crawling-indexing/reduce-crawl-rate" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/crawling-indexing/reduce-crawl-rate" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/crawling-indexing/reduce-crawl-rate" ><span class="devsite-nav-text" tooltip>Reduce the Googlebot crawl rate</span></a></li><li class="devsite-nav-item"><a href="/search/docs/crawling-indexing/verifying-googlebot" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/crawling-indexing/verifying-googlebot" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/crawling-indexing/verifying-googlebot" ><span class="devsite-nav-text" tooltip>Verifying Googlebot and other Google crawlers</span></a></li></ul></div></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>robots.txt</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/search/docs/crawling-indexing/robots/intro" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/crawling-indexing/robots/intro" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/crawling-indexing/robots/intro" ><span class="devsite-nav-text" tooltip>Introduction to robots.txt</span></a></li><li class="devsite-nav-item"><a href="/search/docs/crawling-indexing/robots/create-robots-txt" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/crawling-indexing/robots/create-robots-txt" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/crawling-indexing/robots/create-robots-txt" ><span class="devsite-nav-text" tooltip>How to write and submit a robots.txt file</span></a></li><li class="devsite-nav-item"><a href="/search/docs/crawling-indexing/robots/submit-updated-robots-txt" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/crawling-indexing/robots/submit-updated-robots-txt" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/crawling-indexing/robots/submit-updated-robots-txt" ><span class="devsite-nav-text" tooltip>Update your robots.txt file</span></a></li><li class="devsite-nav-item"><a href="/search/docs/crawling-indexing/robots/robots_txt" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/crawling-indexing/robots/robots_txt" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/crawling-indexing/robots/robots_txt" ><span class="devsite-nav-text" tooltip>How Google interprets the robots.txt specification</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Canonicalization</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/search/docs/crawling-indexing/canonicalization" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/crawling-indexing/canonicalization" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/crawling-indexing/canonicalization" ><span class="devsite-nav-text" tooltip>What is URL canonicalization</span></a></li><li class="devsite-nav-item"><a href="/search/docs/crawling-indexing/consolidate-duplicate-urls" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/crawling-indexing/consolidate-duplicate-urls" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/crawling-indexing/consolidate-duplicate-urls" ><span class="devsite-nav-text" tooltip>How to specify a canonical URL with rel=&#34;canonical&#34; and other methods</span></a></li><li class="devsite-nav-item"><a href="/search/docs/crawling-indexing/canonicalization-troubleshooting" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/crawling-indexing/canonicalization-troubleshooting" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/crawling-indexing/canonicalization-troubleshooting" ><span class="devsite-nav-text" tooltip>Fix canonicalization issues</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/search/docs/crawling-indexing/mobile/mobile-sites-mobile-first-indexing" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/crawling-indexing/mobile/mobile-sites-mobile-first-indexing" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/crawling-indexing/mobile/mobile-sites-mobile-first-indexing" ><span class="devsite-nav-text" tooltip>Mobile site and mobile-first indexing</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>AMP</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/search/docs/crawling-indexing/amp" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/crawling-indexing/amp" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/crawling-indexing/amp" ><span class="devsite-nav-text" tooltip>AMP on Google Search guidelines</span></a></li><li class="devsite-nav-item"><a href="/search/docs/crawling-indexing/amp/about-amp" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/crawling-indexing/amp/about-amp" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/crawling-indexing/amp/about-amp" ><span class="devsite-nav-text" tooltip>Understand how AMP works in search results</span></a></li><li class="devsite-nav-item"><a href="/search/docs/crawling-indexing/amp/enhance-amp" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/crawling-indexing/amp/enhance-amp" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/crawling-indexing/amp/enhance-amp" ><span class="devsite-nav-text" tooltip>Enhance AMP content</span></a></li><li class="devsite-nav-item"><a href="/search/docs/crawling-indexing/amp/validate-amp" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/crawling-indexing/amp/validate-amp" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/crawling-indexing/amp/validate-amp" ><span class="devsite-nav-text" tooltip>Validate AMP content</span></a></li><li class="devsite-nav-item"><a href="/search/docs/crawling-indexing/amp/remove-amp" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/crawling-indexing/amp/remove-amp" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/crawling-indexing/amp/remove-amp" ><span class="devsite-nav-text" tooltip>Remove AMP content</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>JavaScript</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/search/docs/crawling-indexing/javascript/javascript-seo-basics" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/crawling-indexing/javascript/javascript-seo-basics" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/crawling-indexing/javascript/javascript-seo-basics" ><span class="devsite-nav-text" tooltip>Understand the JavaScript SEO basics</span></a></li><li class="devsite-nav-item"><a href="/search/docs/crawling-indexing/javascript/fix-search-javascript" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/crawling-indexing/javascript/fix-search-javascript" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/crawling-indexing/javascript/fix-search-javascript" ><span class="devsite-nav-text" tooltip>Fix search-related JavaScript problems</span></a></li><li class="devsite-nav-item"><a href="/search/docs/crawling-indexing/javascript/lazy-loading" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/crawling-indexing/javascript/lazy-loading" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/crawling-indexing/javascript/lazy-loading" ><span class="devsite-nav-text" tooltip>Fix lazy-loaded content</span></a></li><li class="devsite-nav-item devsite-nav-deprecated"><a href="/search/docs/crawling-indexing/javascript/dynamic-rendering" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/crawling-indexing/javascript/dynamic-rendering" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/crawling-indexing/javascript/dynamic-rendering" ><span class="devsite-nav-text" tooltip>Dynamic rendering as a workaround</span><span class="devsite-nav-icon material-icons" data-icon="deprecated" data-title="Deprecated" aria-hidden="true"></span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Page and content metadata</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/search/docs/crawling-indexing/valid-page-metadata" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/crawling-indexing/valid-page-metadata" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/crawling-indexing/valid-page-metadata" ><span class="devsite-nav-text" tooltip>Page metadata</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Meta tags</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/search/docs/crawling-indexing/special-tags" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/crawling-indexing/special-tags" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/crawling-indexing/special-tags" ><span class="devsite-nav-text" tooltip>Meta tags and HTML attributes that Google supports</span></a></li><li class="devsite-nav-item"><a href="/search/docs/crawling-indexing/robots-meta-tag" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/crawling-indexing/robots-meta-tag" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/crawling-indexing/robots-meta-tag" ><span class="devsite-nav-text" tooltip>Robots meta tag, data-nosnippet, and X-Robots-Tag</span></a></li><li class="devsite-nav-item"><a href="/search/docs/crawling-indexing/block-indexing" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/crawling-indexing/block-indexing" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/crawling-indexing/block-indexing" ><span class="devsite-nav-text" tooltip>noindex</span></a></li><li class="devsite-nav-item"><a href="/search/docs/crawling-indexing/safesearch" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/crawling-indexing/safesearch" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/crawling-indexing/safesearch" ><span class="devsite-nav-text" tooltip>SafeSearch</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/search/docs/crawling-indexing/qualify-outbound-links" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/crawling-indexing/qualify-outbound-links" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/crawling-indexing/qualify-outbound-links" ><span class="devsite-nav-text" tooltip>rel attributes</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Removals</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/search/docs/crawling-indexing/control-what-you-share" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/crawling-indexing/control-what-you-share" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/crawling-indexing/control-what-you-share" ><span class="devsite-nav-text" tooltip>Control what you share with Google</span></a></li><li class="devsite-nav-item"><a href="/search/docs/crawling-indexing/remove-information" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/crawling-indexing/remove-information" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/crawling-indexing/remove-information" ><span class="devsite-nav-text" tooltip>Page removals</span></a></li><li class="devsite-nav-item"><a href="/search/docs/crawling-indexing/prevent-images-on-your-page" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/crawling-indexing/prevent-images-on-your-page" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/crawling-indexing/prevent-images-on-your-page" ><span class="devsite-nav-text" tooltip>Image removals</span></a></li><li class="devsite-nav-item"><a href="/search/docs/crawling-indexing/keep-redacted-information-out" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/crawling-indexing/keep-redacted-information-out" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/crawling-indexing/keep-redacted-information-out" ><span class="devsite-nav-text" tooltip>Redacted information</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Site moves and changes</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/search/docs/crawling-indexing/301-redirects" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/crawling-indexing/301-redirects" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/crawling-indexing/301-redirects" ><span class="devsite-nav-text" tooltip>Redirects and Google Search</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Site moves</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/search/docs/crawling-indexing/site-move-no-url-changes" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/crawling-indexing/site-move-no-url-changes" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/crawling-indexing/site-move-no-url-changes" ><span class="devsite-nav-text" tooltip>Changing your hosting</span></a></li><li class="devsite-nav-item"><a href="/search/docs/crawling-indexing/site-move-with-url-changes" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/crawling-indexing/site-move-with-url-changes" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/crawling-indexing/site-move-with-url-changes" ><span class="devsite-nav-text" tooltip>Move a site with URL changes</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/search/docs/crawling-indexing/website-testing" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/crawling-indexing/website-testing" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/crawling-indexing/website-testing" ><span class="devsite-nav-text" tooltip>A/B testing</span></a></li><li class="devsite-nav-item"><a href="/search/docs/crawling-indexing/pause-online-business" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/crawling-indexing/pause-online-business" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/crawling-indexing/pause-online-business" ><span class="devsite-nav-text" tooltip>Temporarily pause or disable a website</span></a></li></ul></div></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable devsite-nav-accordion"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Ranking and search appearance</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/search/docs/appearance" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/appearance" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/appearance" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/search/docs/appearance/ai-overviews" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/appearance/ai-overviews" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/appearance/ai-overviews" ><span class="devsite-nav-text" tooltip>AI overviews</span></a></li><li class="devsite-nav-item"><a href="/search/docs/appearance/publication-dates" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/appearance/publication-dates" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/appearance/publication-dates" ><span class="devsite-nav-text" tooltip>Byline dates</span></a></li><li class="devsite-nav-item"><a href="/search/docs/appearance/favicon-in-search" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/appearance/favicon-in-search" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/appearance/favicon-in-search" ><span class="devsite-nav-text" tooltip>Favicons</span></a></li><li class="devsite-nav-item"><a href="/search/docs/appearance/featured-snippets" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/appearance/featured-snippets" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/appearance/featured-snippets" ><span class="devsite-nav-text" tooltip>Featured snippets</span></a></li><li class="devsite-nav-item"><a href="/search/docs/appearance/flexible-sampling" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/appearance/flexible-sampling" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/appearance/flexible-sampling" ><span class="devsite-nav-text" tooltip>Flexible Sampling</span></a></li><li class="devsite-nav-item"><a href="/search/docs/appearance/google-discover" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/appearance/google-discover" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/appearance/google-discover" ><span class="devsite-nav-text" tooltip>Google Discover</span></a></li><li class="devsite-nav-item"><a href="/search/docs/appearance/google-images" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/appearance/google-images" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/appearance/google-images" ><span class="devsite-nav-text" tooltip>Images</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Local features</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/search/docs/appearance/establish-business-details" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/appearance/establish-business-details" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/appearance/establish-business-details" ><span class="devsite-nav-text" tooltip>Business details</span></a></li><li class="devsite-nav-item"><a href="/search/docs/appearance/top-places-list" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/appearance/top-places-list" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/appearance/top-places-list" ><span class="devsite-nav-text" tooltip>Top Places List</span></a></li><li class="devsite-nav-item devsite-nav-external"><a href="https://support.google.com/webmasters/answer/3035947" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: https://support.google.com/webmasters/answer/3035947" track-type="bookNav" track-name="click" track-metadata-eventdetail="https://support.google.com/webmasters/answer/3035947" ><span class="devsite-nav-text" tooltip>Opting out of local search results</span><span class="devsite-nav-icon material-icons" data-icon="external" data-title="External" aria-hidden="true"></span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Page experience</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/search/docs/appearance/page-experience" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/appearance/page-experience" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/appearance/page-experience" ><span class="devsite-nav-text" tooltip>Understanding page experience</span></a></li><li class="devsite-nav-item"><a href="/search/docs/appearance/core-web-vitals" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/appearance/core-web-vitals" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/appearance/core-web-vitals" ><span class="devsite-nav-text" tooltip>Core Web Vitals</span></a></li><li class="devsite-nav-item"><a href="/search/docs/appearance/avoid-intrusive-interstitials" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/appearance/avoid-intrusive-interstitials" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/appearance/avoid-intrusive-interstitials" ><span class="devsite-nav-text" tooltip>Interstitials and dialogs</span></a></li><li class="devsite-nav-item"><a href="/search/docs/appearance/signed-exchange" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/appearance/signed-exchange" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/appearance/signed-exchange" ><span class="devsite-nav-text" tooltip>Get started with signed exchanges on Google Search</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Ranking systems</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/search/docs/appearance/ranking-systems-guide" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/appearance/ranking-systems-guide" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/appearance/ranking-systems-guide" ><span class="devsite-nav-text" tooltip>A guide to Google Search ranking systems</span></a></li><li class="devsite-nav-item"><a href="/search/docs/appearance/reviews-system" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/appearance/reviews-system" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/appearance/reviews-system" ><span class="devsite-nav-text" tooltip>Reviews system</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/search/docs/appearance/site-names" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/appearance/site-names" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/appearance/site-names" ><span class="devsite-nav-text" tooltip>Site names</span></a></li><li class="devsite-nav-item"><a href="/search/docs/appearance/sitelinks" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/appearance/sitelinks" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/appearance/sitelinks" ><span class="devsite-nav-text" tooltip>Sitelinks</span></a></li><li class="devsite-nav-item"><a href="/search/docs/appearance/snippet" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/appearance/snippet" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/appearance/snippet" ><span class="devsite-nav-text" tooltip>Snippets</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Structured data</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/search/docs/appearance/structured-data/intro-structured-data" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/appearance/structured-data/intro-structured-data" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/appearance/structured-data/intro-structured-data" ><span class="devsite-nav-text" tooltip>Understand how structured data works</span></a></li><li class="devsite-nav-item"><a href="/search/docs/appearance/structured-data/sd-policies" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/appearance/structured-data/sd-policies" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/appearance/structured-data/sd-policies" ><span class="devsite-nav-text" tooltip>Structured data general guidelines</span></a></li><li class="devsite-nav-item"><a href="/search/docs/appearance/enriched-search-results" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/appearance/enriched-search-results" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/appearance/enriched-search-results" ><span class="devsite-nav-text" tooltip>Enriched search results</span></a></li><li class="devsite-nav-item"><a href="/search/docs/appearance/structured-data/generate-structured-data-with-javascript" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/appearance/structured-data/generate-structured-data-with-javascript" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/appearance/structured-data/generate-structured-data-with-javascript" ><span class="devsite-nav-text" tooltip>Generate structured data with JavaScript</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Feature guides</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/search/docs/appearance/structured-data/search-gallery" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/appearance/structured-data/search-gallery" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/appearance/structured-data/search-gallery" ><span class="devsite-nav-text" tooltip>All structured data features</span></a></li><li class="devsite-nav-item"><a href="/search/docs/appearance/structured-data/article" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/appearance/structured-data/article" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/appearance/structured-data/article" ><span class="devsite-nav-text" tooltip>Article</span></a></li><li class="devsite-nav-item devsite-nav-limited"><a href="/search/docs/appearance/structured-data/book" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/appearance/structured-data/book" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/appearance/structured-data/book" ><span class="devsite-nav-text" tooltip>Book actions</span><span class="devsite-nav-icon material-icons" data-icon="limited" data-title="Limited Access" aria-hidden="true"></span></a></li><li class="devsite-nav-item"><a href="/search/docs/appearance/structured-data/breadcrumb" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/appearance/structured-data/breadcrumb" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/appearance/structured-data/breadcrumb" ><span class="devsite-nav-text" tooltip>Breadcrumb</span></a></li><li class="devsite-nav-item"><a href="/search/docs/appearance/structured-data/carousel" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/appearance/structured-data/carousel" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/appearance/structured-data/carousel" ><span class="devsite-nav-text" tooltip>Carousel</span></a></li><li class="devsite-nav-item"><a href="/search/docs/appearance/structured-data/course-info" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/appearance/structured-data/course-info" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/appearance/structured-data/course-info" ><span class="devsite-nav-text" tooltip>Course info</span></a></li><li class="devsite-nav-item"><a href="/search/docs/appearance/structured-data/course" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/appearance/structured-data/course" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/appearance/structured-data/course" ><span class="devsite-nav-text" tooltip>Course list</span></a></li><li class="devsite-nav-item"><a href="/search/docs/appearance/structured-data/dataset" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/appearance/structured-data/dataset" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/appearance/structured-data/dataset" ><span class="devsite-nav-text" tooltip>Dataset</span></a></li><li class="devsite-nav-item"><a href="/search/docs/appearance/structured-data/discussion-forum" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/appearance/structured-data/discussion-forum" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/appearance/structured-data/discussion-forum" ><span class="devsite-nav-text" tooltip>Discussion forum</span></a></li><li class="devsite-nav-item"><a href="/search/docs/appearance/structured-data/education-qa" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/appearance/structured-data/education-qa" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/appearance/structured-data/education-qa" ><span class="devsite-nav-text" tooltip>Education Q&amp;A</span></a></li><li class="devsite-nav-item"><a href="/search/docs/appearance/structured-data/employer-rating" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/appearance/structured-data/employer-rating" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/appearance/structured-data/employer-rating" ><span class="devsite-nav-text" tooltip>Employer aggregate rating</span></a></li><li class="devsite-nav-item"><a href="/search/docs/appearance/structured-data/estimated-salary" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/appearance/structured-data/estimated-salary" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/appearance/structured-data/estimated-salary" ><span class="devsite-nav-text" tooltip>Estimated salary</span></a></li><li class="devsite-nav-item"><a href="/search/docs/appearance/structured-data/event" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/appearance/structured-data/event" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/appearance/structured-data/event" ><span class="devsite-nav-text" tooltip>Event</span></a></li><li class="devsite-nav-item"><a href="/search/docs/appearance/structured-data/factcheck" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/appearance/structured-data/factcheck" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/appearance/structured-data/factcheck" ><span class="devsite-nav-text" tooltip>Fact check</span></a></li><li class="devsite-nav-item"><a href="/search/docs/appearance/structured-data/faqpage" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/appearance/structured-data/faqpage" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/appearance/structured-data/faqpage" ><span class="devsite-nav-text" tooltip>FAQ</span></a></li><li class="devsite-nav-item"><a href="/search/docs/appearance/structured-data/image-license-metadata" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/appearance/structured-data/image-license-metadata" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/appearance/structured-data/image-license-metadata" ><span class="devsite-nav-text" tooltip>Image metadata</span></a></li><li class="devsite-nav-item"><a href="/search/docs/appearance/structured-data/job-posting" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/appearance/structured-data/job-posting" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/appearance/structured-data/job-posting" ><span class="devsite-nav-text" tooltip>Job posting</span></a></li><li class="devsite-nav-item"><a href="/search/docs/appearance/structured-data/learning-video" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/appearance/structured-data/learning-video" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/appearance/structured-data/learning-video" ><span class="devsite-nav-text" tooltip>Learning video</span></a></li><li class="devsite-nav-item"><a href="/search/docs/appearance/structured-data/local-business" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/appearance/structured-data/local-business" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/appearance/structured-data/local-business" ><span class="devsite-nav-text" tooltip>Local business</span></a></li><li class="devsite-nav-item"><a href="/search/docs/appearance/structured-data/math-solvers" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/appearance/structured-data/math-solvers" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/appearance/structured-data/math-solvers" ><span class="devsite-nav-text" tooltip>Math solver</span></a></li><li class="devsite-nav-item"><a href="/search/docs/appearance/structured-data/movie" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/appearance/structured-data/movie" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/appearance/structured-data/movie" ><span class="devsite-nav-text" tooltip>Movie carousel</span></a></li><li class="devsite-nav-item"><a href="/search/docs/appearance/structured-data/organization" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/appearance/structured-data/organization" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/appearance/structured-data/organization" ><span class="devsite-nav-text" tooltip>Organization</span></a></li><li class="devsite-nav-item"><a href="/search/docs/appearance/structured-data/practice-problems" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/appearance/structured-data/practice-problems" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/appearance/structured-data/practice-problems" ><span class="devsite-nav-text" tooltip>Practice problem</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Product</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/search/docs/appearance/structured-data/product" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/appearance/structured-data/product" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/appearance/structured-data/product" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/search/docs/appearance/structured-data/product-snippet" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/appearance/structured-data/product-snippet" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/appearance/structured-data/product-snippet" ><span class="devsite-nav-text" tooltip>Product snippet</span></a></li><li class="devsite-nav-item"><a href="/search/docs/appearance/structured-data/merchant-listing" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/appearance/structured-data/merchant-listing" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/appearance/structured-data/merchant-listing" ><span class="devsite-nav-text" tooltip>Merchant listing</span></a></li><li class="devsite-nav-item"><a href="/search/docs/appearance/structured-data/product-variants" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/appearance/structured-data/product-variants" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/appearance/structured-data/product-variants" ><span class="devsite-nav-text" tooltip>Variants</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/search/docs/appearance/structured-data/profile-page" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/appearance/structured-data/profile-page" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/appearance/structured-data/profile-page" ><span class="devsite-nav-text" tooltip>Profile page</span></a></li><li class="devsite-nav-item"><a href="/search/docs/appearance/structured-data/qapage" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/appearance/structured-data/qapage" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/appearance/structured-data/qapage" ><span class="devsite-nav-text" tooltip>Q&amp;A</span></a></li><li class="devsite-nav-item"><a href="/search/docs/appearance/structured-data/recipe" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/appearance/structured-data/recipe" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/appearance/structured-data/recipe" ><span class="devsite-nav-text" tooltip>Recipe</span></a></li><li class="devsite-nav-item"><a href="/search/docs/appearance/structured-data/review-snippet" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/appearance/structured-data/review-snippet" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/appearance/structured-data/review-snippet" ><span class="devsite-nav-text" tooltip>Review snippet</span></a></li><li class="devsite-nav-item devsite-nav-deprecated"><a href="/search/docs/appearance/structured-data/sitelinks-searchbox" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/appearance/structured-data/sitelinks-searchbox" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/appearance/structured-data/sitelinks-searchbox" ><span class="devsite-nav-text" tooltip>Sitelinks search box</span><span class="devsite-nav-icon material-icons" data-icon="deprecated" data-title="Deprecated" aria-hidden="true"></span></a></li><li class="devsite-nav-item"><a href="/search/docs/appearance/structured-data/software-app" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/appearance/structured-data/software-app" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/appearance/structured-data/software-app" ><span class="devsite-nav-text" tooltip>Software app</span></a></li><li class="devsite-nav-item devsite-nav-beta"><a href="/search/docs/appearance/structured-data/speakable" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/appearance/structured-data/speakable" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/appearance/structured-data/speakable" ><span class="devsite-nav-text" tooltip>Speakable</span><span class="devsite-nav-icon material-icons" data-icon="beta" data-title="Beta" aria-hidden="true"></span></a></li><li class="devsite-nav-item devsite-nav-beta"><a href="/search/docs/appearance/structured-data/special-announcements" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/appearance/structured-data/special-announcements" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/appearance/structured-data/special-announcements" ><span class="devsite-nav-text" tooltip>Special announcement</span><span class="devsite-nav-icon material-icons" data-icon="beta" data-title="Beta" aria-hidden="true"></span></a></li><li class="devsite-nav-item"><a href="/search/docs/appearance/structured-data/paywalled-content" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/appearance/structured-data/paywalled-content" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/appearance/structured-data/paywalled-content" ><span class="devsite-nav-text" tooltip>Subscription and paywalled content</span></a></li><li class="devsite-nav-item devsite-nav-limited"><a href="/search/docs/appearance/structured-data/vacation-rental" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/appearance/structured-data/vacation-rental" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/appearance/structured-data/vacation-rental" ><span class="devsite-nav-text" tooltip>Vacation rental</span><span class="devsite-nav-icon material-icons" data-icon="limited" data-title="Limited Access" aria-hidden="true"></span></a></li><li class="devsite-nav-item"><a href="/search/docs/appearance/structured-data/vehicle-listing" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/appearance/structured-data/vehicle-listing" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/appearance/structured-data/vehicle-listing" ><span class="devsite-nav-text" tooltip>Vehicle listing</span></a></li><li class="devsite-nav-item"><a href="/search/docs/appearance/structured-data/video" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/appearance/structured-data/video" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/appearance/structured-data/video" ><span class="devsite-nav-text" tooltip>Video</span></a></li></ul></div></li></ul></div></li><li class="devsite-nav-item"><a href="/search/docs/appearance/title-link" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/appearance/title-link" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/appearance/title-link" ><span class="devsite-nav-text" tooltip>Title links</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Translated features</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/search/docs/appearance/translated-results" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/appearance/translated-results" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/appearance/translated-results" ><span class="devsite-nav-text" tooltip>Translated results</span></a></li><li class="devsite-nav-item"><a href="/search/docs/appearance/ad-network-and-translation" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/appearance/ad-network-and-translation" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/appearance/ad-network-and-translation" ><span class="devsite-nav-text" tooltip>Ad networks and translation-related Google Search features</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/search/docs/appearance/video" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/appearance/video" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/appearance/video" ><span class="devsite-nav-text" tooltip>Videos</span></a></li><li class="devsite-nav-item"><a href="/search/docs/appearance/visual-elements-gallery" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/appearance/visual-elements-gallery" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/appearance/visual-elements-gallery" ><span class="devsite-nav-text" tooltip>Visual Elements gallery</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Web Stories</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/search/docs/appearance/enable-web-stories" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/appearance/enable-web-stories" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/appearance/enable-web-stories" ><span class="devsite-nav-text" tooltip>Enable Web Stories on Google</span></a></li><li class="devsite-nav-item"><a href="/search/docs/appearance/web-stories-creation-best-practices" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/appearance/web-stories-creation-best-practices" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/appearance/web-stories-creation-best-practices" ><span class="devsite-nav-text" tooltip>Best practices for creating Web Stories</span></a></li><li class="devsite-nav-item"><a href="/search/docs/appearance/web-stories-content-policy" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/appearance/web-stories-content-policy" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/appearance/web-stories-content-policy" ><span class="devsite-nav-text" tooltip>Web Story content policy</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Early Adopters Program</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item devsite-nav-beta"><a href="/search/docs/appearance/package-tracking" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/appearance/package-tracking" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/appearance/package-tracking" ><span class="devsite-nav-text" tooltip>Package tracking</span><span class="devsite-nav-icon material-icons" data-icon="beta" data-title="Beta" aria-hidden="true"></span></a></li><li class="devsite-nav-item devsite-nav-beta"><a href="/search/docs/appearance/structured-data/carousels-beta" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/appearance/structured-data/carousels-beta" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/appearance/structured-data/carousels-beta" ><span class="devsite-nav-text" tooltip>Structured data carousels (beta)</span><span class="devsite-nav-icon material-icons" data-icon="beta" data-title="Beta" aria-hidden="true"></span></a></li></ul></div></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable devsite-nav-accordion"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Monitoring and debugging</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/search/docs/monitor-debug/debugging-search-traffic-drops" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/monitor-debug/debugging-search-traffic-drops" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/monitor-debug/debugging-search-traffic-drops" ><span class="devsite-nav-text" tooltip>Debug drops in Search traffic</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Monitor with Search Console</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/search/docs/monitor-debug/search-console-start" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/monitor-debug/search-console-start" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/monitor-debug/search-console-start" ><span class="devsite-nav-text" tooltip>Get started with Search Console</span></a></li><li class="devsite-nav-item"><a href="/search/docs/monitor-debug/bubble-chart-analysis" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/monitor-debug/bubble-chart-analysis" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/monitor-debug/bubble-chart-analysis" ><span class="devsite-nav-text" tooltip>Improve SEO with a bubble chart</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Debug with search operators</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/search/docs/monitor-debug/search-operators" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/monitor-debug/search-operators" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/monitor-debug/search-operators" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/search/docs/monitor-debug/search-operators/all-search-site" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/monitor-debug/search-operators/all-search-site" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/monitor-debug/search-operators/all-search-site" ><span class="devsite-nav-text" tooltip>site: search operator</span></a></li><li class="devsite-nav-item"><a href="/search/docs/monitor-debug/search-operators/image-search" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/monitor-debug/search-operators/image-search" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/monitor-debug/search-operators/image-search" ><span class="devsite-nav-text" tooltip>Google Images search operators</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Preventing and monitoring abuse</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/search/docs/monitor-debug/security" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/monitor-debug/security" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/monitor-debug/security" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/search/docs/monitor-debug/prevent-abuse" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/monitor-debug/prevent-abuse" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/monitor-debug/prevent-abuse" ><span class="devsite-nav-text" tooltip>Prevent user-generated spam</span></a></li><li class="devsite-nav-item"><a href="/search/docs/monitor-debug/security/malware" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/monitor-debug/security/malware" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/monitor-debug/security/malware" ><span class="devsite-nav-text" tooltip>Malware and unwanted software</span></a></li><li class="devsite-nav-item"><a href="/search/docs/monitor-debug/security/prevent-malware" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/monitor-debug/security/prevent-malware" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/monitor-debug/security/prevent-malware" ><span class="devsite-nav-text" tooltip>Prevent a malware infection</span></a></li><li class="devsite-nav-item"><a href="/search/docs/monitor-debug/security/social-engineering" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/monitor-debug/security/social-engineering" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/monitor-debug/security/social-engineering" ><span class="devsite-nav-text" tooltip>Social engineering (phishing and deceptive sites)</span></a></li><li class="devsite-nav-item"><a href="/search/docs/monitor-debug/security/safe-browsing-repeat-offenders" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/monitor-debug/security/safe-browsing-repeat-offenders" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/monitor-debug/security/safe-browsing-repeat-offenders" ><span class="devsite-nav-text" tooltip>Google Safe Browsing Repeat Offenders Policy</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/search/docs/monitor-debug/trends-start" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/monitor-debug/trends-start" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/monitor-debug/trends-start" ><span class="devsite-nav-text" tooltip>Get started with Google Trends</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable devsite-nav-accordion"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Site-specific guides</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Ecommerce</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/search/docs/specialty/ecommerce" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/specialty/ecommerce" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/specialty/ecommerce" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/search/docs/specialty/ecommerce/where-ecommerce-data-can-appear-on-google" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/specialty/ecommerce/where-ecommerce-data-can-appear-on-google" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/specialty/ecommerce/where-ecommerce-data-can-appear-on-google" ><span class="devsite-nav-text" tooltip>Where content can appear</span></a></li><li class="devsite-nav-item"><a href="/search/docs/specialty/ecommerce/share-your-product-data-with-google" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/specialty/ecommerce/share-your-product-data-with-google" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/specialty/ecommerce/share-your-product-data-with-google" ><span class="devsite-nav-text" tooltip>Share product data</span></a></li><li class="devsite-nav-item"><a href="/search/docs/specialty/ecommerce/include-structured-data-relevant-to-ecommerce" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/specialty/ecommerce/include-structured-data-relevant-to-ecommerce" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/specialty/ecommerce/include-structured-data-relevant-to-ecommerce" ><span class="devsite-nav-text" tooltip>Include structured data</span></a></li><li class="devsite-nav-item"><a href="/search/docs/specialty/ecommerce/how-to-launch-an-ecommerce-website" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/specialty/ecommerce/how-to-launch-an-ecommerce-website" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/specialty/ecommerce/how-to-launch-an-ecommerce-website" ><span class="devsite-nav-text" tooltip>Launch a new website</span></a></li><li class="devsite-nav-item"><a href="/search/docs/specialty/ecommerce/write-high-quality-reviews" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/specialty/ecommerce/write-high-quality-reviews" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/specialty/ecommerce/write-high-quality-reviews" ><span class="devsite-nav-text" tooltip>Write high quality reviews</span></a></li><li class="devsite-nav-item"><a href="/search/docs/specialty/ecommerce/designing-a-url-structure-for-ecommerce-sites" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/specialty/ecommerce/designing-a-url-structure-for-ecommerce-sites" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/specialty/ecommerce/designing-a-url-structure-for-ecommerce-sites" ><span class="devsite-nav-text" tooltip>Design a URL structure</span></a></li><li class="devsite-nav-item"><a href="/search/docs/specialty/ecommerce/help-google-understand-your-ecommerce-site-structure" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/specialty/ecommerce/help-google-understand-your-ecommerce-site-structure" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/specialty/ecommerce/help-google-understand-your-ecommerce-site-structure" ><span class="devsite-nav-text" tooltip>Ecommerce site structure</span></a></li><li class="devsite-nav-item"><a href="/search/docs/specialty/ecommerce/pagination-and-incremental-page-loading" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/specialty/ecommerce/pagination-and-incremental-page-loading" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/specialty/ecommerce/pagination-and-incremental-page-loading" ><span class="devsite-nav-text" tooltip>Pagination, incremental page loading, and Search</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>International and multilingual</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/search/docs/specialty/international" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/specialty/international" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/specialty/international" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/search/docs/specialty/international/managing-multi-regional-sites" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/specialty/international/managing-multi-regional-sites" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/specialty/international/managing-multi-regional-sites" ><span class="devsite-nav-text" tooltip>Managing multi-regional and multilingual sites</span></a></li><li class="devsite-nav-item"><a href="/search/docs/specialty/international/localized-versions" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/specialty/international/localized-versions" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/specialty/international/localized-versions" ><span class="devsite-nav-text" tooltip>Tell Google about localized versions of your page</span></a></li><li class="devsite-nav-item"><a href="/search/docs/specialty/international/locale-adaptive-pages" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /search/docs/specialty/international/locale-adaptive-pages" track-type="bookNav" track-name="click" track-metadata-eventdetail="/search/docs/specialty/international/locale-adaptive-pages" ><span class="devsite-nav-text" tooltip>How Google crawls locale-adaptive pages</span></a></li></ul></div></li></ul></div></li> </ul> <ul class="devsite-nav-list" menu="Documentation" aria-label="Side menu" hidden> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > SEO fundamentals </span> </span> </li> <li class="devsite-nav-item"> <a href="/search/docs" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Introduction" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Introduction </span> </a> </li> <li class="devsite-nav-item"> <a href="/search/docs/essentials" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Search Essentials" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Search Essentials </span> </a> </li> <li class="devsite-nav-item"> <a href="/search/docs/fundamentals/seo-starter-guide" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: SEO Starter Guide" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > SEO Starter Guide </span> </a> </li> <li class="devsite-nav-item"> <a href="/search/docs/fundamentals/how-search-works" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: How Google Search Works" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > How Google Search Works </span> </a> </li> <li class="devsite-nav-item"> <a href="/search/docs/fundamentals/do-i-need-seo" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Do you need an SEO?" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Do you need an SEO? </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Crawling and indexing </span> </span> </li> <li class="devsite-nav-item"> <a href="/search/docs/crawling-indexing/sitemaps/overview" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Sitemaps" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Sitemaps </span> </a> </li> <li class="devsite-nav-item"> <a href="/search/docs/crawling-indexing/robots/intro" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: robots.txt" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > robots.txt </span> </a> </li> <li class="devsite-nav-item"> <a href="/search/docs/crawling-indexing/special-tags" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Meta tags" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Meta tags </span> </a> </li> <li class="devsite-nav-item"> <a href="/search/docs/crawling-indexing/ask-google-to-recrawl" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Crawler management" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Crawler management </span> </a> </li> <li class="devsite-nav-item"> <a href="/search/docs/crawling-indexing/control-what-you-share" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Removals" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Removals </span> </a> </li> <li class="devsite-nav-item"> <a href="/search/docs/crawling-indexing/consolidate-duplicate-urls" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Canonicalization" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Canonicalization </span> </a> </li> <li class="devsite-nav-item"> <a href="/search/docs/crawling-indexing/301-redirects" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Redirects" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Redirects </span> </a> </li> <li class="devsite-nav-item"> <a href="/search/docs/crawling-indexing/javascript/javascript-seo-basics" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: JavaScript SEO" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > JavaScript SEO </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Ranking and search appearance </span> </span> </li> <li class="devsite-nav-item"> <a href="/search/docs/appearance/visual-elements-gallery" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Visual Elements gallery" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Visual Elements gallery </span> </a> </li> <li class="devsite-nav-item"> <a href="/search/docs/appearance/title-link" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Title links" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Title links </span> </a> </li> <li class="devsite-nav-item"> <a href="/search/docs/appearance/snippet" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Snippets" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Snippets </span> </a> </li> <li class="devsite-nav-item"> <a href="/search/docs/appearance/google-images" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Images" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Images </span> </a> </li> <li class="devsite-nav-item"> <a href="/search/docs/appearance/video" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Videos" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Videos </span> </a> </li> <li class="devsite-nav-item"> <a href="/search/docs/appearance/structured-data/search-gallery" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Structured data" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Structured data </span> </a> </li> <li class="devsite-nav-item"> <a href="/search/docs/appearance/favicon-in-search" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Favicons" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Favicons </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Site-specific guides </span> </span> </li> <li class="devsite-nav-item"> <a href="/search/docs/specialty/ecommerce" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Ecommerce" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Ecommerce </span> </a> </li> <li class="devsite-nav-item"> <a href="/search/docs/specialty/international" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: International and multilingual sites" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > International and multilingual sites </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Data analysis </span> </span> </li> <li class="devsite-nav-item"> <a href="/search/docs/monitor-debug/search-console-start" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Get started with Search Console" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Get started with Search Console </span> </a> </li> <li class="devsite-nav-item"> <a href="/search/docs/monitor-debug/debugging-search-traffic-drops" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Debug traffic drops" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Debug traffic drops </span> </a> </li> <li class="devsite-nav-item"> <a href="/search/docs/monitor-debug/bubble-chart-analysis" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Improve SEO with a bubble chart" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Improve SEO with a bubble chart </span> </a> </li> <li class="devsite-nav-item"> <a href="/search/docs/monitor-debug/trends-start" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Get started with Google Trends" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Get started with Google Trends </span> </a> </li> </ul> <ul class="devsite-nav-list" menu="What&#39;s new" aria-label="Side menu" hidden> <li class="devsite-nav-item"> <a href="/search/news" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: All updates" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > All updates </span> </a> </li> <li class="devsite-nav-item"> <a href="/search/updates" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Documentation updates" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Documentation updates </span> </a> </li> <li class="devsite-nav-item"> <a href="https://status.search.google.com/products/rGHU1u87FJnkP6W2GwMi/history" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Ranking updates" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Ranking updates </span> </a> </li> <li class="devsite-nav-item"> <a href="https://www.youtube.com/channel/UCWf2ZlNsCGDS89VBF_awNvA" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: New YouTube videos" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > New YouTube videos </span> </a> </li> <li class="devsite-nav-item"> <a href="https://pod.link/1512522198" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Recent podcast episodes" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Recent podcast episodes </span> </a> </li> </ul> </div> </div> </nav> </devsite-book-nav> <section id="gc-wrapper"> <main role="main" class="devsite-main-content" has-book-nav > <devsite-content> <article class="devsite-article"><style> /* Styles inlined from /search/sitewide.css */ /* Popped white box with shadow*/ .sc-shadow-box-row .devsite-landing-row-inner { background-color: #fff; box-shadow: 0 13px 18px -8px rgba(0,0,0,0.15), 0 11px 55px 10px rgba(0,0,0,0.07); border-radius: 8px; margin-bottom: 55px; } /* Stat box for big numbers and description*/ .big-stats { display: flex; flex-direction: column; justify-content: space-around; padding: 64px 32px; text-align: center; } @media (min-width: 481px) { .big-stats { flex-direction: row; } } .big-stat { margin-bottom: 32px; } @media (min-width: 481px) { .big-stat { flex: 1; margin: 0 8px; } } .big-stat__figure { font-size: 1.5em; line-height: 1em; } @media (min-width: 241px) { .big-stat__figure { font-size: 4em; } } @media (min-width: 1020px) { .big-stat__figure { font-size: 6em; } } .big-stat__description, .big-stat__figure { color: inherit; font-family: "Google Sans",sans-serif; margin: 0; text-align: inherit; } .big-stat__description { line-height: 1.5em; } .big-stat__description, .big-stat__figure { color: inherit; font-family: "Google Sans",sans-serif; margin: 0; text-align: inherit; } .big-stat__sub { font-size: .5em; line-height: 1em; vertical-align: baseline; } /* Green background and text -- consistent style with devsite notices */ .green { background: #e0f2f1; color: #00796b; } /* Color scheme of unconference for background and text */ .unconference-yellow { background: #fdd901; color: #3a3a3a; } /* Publish date styling */ .publish-date { font-size: smaller; font-style: italic } /* Fixes SVG label spacing fix to avoid webkit (Safari et. al.) issues */ foreignObject p { margin: 0 ; padding: 1rem 0; } </style> <div class="devsite-banner devsite-banner-announcement nocontent" background="light-blue" > <div class="devsite-banner-message"> <div class="devsite-banner-message-text"> <b>We're now on LinkedIn</b>: For news and resources from Google Search on making your site discoverable, <a href="https://www.linkedin.com/showcase/googlesearchcentral/" class="external-link gc-analytics-event" data-category="Search docs" data-label="linkedin banner">follow us on LinkedIn</a>. </div> </div> </div> <div class="devsite-article-meta nocontent" role="navigation"> <ul class="devsite-breadcrumb-list" aria-label="Breadcrumb"> <li class="devsite-breadcrumb-item "> <a href="https://developers.google.com/" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="1" track-type="globalNav" track-name="breadcrumb" track-metadata-position="1" track-metadata-eventdetail="" > Home </a> </li> <li class="devsite-breadcrumb-item "> <div class="devsite-breadcrumb-guillemet material-icons" aria-hidden="true"></div> <a href="https://developers.google.com/search" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="2" track-type="globalNav" track-name="breadcrumb" track-metadata-position="2" track-metadata-eventdetail="Google Search Central" > Search Central </a> </li> <li class="devsite-breadcrumb-item "> <div class="devsite-breadcrumb-guillemet material-icons" aria-hidden="true"></div> <a href="https://developers.google.com/search/docs" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="3" track-type="globalNav" track-name="breadcrumb" track-metadata-position="3" track-metadata-eventdetail="Documentation" > Documentation </a> </li> </ul> <devsite-thumb-rating position="header"> </devsite-thumb-rating> </div> <devsite-feedback position="header" project-name="Documentation" product-id="103417" bucket="Search Docs" context="DevSite feedback link" version="t-devsite-webserver-20241114-r00-rc02.464922260396498922" data-label="Send Feedback Button" track-type="feedback" track-name="sendFeedbackLink" track-metadata-position="header" class="nocontent" disable-product-feedback project-icon="https://developers.google.com/static/search/images/google-search-central-logo.svg" project-support-url="https://developers.google.com/search/help" > <button> Send feedback </button> </devsite-feedback> <devsite-feature-tooltip ack-key="AckCollectionsBookmarkTooltipDismiss" analytics-category="Site-Wide Custom Events" analytics-action-show="Callout Profile displayed" analytics-action-close="Callout Profile dismissed" analytics-label="Create Collection Callout" class="devsite-page-bookmark-tooltip nocontent" dismiss-button="true" id="devsite-collections-dropdown" dismiss-button-text="Dismiss" close-button-text="Got it"> <devsite-bookmark></devsite-bookmark> <span slot="popout-heading"> Stay organized with collections </span> <span slot="popout-contents"> Save and categorize content based on your preferences. </span> </devsite-feature-tooltip> <devsite-toc class="devsite-nav" depth="2" devsite-toc-embedded > </devsite-toc> <div class="devsite-article-body clearfix devsite-no-page-title"> <h1 class="page-title" id="understand-the-javascript-seo-basics" data-text="Understand the JavaScript SEO basics" tabindex="-1">Understand the JavaScript SEO basics</h1> <aside class="key-point"> Do you suspect that JavaScript issues might be blocking your page or some of your content from showing up in Google Search? Learn how to fix JavaScript-related problems with our <a href="/search/docs/guides/fix-search-javascript">troubleshooting guide</a>. </aside> <p> JavaScript is an important part of the web platform because it provides many features that turn the web into a powerful application platform. Making your JavaScript-powered web applications discoverable via Google Search can help you find new users and re-engage existing users as they search for the content your web app provides. While Google Search runs JavaScript with an <a href="/search/blog/2019/05/the-new-evergreen-googlebot">evergreen version of Chromium</a>, there are <a href="/search/docs/guides/fix-search-javascript">a few things that you can optimize</a>. </p> <p>This guide describes how Google Search processes JavaScript and best practices for improving JavaScript web apps for Google Search.</p> <div class="video-wrapper-full-width"><devsite-video video-id="nwGY-9lwTF4"></devsite-video></div> <h2 id="how-googlebot-processes-javascript" data-text="How Google processes JavaScript" tabindex="-1">How Google processes JavaScript</h2> <p>Google processes JavaScript web apps in three main phases:</p> <ol> <li>Crawling</li> <li>Rendering</li> <li>Indexing</li> </ol> <p> <img src="/static/search/docs/images/googlebot-crawl-render-index.png" alt="Googlebot takes a URL from the crawl queue, crawls it, then passes it into the processing stage. The processing stage extracts links that go back on the crawl queue and queues the page for rendering. The page goes from the render queue to the renderer which passes the rendered HTML back to processing which indexes the content and extracts links to put them into the crawl queue." /> </p> <p> Googlebot queues pages for both crawling and rendering. It is not immediately obvious when a page is waiting for crawling and when it is waiting for rendering. When Googlebot fetches a URL from the crawling queue by making an HTTP request, it first checks if you allow crawling. Googlebot reads the <a href="/search/reference/robots_txt">robots.txt</a> file. If it marks the URL as disallowed, then Googlebot skips making an HTTP request to this URL and skips the URL. Google Search won't render JavaScript from blocked files or on blocked pages. </p> <p> Googlebot then parses the response for other URLs in the <code translate="no" dir="ltr">href</code> attribute of HTML links and adds the URLs to the crawl queue. To prevent link discovery, use the <a href="/search/docs/crawling-indexing/qualify-outbound-links"><code translate="no" dir="ltr">nofollow</code> mechanism</a>. </p> <aside class="note"> It's fine to use JavaScript to inject links into the DOM, as long as such links follow the <a href="/search/docs/crawling-indexing/links-crawlable#crawlable-links">best practices for crawlable links</a>. </aside> <p> Crawling a URL and parsing the HTML response works well for classical websites or server-side rendered pages where the HTML in the HTTP response contains all content. Some JavaScript sites may use the <a href="/web/fundamentals/architecture/app-shell" class="external-link">app shell model</a> where the initial HTML does not contain the actual content and Google needs to execute JavaScript before being able to see the actual page content that JavaScript generates. </p> <p> Googlebot queues all pages for rendering, unless a <a href="/search/docs/crawling-indexing/robots-meta-tag"><span translate="no">robots</span> <code translate="no" dir="ltr">meta</code> tag or header</a> tells Google not to index the page. The page may stay on this queue for a few seconds, but it can take longer than that. Once Google's resources allow, a headless Chromium renders the page and executes the JavaScript. Googlebot parses the rendered HTML for links again and queues the URLs it finds for crawling. Google also uses the rendered HTML to index the page. </p> <p> Keep in mind that <a href="/web/updates/2019/02/rendering-on-the-web" class="external-link">server-side or pre-rendering</a> is still a great idea because it makes your website faster for users and crawlers, and not all bots can run JavaScript. </p> <h2 id="titles-and-snippets" data-text="Describe your page with unique titles and snippets" tabindex="-1">Describe your page with unique titles and snippets</h2> <p> Unique, descriptive <a href="/search/docs/appearance/title-link#page-titles"><code translate="no" dir="ltr">&lt;title&gt;</code> elements</a> and <a href="/search/docs/appearance/snippet#meta-descriptions">meta descriptions</a> help users quickly identify the best result for their goal. You can use JavaScript to set or change the meta description as well as the <code translate="no" dir="ltr">&lt;title&gt;</code> element. </p> <h2 id="write-compatible-code" data-text="Write compatible code" tabindex="-1">Write compatible code</h2> <p> Browsers offer many APIs and JavaScript is a quickly-evolving language. Google has some limitations regarding which APIs and JavaScript features it supports. To make sure your code is compatible with Google, follow our <a href="/search/docs/guides/fix-search-javascript">guidelines for troubleshooting JavaScript problems</a>. </p> <p> We recommend <a href="https://web.dev/articles/codelab-serve-modern-code" class="external-link">using differential serving and polyfills</a> if you feature-detect a missing browser API that you need. Since some browser features cannot be polyfilled, we recommend that you check the polyfill documentation for potential limitations. </p> <h2 id="use-meaningful-http-status-codes" data-text="Use meaningful HTTP status codes" tabindex="-1">Use meaningful HTTP status codes</h2> <p> Googlebot uses <a href="/search/docs/crawling-indexing/http-network-errors">HTTP status codes</a> to find out if something went wrong when crawling the page. </p> <p> To tell Googlebot if a page can't be crawled or indexed, use a meaningful status code, like a <code translate="no" dir="ltr">404</code> for a page that could not be found or a <code translate="no" dir="ltr">401</code> code for pages behind a login. You can use HTTP status codes to tell Googlebot if a page has moved to a new URL, so that the index can be updated accordingly. </p> <p>Here's a <a href="/search/docs/crawling-indexing/http-network-errors#http-status-codes">list of HTTP status codes</a> and how they effect Google Search.</p> <h3 id="avoid-soft-404s" data-text="Avoid soft 404 errors in single-page apps" tabindex="-1">Avoid <code translate="no" dir="ltr">soft 404</code> errors in single-page apps</h3> <p> In client-side rendered single-page apps, routing is often implemented as client-side routing. In this case, using meaningful HTTP status codes can be impossible or impractical. To avoid <a href="/search/docs/crawling-indexing/http-network-errors#soft-404-errors"><code translate="no" dir="ltr">soft 404</code> errors</a> when using client-side rendering and routing, use one of the following strategies: </p> <ul> <li>Use a <a href="/search/docs/crawling-indexing/301-redirects#jslocation">JavaScript redirect</a> to a URL for which the server responds with a <code translate="no" dir="ltr">404</code> HTTP status code (for example <code translate="no" dir="ltr">/not-found</code>).</li> <li>Add a <code translate="no" dir="ltr">&lt;meta name="robots" content="noindex"&gt;</code> to error pages using JavaScript.</li> </ul> <p>Here is sample code for the redirect approach:</p> <div></div><devsite-code><pre class="devsite-click-to-copy" data-label="Redirect with JavaScript" translate="no" dir="ltr" is-upgraded syntax="JavaScript"><span class="devsite-syntax-nx">fetch</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-sb">`/api/products/</span><span class="devsite-syntax-si">${</span><span class="devsite-syntax-nx">productId</span><span class="devsite-syntax-si">}</span><span class="devsite-syntax-sb">`</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">then</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">response</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">=></span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">response</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">json</span><span class="devsite-syntax-p">())</span> <span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">then</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">product</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">=></span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">if</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">product</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">exists</span><span class="devsite-syntax-p">)</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">showProductDetails</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">product</span><span class="devsite-syntax-p">);</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// shows the product information on the page</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">else</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// this product does not exist, so this is an error page.</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nb">window</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">location</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">href</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s1">'/not-found'</span><span class="devsite-syntax-p">;</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// redirect to 404 page on the server.</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span> <span class="devsite-syntax-p">})</span></pre></devsite-code> <p>Here is sample code for the <code translate="no" dir="ltr">noindex</code> tag approach:</p> <div></div><devsite-code><pre class="devsite-click-to-copy" data-label="Add noindex to error pages with JavaScript" translate="no" dir="ltr" is-upgraded syntax="JavaScript"><span class="devsite-syntax-nx">fetch</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-sb">`/api/products/</span><span class="devsite-syntax-si">${</span><span class="devsite-syntax-nx">productId</span><span class="devsite-syntax-si">}</span><span class="devsite-syntax-sb">`</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">then</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">response</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">=></span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">response</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">json</span><span class="devsite-syntax-p">())</span> <span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">then</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">product</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">=></span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">if</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">product</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">exists</span><span class="devsite-syntax-p">)</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">showProductDetails</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">product</span><span class="devsite-syntax-p">);</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// shows the product information on the page</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">else</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// this product does not exist, so this is an error page.</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// Note: This example assumes there is no other robots meta tag present in the HTML.</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">const</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">metaRobots</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nb">document</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">createElement</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s1">'meta'</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">metaRobots</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">name</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s1">'robots'</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">metaRobots</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">content</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s1">'noindex'</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nb">document</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">head</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">appendChild</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">metaRobots</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span> <span class="devsite-syntax-p">})</span></pre></devsite-code> <h2 id="use-history-api" data-text="Use the History API instead of fragments" tabindex="-1">Use the History API instead of fragments</h2> <p> Google can only discover your links if they are <a href="/search/docs/crawling-indexing/links-crawlable"><code translate="no" dir="ltr">&lt;a&gt;</code> HTML elements with an <code translate="no" dir="ltr">href</code> attribute</a>. </p> <p> For single-page applications with client-side routing, use the <a href="https://developer.mozilla.org/en-US/docs/Web/API/History" class="external-link">History API</a> to implement routing between different views of your web app. To ensure that Googlebot can parse and extract your URLs, don't use fragments to load different page content. The following example is a bad practice, because Googlebot can't reliably resolve the URLs: </p> <div></div><devsite-code><pre class="devsite-click-to-copy" data-label="Bad example with URL fragments" translate="no" dir="ltr" is-upgraded syntax="JavaScript">&lt;<span class="devsite-syntax-nx">nav</span>&gt; <span class="devsite-syntax-w"> </span>&lt;<span class="devsite-syntax-nx">ul</span>&gt; <span class="devsite-syntax-w"> </span>&lt;<span class="devsite-syntax-nx">li&gt;&lt;a</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">href</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-s2">"#/products"</span>&gt;<span class="devsite-syntax-nx">Our</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">products</span>&lt;<span class="devsite-syntax-o">/</span><span class="devsite-syntax-nx">a</span>&gt;&lt;<span class="devsite-syntax-o">/</span><span class="devsite-syntax-nx">li</span>&gt; <span class="devsite-syntax-w"> </span>&lt;<span class="devsite-syntax-nx">li&gt;&lt;a</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">href</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-s2">"#/services"</span>&gt;<span class="devsite-syntax-nx">Our</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">services</span>&lt;<span class="devsite-syntax-o">/</span><span class="devsite-syntax-nx">a</span>&gt;&lt;<span class="devsite-syntax-o">/</span><span class="devsite-syntax-nx">li</span>&gt; <span class="devsite-syntax-w"> </span>&lt;<span class="devsite-syntax-o">/</span><span class="devsite-syntax-nx">ul</span>&gt; &lt;<span class="devsite-syntax-err">/nav</span>&gt; &lt;<span class="devsite-syntax-nx">h1&gt;Welcome</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">to</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">example</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">com</span><span class="devsite-syntax-o">!</span>&lt;<span class="devsite-syntax-err">/h1</span>&gt; &lt;<span class="devsite-syntax-nx">div</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">id</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-s2">"placeholder"</span>&gt; <span class="devsite-syntax-w"> </span>&lt;<span class="devsite-syntax-nx">p&gt;Learn</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">more</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">about</span><span class="devsite-syntax-w"> </span>&lt;<span class="devsite-syntax-nx">a</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">href</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-s2">"#/products"</span>&gt;<span class="devsite-syntax-nx">our</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">products</span>&lt;<span class="devsite-syntax-o">/</span><span class="devsite-syntax-nx">a</span>&gt;<span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">and</span><span class="devsite-syntax-w"> </span>&lt;<span class="devsite-syntax-nx">a</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">href</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-s2">"#/services"</span>&gt;<span class="devsite-syntax-nx">our</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">services</span>&lt;<span class="devsite-syntax-o">/</span><span class="devsite-syntax-nx">p</span>&gt; &lt;<span class="devsite-syntax-err">/div</span>&gt; &lt;<span class="devsite-syntax-nx">script</span>&gt; <span class="devsite-syntax-nb">window</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">addEventListener</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s1">'hashchange'</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">function</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">goToPage</span><span class="devsite-syntax-p">()</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// this function loads different content based on the current URL fragment</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">const</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">pageToLoad</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nb">window</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">location</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">hash</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">slice</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-mf">1</span><span class="devsite-syntax-p">);</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// URL fragment</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nb">document</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">getElementById</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s1">'placeholder'</span><span class="devsite-syntax-p">).</span><span class="devsite-syntax-nx">innerHTML</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">load</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">pageToLoad</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-p">});</span> &lt;<span class="devsite-syntax-err">/script</span>&gt;</pre></devsite-code> <p>Instead, you can make sure your URLs are accessible to Googlebot by implementing the History API:</p> <div></div><devsite-code><pre class="devsite-click-to-copy" data-label="Using the History API" translate="no" dir="ltr" is-upgraded syntax="JavaScript">&lt;<span class="devsite-syntax-nx">nav</span>&gt; <span class="devsite-syntax-w"> </span>&lt;<span class="devsite-syntax-nx">ul</span>&gt; <span class="devsite-syntax-w"> </span>&lt;<span class="devsite-syntax-nx">li&gt;&lt;a</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">href</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-s2">"/products"</span>&gt;<span class="devsite-syntax-nx">Our</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">products</span>&lt;<span class="devsite-syntax-o">/</span><span class="devsite-syntax-nx">a</span>&gt;&lt;<span class="devsite-syntax-o">/</span><span class="devsite-syntax-nx">li</span>&gt; <span class="devsite-syntax-w"> </span>&lt;<span class="devsite-syntax-nx">li&gt;&lt;a</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">href</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-s2">"/services"</span>&gt;<span class="devsite-syntax-nx">Our</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">services</span>&lt;<span class="devsite-syntax-o">/</span><span class="devsite-syntax-nx">a</span>&gt;&lt;<span class="devsite-syntax-o">/</span><span class="devsite-syntax-nx">li</span>&gt; <span class="devsite-syntax-w"> </span>&lt;<span class="devsite-syntax-o">/</span><span class="devsite-syntax-nx">ul</span>&gt; &lt;<span class="devsite-syntax-err">/nav</span>&gt; &lt;<span class="devsite-syntax-nx">h1&gt;Welcome</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">to</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">example</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">com</span><span class="devsite-syntax-o">!</span>&lt;<span class="devsite-syntax-err">/h1</span>&gt; &lt;<span class="devsite-syntax-nx">div</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">id</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-s2">"placeholder"</span>&gt; <span class="devsite-syntax-w"> </span>&lt;<span class="devsite-syntax-nx">p&gt;Learn</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">more</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">about</span><span class="devsite-syntax-w"> </span>&lt;<span class="devsite-syntax-nx">a</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">href</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-s2">"/products"</span>&gt;<span class="devsite-syntax-nx">our</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">products</span>&lt;<span class="devsite-syntax-o">/</span><span class="devsite-syntax-nx">a</span>&gt;<span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">and</span><span class="devsite-syntax-w"> </span>&lt;<span class="devsite-syntax-nx">a</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">href</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-s2">"/services"</span>&gt;<span class="devsite-syntax-nx">our</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">services</span>&lt;<span class="devsite-syntax-o">/</span><span class="devsite-syntax-nx">p</span>&gt; &lt;<span class="devsite-syntax-err">/div</span>&gt; &lt;<span class="devsite-syntax-nx">script</span>&gt; <span class="devsite-syntax-kd">function</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">goToPage</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">event</span><span class="devsite-syntax-p">)</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">event</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">preventDefault</span><span class="devsite-syntax-p">();</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// stop the browser from navigating to the destination URL.</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">const</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">hrefUrl</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">event</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">target</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">getAttribute</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s1">'href'</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">const</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">pageToLoad</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">hrefUrl</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">slice</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-mf">1</span><span class="devsite-syntax-p">);</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// remove the leading slash</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nb">document</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">getElementById</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s1">'placeholder'</span><span class="devsite-syntax-p">).</span><span class="devsite-syntax-nx">innerHTML</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">load</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">pageToLoad</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nb">window</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">history</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">pushState</span><span class="devsite-syntax-p">({},</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nb">window</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">title</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">hrefUrl</span><span class="devsite-syntax-p">)</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// Update URL as well as browser history.</span> <span class="devsite-syntax-p">}</span> <span class="devsite-syntax-c1">// Enable client-side routing for all links on the page</span> <span class="devsite-syntax-nb">document</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">querySelectorAll</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s1">'a'</span><span class="devsite-syntax-p">).</span><span class="devsite-syntax-nx">forEach</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">link</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">=></span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">link</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">addEventListener</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s1">'click'</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">goToPage</span><span class="devsite-syntax-p">));</span> &lt;<span class="devsite-syntax-err">/script</span>&gt;</pre></devsite-code> <h2 id="properly-inject-canonical-links" data-text='Properly inject the rel="canonical" link tag' tabindex="-1">Properly inject the <code translate="no" dir="ltr">rel="canonical"</code> link tag</h2> <p> While we don't recommend using JavaScript for this, it is possible to inject a <a href="/search/docs/crawling-indexing/consolidate-duplicate-urls#rel-canonical-link-method"><code translate="no" dir="ltr">rel="canonical"</code> link tag</a> with JavaScript. Google Search will pick up the injected canonical URL when rendering the page. Here is an example to inject a <code translate="no" dir="ltr">rel="canonical"</code> link tag with JavaScript: </p> <div></div><devsite-code><pre class="devsite-click-to-copy" data-label="Add rel=canonical with JavaScript" translate="no" dir="ltr" is-upgraded syntax="JavaScript"><span class="devsite-syntax-nx">fetch</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s1">'/api/cats/'</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">+</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">id</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">then</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-kd">function</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">response</span><span class="devsite-syntax-p">)</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">return</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">response</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">json</span><span class="devsite-syntax-p">();</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">})</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">then</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-kd">function</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">cat</span><span class="devsite-syntax-p">)</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// creates a canonical link tag and dynamically builds the URL</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// e.g. https://example.com/cats/simba</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">const</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">linkTag</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nb">document</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">createElement</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s1">'link'</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">linkTag</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">setAttribute</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s1">'rel'</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s1">'canonical'</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">linkTag</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">href</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s1">'https://example.com/cats/'</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">+</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">cat</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">urlFriendlyName</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nb">document</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">head</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">appendChild</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">linkTag</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">});</span></pre></devsite-code> <aside class="warning"> When using JavaScript to inject the <code translate="no" dir="ltr">rel="canonical"</code> link tag, make sure that this is the only <code translate="no" dir="ltr">rel="canonical"</code> link tag on the page. Incorrect implementations might create multiple <code translate="no" dir="ltr">rel="canonical"</code> link tag or change an existing <code translate="no" dir="ltr">rel="canonical"</code> link tag. Conflicting or multiple <code translate="no" dir="ltr">rel="canonical"</code> link tags may lead to unexpected results. </aside> <h2 id="use-meta-robots-tags-carefully" data-text="Use robots meta tags carefully" tabindex="-1">Use <span translate="no">robots</span> <code translate="no" dir="ltr">meta</code> tags carefully</h2> <p> You can prevent Google from indexing a page or following links through the <span translate="no">robots</span> <code translate="no" dir="ltr">meta</code> tag. For example, adding the following <code translate="no" dir="ltr">meta</code> tag to the top of your page blocks Google from indexing the page: </p> <div></div><devsite-code><pre class="devsite-click-to-copy" data-label="robots noindex, nofollow" translate="no" dir="ltr" is-upgraded syntax="JavaScript">&lt;<span class="devsite-syntax-o">!--</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">Google</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">won</span><span class="devsite-syntax-err">'</span><span class="devsite-syntax-nx">t</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">index</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">this</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">page</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">or</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">follow</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">links</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">on</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">this</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">page</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">--</span>&gt; &lt;<span class="devsite-syntax-nx">meta</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">name</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-s2">"robots"</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">content</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-s2">"noindex, nofollow"</span>&gt;</pre></devsite-code> <p> You can use JavaScript to add a <span translate="no">robots</span> <code translate="no" dir="ltr">meta</code> tag to a page or change its content. The following example code shows how to change the <span translate="no">robots</span> <code translate="no" dir="ltr">meta</code> tag with JavaScript to prevent indexing of the current page if an API call doesn't return content. </p> <div></div><devsite-code><pre class="devsite-click-to-copy" data-label="Changing the robots meta tag with JavaScript" translate="no" dir="ltr" is-upgraded syntax="JavaScript"><span class="devsite-syntax-nx">fetch</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s1">'/api/products/'</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">+</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">productId</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">then</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-kd">function</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">response</span><span class="devsite-syntax-p">)</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">return</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">response</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">json</span><span class="devsite-syntax-p">();</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">})</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">then</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-kd">function</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">apiResponse</span><span class="devsite-syntax-p">)</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">if</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">apiResponse</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">isError</span><span class="devsite-syntax-p">)</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// get the <span translate="no">robots</span> <code translate="no" dir="ltr">meta</code> tag</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">var</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">metaRobots</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nb">document</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">querySelector</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s1">'meta[name="robots"]'</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// if there was no <span translate="no">robots</span> <code translate="no" dir="ltr">meta</code> tag, add one</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">if</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-o">!</span><span class="devsite-syntax-nx">metaRobots</span><span class="devsite-syntax-p">)</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">metaRobots</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nb">document</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">createElement</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s1">'meta'</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">metaRobots</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">setAttribute</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s1">'name'</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s1">'robots'</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nb">document</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">head</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">appendChild</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-nx">metaRobots</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// tell Google to exclude this page from the index</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">metaRobots</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">setAttribute</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s1">'content'</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s1">'noindex'</span><span class="devsite-syntax-p">);</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// display an error message to the user</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nx">errorMsg</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-nx">textContent</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s1">'This product is no longer available'</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">return</span><span class="devsite-syntax-p">;</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">}</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// display product information</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">// ...</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">});</span></pre></devsite-code> <p> When Google encounters <code translate="no" dir="ltr">noindex</code> in the <span translate="no">robots</span> <code translate="no" dir="ltr">meta</code> tag before running JavaScript, it doesn't render or index the page. </p> <aside class="warning"> If Google encounters the <code translate="no" dir="ltr">noindex</code> tag, it skips rendering and JavaScript execution. Because Google skips your JavaScript in this case, there is no chance to remove the tag from the page. <br> Using JavaScript to change or remove the <span translate="no">robots</span> <code translate="no" dir="ltr">meta</code> tag might not work as expected. Google skips rendering and JavaScript execution if the <span translate="no">robots</span> <code translate="no" dir="ltr">meta</code> tag initially contains <code translate="no" dir="ltr">noindex</code>. If there is a possibility that you <i>do</i> want the page indexed, don't use a <code translate="no" dir="ltr">noindex</code> tag in the original page code. </aside> <h2 id="caching" data-text="Use long-lived caching" tabindex="-1">Use long-lived caching</h2> <p> Googlebot caches aggressively in order to reduce network requests and resource usage. WRS may ignore caching headers. This may lead WRS to use outdated JavaScript or CSS resources. Content fingerprinting avoids this problem by making a fingerprint of the content part of the filename, like <code translate="no" dir="ltr">main.2bb85551.js</code>. The fingerprint depends on the content of the file, so updates generate a different filename every time. Check out the <a href="https://web.dev/articles/http-cache#versioned-urls" class="external-link">web.dev guide on long-lived caching strategies</a> to learn more. </p> <h2 id="structured-data" data-text="Use structured data" tabindex="-1">Use structured data</h2> <p> When using <a href="/search/docs/appearance/structured-data/intro-structured-data">structured data</a> on your pages, you can use <a href="/search/docs/guides/generate-structured-data-with-javascript#testing">JavaScript to generate the required JSON-LD and inject it into the page</a>. Make sure to <a href="/search/docs/guides/debug">test your implementation</a> to avoid issues. </p> <h2 id="web-components" data-text="Follow best practices for web components" tabindex="-1">Follow best practices for web components</h2> <p> Google supports web components. When Google renders a page, it <a href="/web/fundamentals/web-components/shadowdom#lightdom" class="external-link">flattens the shadow DOM and light DOM</a> content. This means Google can only see content that's visible in the rendered HTML. To make sure that Google can still see your content after it's rendered, use the <a href="https://search.google.com/test/rich-results" class="external-link">Rich Results Test</a> or the <a href="https://support.google.com/webmasters/answer/9012289" class="external-link">URL Inspection Tool</a> and look at the rendered HTML. </p> <p> If the content isn't visible in the rendered HTML, Google won't be able to index it. </p> <p> The following example creates a web component that displays its light DOM content inside its shadow DOM. One way to make sure both light DOM and shadow DOM content is displayed in the rendered HTML is to use a <a href="/web/fundamentals/web-components/shadowdom#slots" class="external-link">Slot</a> element. </p> <div></div><devsite-code><pre class="devsite-click-to-copy" data-label="Creating light DOM inside shadow DOM" translate="no" dir="ltr" is-upgraded syntax="HTML">&lt;script&gt; class MyComponent extends HTMLElement { constructor() { super(); this.attachShadow({ mode: 'open' }); } connectedCallback() { let p = document.createElement('p'); p.innerHTML = 'Hello World, this is shadow DOM content. Here comes the light DOM: &lt;slot&gt;&lt;/slot&gt;'; this.shadowRoot.appendChild(p); } } window.customElements.define('my-component', MyComponent); &lt;/script&gt; &lt;my-component&gt; &lt;p&gt;This is light DOM content. It's projected into the shadow DOM.&lt;/p&gt; &lt;p&gt;WRS renders this content as well as the shadow DOM content.&lt;/p&gt; &lt;/my-component&gt;</pre></devsite-code> <p>After rendering, Google can index this content:</p> <div></div><devsite-code><pre class="devsite-click-to-copy" data-label="DOM content after rendering" translate="no" dir="ltr" is-upgraded syntax="HTML">&lt;my-component&gt; Hello World, this is shadow DOM content. Here comes the light DOM: &lt;p&gt;This is light DOM content. It's projected into the shadow DOM&lt;p&gt; &lt;p&gt;WRS renders this content as well as the shadow DOM content.&lt;/p&gt; &lt;/my-component&gt; </pre></devsite-code> <h2 id="fix-images" data-text="Fix images and lazy-loaded content" tabindex="-1">Fix images and lazy-loaded content</h2> <p> Images can be quite costly on bandwidth and performance. A good strategy is to use lazy-loading to only load images when the user is about to see them. To make sure you're implementing lazy-loading in a search-friendly way, follow <a href="/search/docs/guides/lazy-loading">our lazy-loading guidelines</a>. </p> <h2 id="accessibility" data-text="Design for accessibility" tabindex="-1">Design for accessibility</h2> <p> Create pages for users, not just search engines. When you're designing your site, think about the needs of your users, including those who may not be using a JavaScript-capable browser (for example, people who use screen readers or less advanced mobile devices). One of the easiest ways to test your site's accessibility is to preview it in your browser with JavaScript turned off, or to view it in a text-only browser such as Lynx. Viewing a site as text-only can also help you identify other content which may be hard for Google to see, such as text embedded in images. </p> <devsite-hats-survey class="nocontent" hats-id="egUfosvgZ0gb2CML1jd0VMoBx2ec" listnr-id="103417"></devsite-hats-survey> </div> <devsite-thumb-rating position="footer"> </devsite-thumb-rating> <devsite-feedback position="footer" project-name="Documentation" product-id="103417" bucket="Search Docs" context="DevSite feedback link" version="t-devsite-webserver-20241114-r00-rc02.464922260396498922" data-label="Send Feedback Button" track-type="feedback" track-name="sendFeedbackLink" track-metadata-position="footer" class="nocontent" disable-product-feedback project-icon="https://developers.google.com/static/search/images/google-search-central-logo.svg" project-support-url="https://developers.google.com/search/help" > <button> Send feedback </button> </devsite-feedback> <div class="devsite-floating-action-buttons"> </div> </article> <devsite-content-footer class="nocontent"> <p>Except as otherwise noted, the content of this page is licensed under the <a href="https://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 License</a>, and code samples are licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache 2.0 License</a>. For details, see the <a href="https://developers.google.com/site-policies">Google Developers Site Policies</a>. Java is a registered trademark of Oracle and/or its affiliates.</p> <p>Last updated 2024-10-31 UTC.</p> </devsite-content-footer> <devsite-notification > </devsite-notification> <div class="devsite-content-data"> <template class="devsite-thumb-rating-feedback"> <devsite-feedback position="thumb-rating" project-name="Documentation" product-id="103417" bucket="Search Docs" context="DevSite feedback link" version="t-devsite-webserver-20241114-r00-rc02.464922260396498922" data-label="Send Feedback Button" track-type="feedback" track-name="sendFeedbackLink" track-metadata-position="thumb-rating" class="nocontent" disable-product-feedback project-icon="https://developers.google.com/static/search/images/google-search-central-logo.svg" project-support-url="https://developers.google.com/search/help" > <button> Need to tell us more? </button> </devsite-feedback> </template> <template class="devsite-content-data-template"> [[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2024-10-31 UTC."],[],[]] </template> </div> </devsite-content> </main> <devsite-footer-promos class="devsite-footer"> <nav class="devsite-footer-promos nocontent" aria-label="Promotions"> <ul class="devsite-footer-promos-list"> <li class="devsite-footer-promo"> <a href="https://www.linkedin.com/showcase/googlesearchcentral/" class="devsite-footer-promo-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="linkedin footer promo" aria-label="LinkedIn feed for Google Search Central" data-category="Search docs" > <picture> <img class="devsite-footer-promo-icon" src="/static/search/images/li.png" loading="lazy" alt="LinkedIn"> </picture> <span class="devsite-footer-promo-label"> LinkedIn </span> </a> <div class="devsite-footer-promo-description">Join us on LinkedIn</div> </li> <li class="devsite-footer-promo"> <a href="https://www.youtube.com/channel/UCWf2ZlNsCGDS89VBF_awNvA" class="devsite-footer-promo-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="youtube footer promo" aria-label="Google Search Central YouTube channel" data-category="Search docs" > <picture> <img class="devsite-footer-promo-icon" src="/static/homepage-assets/images/yt.svg" loading="lazy" alt="YouTube"> </picture> <span class="devsite-footer-promo-label"> YouTube </span> </a> <div class="devsite-footer-promo-description">Watch our videos</div> </li> <li class="devsite-footer-promo"> <a href="https://feeds.feedburner.com/blogspot/amDG" class="devsite-footer-promo-title gc-analytics-event" data-category="Site-Wide Custom Events" aria-label="RSS feed for the Search Central Blog" data-label="blog footer promo" data-category="Search docs" > <picture> <img class="devsite-footer-promo-icon" src="https://fonts.gstatic.com/s/i/short-term/release/googlesymbols/rss_feed/default/24px.svg" loading="lazy" alt="Blog"> </picture> <span class="devsite-footer-promo-label"> Blog </span> </a> <div class="devsite-footer-promo-description">Subscribe to our RSS feed</div> </li> <li class="devsite-footer-promo"> <a href="https://pod.link/1512522198" class="devsite-footer-promo-title gc-analytics-event" data-category="Site-Wide Custom Events" aria-label="Search Off the Record podcast episodes" data-label="podcast footer promo" data-category="Search docs" > <picture> <img class="devsite-footer-promo-icon" src="/static/search/images/search-off-the-record-podcast-logo.png" loading="lazy" alt="Podcast"> </picture> <span class="devsite-footer-promo-label"> Podcast </span> </a> <div class="devsite-footer-promo-description">Listen to Search Off the Record</div> </li> <li class="devsite-footer-promo"> <a href="https://twitter.com/googlesearchc" class="devsite-footer-promo-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="twitter footer promo" aria-label="Twitter feed for Google Search Central" data-category="Search docs" > <picture> <img class="devsite-footer-promo-icon" src="/static/homepage-assets/images/x.svg" loading="lazy" alt="X (Twitter)"> </picture> <span class="devsite-footer-promo-label"> X (Twitter) </span> </a> <div class="devsite-footer-promo-description">Join us on X (Twitter)</div> </li> </ul> </nav> </devsite-footer-promos> <devsite-footer-linkboxes class="devsite-footer"> <nav class="devsite-footer-linkboxes nocontent" aria-label="Footer links"> <ul class="devsite-footer-linkboxes-list"> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Get support</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="https://support.google.com/webmasters/community" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)" > Go to the help forum </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/search/help/office-hours" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)" > Submit a question for office hours </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/search/help/report-quality-issues" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)" > Report spam, phishing, or malware </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/search/help" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)" > More support resources </a> </li> </ul> </li> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Resources</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="/search/docs/fundamentals/get-on-google" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)" > Do you need an SEO? </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/search/docs/fundamentals/seo-starter-guide" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)" > SEO Starter Guide </a> </li> <li class="devsite-footer-linkbox-item"> <a href="https://status.search.google.com" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)" > Status of Search systems </a> </li> <li class="devsite-footer-linkbox-item"> <a href="https://support.google.com/webmasters" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)" > Search Console documentation </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/search/case-studies/overview" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 5)" > Case Studies </a> </li> </ul> </li> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Tools</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="https://search.google.com/search-console" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)" > Search Console </a> </li> <li class="devsite-footer-linkbox-item"> <a href="https://search.google.com/test/rich-results" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)" > Rich Results Test </a> </li> <li class="devsite-footer-linkbox-item"> <a href="https://pagespeed.web.dev" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)" > PageSpeed Insights </a> </li> <li class="devsite-footer-linkbox-item"> <a href="https://search.google.com/test/amp" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)" > AMP Test </a> </li> </ul> </li> </ul> </nav> </devsite-footer-linkboxes> <devsite-footer-utility class="devsite-footer"> <div class="devsite-footer-utility nocontent"> <nav class="devsite-footer-sites" aria-label="Other Google Developers websites"> <a href="https://developers.google.com/" class="devsite-footer-sites-logo-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Google Developers Link"> <picture> <img class="devsite-footer-sites-logo" src="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/developers/images/lockup-google-for-developers.svg" loading="lazy" alt="Google Developers"> </picture> </a> <ul class="devsite-footer-sites-list"> <li class="devsite-footer-sites-item"> <a href="//developer.android.com" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Android Link" > Android </a> </li> <li class="devsite-footer-sites-item"> <a href="//developer.chrome.com/home" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Chrome Link" > Chrome </a> </li> <li class="devsite-footer-sites-item"> <a href="//firebase.google.com" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Firebase Link" > Firebase </a> </li> <li class="devsite-footer-sites-item"> <a href="//cloud.google.com" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Google Cloud Platform Link" > Google Cloud Platform </a> </li> <li class="devsite-footer-sites-item"> <a href="//ai.google.dev/" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Google AI Link" > Google AI </a> </li> <li class="devsite-footer-sites-item"> <a href="/products" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer All products Link" > All products </a> </li> </ul> </nav> <nav class="devsite-footer-utility-links" aria-label="Utility links"> <ul class="devsite-footer-utility-list"> <li class="devsite-footer-utility-item "> <a class="devsite-footer-utility-link gc-analytics-event" href="/terms/site-terms" data-category="Site-Wide Custom Events" data-label="Footer Terms link" > Terms </a> </li> <li class="devsite-footer-utility-item "> <a class="devsite-footer-utility-link gc-analytics-event" href="//policies.google.com/privacy" data-category="Site-Wide Custom Events" data-label="Footer Privacy link" > Privacy </a> </li> <li class="devsite-footer-utility-item glue-cookie-notification-bar-control"> <a class="devsite-footer-utility-link gc-analytics-event" href="#" data-category="Site-Wide Custom Events" data-label="Footer Manage cookies link" aria-hidden="true" > Manage cookies </a> </li> <li class="devsite-footer-utility-item devsite-footer-utility-button"> <span class="devsite-footer-utility-description">Sign up for the Google for Developers newsletter</span> <a class="devsite-footer-utility-link gc-analytics-event" href="/newsletter/subscribe" data-category="Site-Wide Custom Events" data-label="Footer Subscribe link" > Subscribe </a> </li> </ul> <devsite-language-selector> <ul role="presentation"> <li role="presentation"> <a role="menuitem" lang="en" >English</a> </li> <li role="presentation"> <a role="menuitem" lang="de" >Deutsch</a> </li> <li role="presentation"> <a role="menuitem" lang="es" >Español</a> </li> <li role="presentation"> <a role="menuitem" lang="es_419" >Español – América Latina</a> </li> <li role="presentation"> <a role="menuitem" lang="fr" >Français</a> </li> <li role="presentation"> <a role="menuitem" lang="id" >Indonesia</a> </li> <li role="presentation"> <a role="menuitem" lang="it" >Italiano</a> </li> <li role="presentation"> <a role="menuitem" lang="pl" >Polski</a> </li> <li role="presentation"> <a role="menuitem" lang="pt_br" >Português – Brasil</a> </li> <li role="presentation"> <a role="menuitem" lang="vi" >Tiếng Việt</a> </li> <li role="presentation"> <a role="menuitem" lang="tr" >Türkçe</a> </li> <li role="presentation"> <a role="menuitem" lang="ru" >Русский</a> </li> <li role="presentation"> <a role="menuitem" lang="ar" >العربيّة</a> </li> <li role="presentation"> <a role="menuitem" lang="hi" >हिंदी</a> </li> <li role="presentation"> <a role="menuitem" lang="th" >ภาษาไทย</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_cn" >中文 – 简体</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_tw" >中文 – 繁體</a> </li> <li role="presentation"> <a role="menuitem" lang="ja" >日本語</a> </li> <li role="presentation"> <a role="menuitem" lang="ko" >한국어</a> </li> </ul> </devsite-language-selector> </nav> </div> </devsite-footer-utility> <devsite-panel></devsite-panel> <devsite-concierge data-info-panel data-ai-panel data-api-explorer-panel > </devsite-concierge> </section></section> <devsite-sitemask></devsite-sitemask> <devsite-snackbar></devsite-snackbar> <devsite-tooltip ></devsite-tooltip> <devsite-heading-link></devsite-heading-link> <devsite-analytics> <script type="application/json" analytics>[{&#34;dimensions&#34;: {&#34;dimension11&#34;: false, &#34;dimension5&#34;: &#34;en&#34;, &#34;dimension4&#34;: &#34;Documentation&#34;, &#34;dimension6&#34;: &#34;en&#34;, &#34;dimension1&#34;: &#34;Signed out&#34;, &#34;dimension3&#34;: false}, &#34;gaid&#34;: &#34;UA-24532603-1&#34;, &#34;metrics&#34;: {&#34;ratings_count&#34;: &#34;metric2&#34;, &#34;ratings_value&#34;: &#34;metric1&#34;}, &#34;purpose&#34;: 1}, {&#34;dimensions&#34;: {&#34;dimension11&#34;: false, &#34;dimension5&#34;: &#34;en&#34;, &#34;dimension4&#34;: &#34;Documentation&#34;, &#34;dimension6&#34;: &#34;en&#34;, &#34;dimension1&#34;: &#34;Signed out&#34;, &#34;dimension3&#34;: false}, &#34;gaid&#34;: &#34;UA-24532603-6&#34;, &#34;metrics&#34;: {&#34;ratings_count&#34;: &#34;metric2&#34;, &#34;ratings_value&#34;: &#34;metric1&#34;}, &#34;purpose&#34;: 0}]</script> <script type="application/json" tag-management>{&#34;at&#34;: &#34;True&#34;, &#34;ga4&#34;: [{&#34;id&#34;: &#34;G-272J68FCRF&#34;, &#34;purpose&#34;: 1}, {&#34;id&#34;: &#34;G-Q04XXL6ZW2&#34;, &#34;purpose&#34;: 0}], &#34;ga4p&#34;: [{&#34;id&#34;: &#34;G-272J68FCRF&#34;, &#34;purpose&#34;: 1}], &#34;gtm&#34;: [], &#34;parameters&#34;: {&#34;internalUser&#34;: &#34;False&#34;, &#34;language&#34;: {&#34;machineTranslated&#34;: &#34;False&#34;, &#34;requested&#34;: &#34;en&#34;, &#34;served&#34;: &#34;en&#34;}, &#34;pageType&#34;: &#34;lcat&#34;, &#34;projectName&#34;: &#34;Documentation&#34;, &#34;signedIn&#34;: &#34;False&#34;, &#34;tenant&#34;: &#34;developers&#34;, &#34;recommendations&#34;: {&#34;sourcePage&#34;: &#34;&#34;, &#34;sourceType&#34;: 0, &#34;sourceRank&#34;: 0, &#34;sourceIdenticalDescriptions&#34;: 0, &#34;sourceTitleWords&#34;: 0, &#34;sourceDescriptionWords&#34;: 0, &#34;experiment&#34;: &#34;&#34;}, &#34;experiment&#34;: {&#34;ids&#34;: &#34;&#34;}}}</script> </devsite-analytics> <devsite-badger></devsite-badger> <script nonce="iCpSxlV5UIn2aRLVQ0SR7O3hwu5ESc"> (function(d,e,v,s,i,t,E){d['GoogleDevelopersObject']=i; t=e.createElement(v);t.async=1;t.src=s;E=e.getElementsByTagName(v)[0]; E.parentNode.insertBefore(t,E);})(window, document, 'script', 'https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/developers/js/app_loader.js', '[1,"en",null,"/js/devsite_app_module.js","https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625","https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/developers","https://developers-dot-devsite-v2-prod.appspot.com",null,null,["/_pwa/developers/manifest.json","https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/images/video-placeholder.svg","https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/developers/images/favicon-new.png","https://fonts.googleapis.com/css?family=Google+Sans:400,500|Roboto:400,400italic,500,500italic,700,700italic|Roboto+Mono:400,500,700&display=swap"],1,null,[1,6,8,12,14,17,21,25,50,52,63,70,75,76,80,87,91,92,93,97,98,100,101,102,103,104,105,107,108,109,110,112,113,117,118,120,122,124,125,126,127,129,130,131,132,133,134,135,136,138,140,141,147,148,149,151,152,156,157,158,159,161,163,164,168,169,170,179,180,182,183,186,191,193,196],"AIzaSyAP-jjEJBzmIyKR4F-3XITp8yM9T1gEEI8","AIzaSyB6xiKGDR5O3Ak2okS4rLkauxGUG7XP0hg","developers.google.com","AIzaSyAQk0fBONSGUqCNznf6Krs82Ap1-NV6J4o","AIzaSyCCxcqdrZ_7QMeLCRY20bh_SXdAYqy70KY",null,null,null,["Profiles__enable_complete_playlist_endpoint","MiscFeatureFlags__enable_view_transitions","CloudShell__cloud_code_overflow_menu","Cloud__enable_cloud_shell_fte_user_flow","Search__enable_dynamic_content_confidential_banner","Search__enable_suggestions_from_borg","Cloud__enable_cloudx_experiment_ids","Profiles__enable_recognition_badges","TpcFeatures__enable_required_headers","MiscFeatureFlags__developers_footer_image","Cloud__enable_legacy_calculator_redirect","Profiles__enable_page_saving","Profiles__enable_awarding_url","Search__enable_ai_search_summaries","MiscFeatureFlags__developers_footer_dark_image","Profiles__enable_developer_profiles_callout","TpcFeatures__enable_mirror_tenant_redirects","Cloud__enable_cloud_dlp_service","Concierge__enable_concierge","Profiles__require_profile_eligibility_for_signin","Significatio__enable_by_tenant","Profiles__enable_public_developer_profiles","CloudShell__cloud_shell_button","Analytics__enable_clearcut_logging","Concierge__enable_concierge_restricted","Cloud__enable_cloud_facet_chat","Profiles__enable_dashboard_curated_recommendations","BookNav__enable_tenant_cache_key","Search__enable_ai_search_summaries_restricted","MiscFeatureFlags__enable_explain_this_code","DevPro__enable_cloud_innovators_plus","Cloud__enable_free_trial_server_call","Profiles__enable_release_notes_notifications","Cloud__enable_cloud_shell","MiscFeatureFlags__enable_firebase_utm","MiscFeatureFlags__enable_variable_operator","Experiments__reqs_query_experiments","MiscFeatureFlags__enable_project_variables","EngEduTelemetry__enable_engedu_telemetry","MiscFeatureFlags__emergency_css","Profiles__enable_completecodelab_endpoint","Cloud__enable_llm_concierge_chat","Concierge__enable_pushui","Cloud__enable_cloudx_ping","DevPro__enable_developer_subscriptions","Search__enable_ai_eligibility_checks","Search__enable_page_map","Profiles__enable_profile_collections"],null,null,"AIzaSyBLEMok-5suZ67qRPzx0qUtbnLmyT_kCVE","https://developerscontentserving-pa.clients6.google.com","AIzaSyCM4QpTRSqP5qI4Dvjt4OAScIN8sOUlO-k","https://developerscontentsearch-pa.clients6.google.com",1,4,null,"https://developerprofiles-pa.clients6.google.com",[1,"developers","Google for Developers","developers.google.com",null,"developers-dot-devsite-v2-prod.appspot.com",null,null,[1,1,[1],null,null,null,null,null,null,null,null,[1],null,null,null,null,null,null,[1],[1,null,null,[1,20],"/recommendations/information"],null,null,null,[1,1,1],[1,1,null,1,1]],null,[null,null,null,null,null,null,"/images/lockup-new.svg","/images/touchicon-180-new.png",null,null,null,null,1,null,null,null,null,null,null,null,null,1,null,null,null,"/images/lockup-dark-theme-new.svg",[]],[],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[6,1,14,15,20,22,23,29,32,36],null,[[null,null,null,[3,7,10,2,39,17,4,32,24,11,12,13,34,15,25],null,null,[1,[["docType","Choose a content type",[["Tutorial",null,null,null,null,null,null,null,null,"Tutorial"],["Guide",null,null,null,null,null,null,null,null,"Guide"],["Sample",null,null,null,null,null,null,null,null,"Sample"]]],["product","Choose a product",[["Android",null,null,null,null,null,null,null,null,"Android"],["ARCore",null,null,null,null,null,null,null,null,"ARCore"],["ChromeOS",null,null,null,null,null,null,null,null,"ChromeOS"],["Firebase",null,null,null,null,null,null,null,null,"Firebase"],["Flutter",null,null,null,null,null,null,null,null,"Flutter"],["Assistant",null,null,null,null,null,null,null,null,"Google Assistant"],["GoogleCloud",null,null,null,null,null,null,null,null,"Google Cloud"],["GoogleMapsPlatform",null,null,null,null,null,null,null,null,"Google Maps Platform"],["GooglePay",null,null,null,null,null,null,null,null,"Google Pay & Google Wallet"],["GooglePlay",null,null,null,null,null,null,null,null,"Google Play"],["Tensorflow",null,null,null,null,null,null,null,null,"TensorFlow"]]],["category","Choose a topic",[["AiAndMachineLearning",null,null,null,null,null,null,null,null,"AI and Machine Learning"],["Data",null,null,null,null,null,null,null,null,"Data"],["Enterprise",null,null,null,null,null,null,null,null,"Enterprise"],["Gaming",null,null,null,null,null,null,null,null,"Gaming"],["Mobile",null,null,null,null,null,null,null,null,"Mobile"],["Web",null,null,null,null,null,null,null,null,"Web"]]]]]],[1,1],null,1],[[["UA-24532603-1"],["UA-22084204-5"],null,null,["UA-24532603-5"],null,null,[["G-272J68FCRF"],null,null,[["G-272J68FCRF",2]]],[["UA-24532603-1",2]],null,[["UA-24532603-5",2]],null,1],[[4,3],[16,13],[11,8],[3,2],[12,9],[1,1],[13,10],[6,5],[15,12],[14,11],[5,4]],[[1,1],[2,2]]],null,4,null,null,null,null,null,null,null,null,null,null,null,null,null,"developers.devsite.google"],null,"pk_live_5170syrHvgGVmSx9sBrnWtA5luvk9BwnVcvIi7HizpwauFG96WedXsuXh790rtij9AmGllqPtMLfhe2RSwD6Pn38V00uBCydV4m"]') </script> <devsite-a11y-announce></devsite-a11y-announce> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10