Day 2: Indexing 34
Shown on screen 11
Links and anchors are among the things Google extracts from a page's HTML, and the slide card for them simply read 'We like links.'
“We like links.”
Wording checked against the slide or recording
Speaker Cherry PrommawinIn Day 2, 10:25 · How is HTML interpretedEvidence 2 slide photos, transcript
Used byrequirement DEV-URL-01
Google can extract links written as an a element with an href attribute that holds an absolute or a relative URL, which the speaker called the good old normal way.
Speaker Cherry PrommawinIn Day 2, 10:25 · How is HTML interpretedEvidence slide photo, transcript
Used byrequirement DEV-URL-01
Google cannot extract a link from an a element that only has an onclick handler, because Googlebot does not click, so the JavaScript is never triggered.
Speaker Cherry PrommawinIn Day 2, 10:25 · How is HTML interpretedEvidence slide photo, transcript
Used byrequirement DEV-URL-02
- Repeats D1-C115 Day 1: Google's crawlers do not click buttons. Each page in a series needs its own URL and an <a href> link to the…
- Extended by D2-C184 Day 2: Google follows links in <a href> elements; a link that only runs an onclick handler, or a hash pseudo-link…
- Extended by D2-C287 Day 2: A link that is an <a> element but does not point to a real URL gives Google something to look at, but Google…
Google cannot extract a link from an href attribute placed on an element other than a, such as a span, because that is not a standard way to make a link.
Speaker Cherry PrommawinIn Day 2, 10:25 · How is HTML interpretedEvidence slide photo, transcript
Used byrequirement DEV-URL-02
A Google slide also listed as not extractable an a element with a routerLink attribute instead of an href, and javascript: URLs such as javascript:goTo('products') or javascript:window.location.href='/products'.
Speaker Cherry PrommawinIn Day 2, 10:25 · How is HTML interpretedEvidence slide photo
Used byrequirement DEV-URL-02
In Google's processing step, links are extracted from the HTML Google already has, before rendering, and the URLs found go back to the crawl queue.
Speaker Rebecca YuIn Day 2, 10:40 · Lightning session D: Rendering and JavaScriptEvidence slide photo, transcript
- Extends D1-C040 Day 1: URL discovery works through links: a homepage links to section pages, which link to further pages.
- Extends D2-C048 Day 2: Links extracted during processing are sent back to the crawl queue, where scheduling starts again for the…
Google follows links in <a href> elements; a link that only runs an onclick handler, or a hash pseudo-link such as href=#/products, may be invisible to Google.
Speaker Rebecca YuIn Day 2, 10:40 · Lightning session D: Rendering and JavaScriptEvidence slide photo, transcript
Used byrequirement DEV-URL-02
- Extends D1-C115 Day 1: Google's crawlers do not click buttons. Each page in a series needs its own URL and an <a href> link to the…
- Extends D2-C040 Day 2: Google cannot extract a link from an a element that only has an onclick handler, because Googlebot does not…
The crawlable pattern for single-page app navigation is a real URL in the href, such as <a href=/products>, combined with History API routing (window.history.pushState) instead of hash routes.
Speaker Rebecca YuIn Day 2, 10:40 · Lightning session D: Rendering and JavaScriptEvidence slide photo
Used byrequirement DEV-URL-03
- Repeated by D2-C285 Day 2: Google recommends the History API to give single-page apps clean URLs instead of fragment-based routes.
- Extended by D2-C288 Day 2: With the History API, a single-page app can use real links and attach event listeners that intercept the…
A market or language selector built as a button works for users but leaves the whole cluster of alternate-language pages without crawlable links, so the cluster is orphaned for Google.
“The nav works perfectly for users, and the entire alternate-language cluster is orphaned.”
Wording checked against the slide or recording
Speaker Rebecca YuIn Day 2, 10:40 · Lightning session D: Rendering and JavaScriptEvidence slide photo
Used byrequirement DEV-INT-06
- Extends D1-C115 Day 1: Google's crawlers do not click buttons. Each page in a series needs its own URL and an <a href> link to the…
URL fragments (#) are often ignored by crawlers: a fragment exists only in the browser, so Google cannot request it.
“Fragment identifiers (#) are often ignored by crawlers.”
Wording checked against the slide or recording
Speaker Erin SparlingIn Day 2, 11:15 · What is Google friendly JavaScriptEvidence slide photo, transcript
Used byrequirement DEV-URL-03
- Repeats D1-C101 Day 1: Google's faceted navigation guide prefers prevention: disallow filter URLs in robots.txt and keep crawlable…
Google recommends the History API to give single-page apps clean URLs instead of fragment-based routes.
“Use the History API for clean URLs in SPAs.”
Wording checked against the slide or recording
Speaker Erin SparlingIn Day 2, 11:15 · What is Google friendly JavaScriptEvidence slide photo, transcript
Used byrequirement DEV-URL-03glossary term History API
- Repeats D2-C185 Day 2: The crawlable pattern for single-page app navigation is a real URL in the href, such as <a href=/products>…
Said on stage 14
The speaker said links are still an extremely important part of the internet and of most major search and AI systems.
Speaker Cherry PrommawinIn Day 2, 10:25 · How is HTML interpretedEvidence transcript
Google uses the links it extracts for three purposes: discovering new pages, determining a site's structure, and ranking.
Speaker Cherry PrommawinIn Day 2, 10:25 · How is HTML interpretedEvidence transcript
Used byrequirement DEV-URL-01
- Extends D1-C040 Day 1: URL discovery works through links: a homepage links to section pages, which link to further pages.
The speaker said Google sometimes also extracts URLs that are typed out as plain text on a page without being hyperlinked; the remarks around this point were unclear in the recording.
Speaker Cherry PrommawinIn Day 2, 10:25 · How is HTML interpretedEvidence transcript
In a navigation example, the main navigation was in the raw HTML and would survive a rendering failure, but the whole sub-navigation was built by JavaScript, so all of its links would be inaccessible to bots if rendering broke.
Speaker Sören BendigIn Day 2, 10:40 · Lightning session D: Rendering and JavaScriptEvidence transcript
When checking which links bots can see, keep in mind that the rendered HTML can change with user actions, a community speaker cautioned.
Speaker Sören BendigIn Day 2, 10:40 · Lightning session D: Rendering and JavaScriptEvidence transcript
Non-crawlable link markup, such as onclick links and hash pseudo-links, is common in single-page web apps, and sites that use faceted navigation should check their links for it.
Speaker Rebecca YuIn Day 2, 10:40 · Lightning session D: Rendering and JavaScriptEvidence transcript
Used byrequirement DEV-URL-02glossary term Single-page app (SPA)
In the speaker's product page example, three of the mistakes combine: product links behind onclick handlers keep the product detail pages hidden, the product API is blocked in robots.txt, and some content waits for a user interaction.
Speaker Rebecca YuIn Day 2, 10:40 · Lightning session D: Rendering and JavaScriptEvidence transcript
Erin Sparling called URL fragments (the part of a URL after #) the next most common JavaScript issue seen, after rendering problems and blocked rendering.
Speaker Erin SparlingIn Day 2, 11:15 · What is Google friendly JavaScriptEvidence transcript
Moving a single-page app from fragment-based routes to real paths with the History API keeps the same client-side behaviour and was described as not free but relatively straightforward.
Speaker Erin SparlingIn Day 2, 11:15 · What is Google friendly JavaScriptEvidence transcript
Used byrequirement DEV-URL-03
A link that is an <a> element but does not point to a real URL gives Google something to look at, but Google will not know where the link goes.
Speaker Erin SparlingIn Day 2, 11:15 · What is Google friendly JavaScriptEvidence transcript
Used byrequirement DEV-URL-01
- Extends D1-C040 Day 1: URL discovery works through links: a homepage links to section pages, which link to further pages.
- Extends D2-C040 Day 2: Google cannot extract a link from an a element that only has an onclick handler, because Googlebot does not…
With the History API, a single-page app can use real links and attach event listeners that intercept the click, rewrite the URL with pushState and load the new content, so Google can follow the links while users avoid full page reloads.
Speaker Erin SparlingIn Day 2, 11:15 · What is Google friendly JavaScriptEvidence transcript
Used byrequirement DEV-URL-03glossary terms History API, Single-page app (SPA)
- Extends D2-C185 Day 2: The crawlable pattern for single-page app navigation is a real URL in the href, such as <a href=/products>…
Real URLs also work as deep links: Android, iOS and desktop operating systems accept full URLs as keys to specific content in an app, so clean URLs simplify the cross-platform user experience, not only indexing.
Speaker Erin SparlingIn Day 2, 11:15 · What is Google friendly JavaScriptEvidence transcript
Used byrequirement DEV-URL-03
The technical steps of a community speaker's domain consolidation included submitting new sitemaps, filing a change of address in Search Console and updating internal links so the new pages did not rely on redirects alone.
Speaker Martyna AğanoğluIn Day 2, 12:05 · Lightning session E: Managing Duplicates and Site MovesEvidence transcript
Used byrequirement DEV-CAN-09glossary term Change of Address tool
- Extends D1-C540 Day 1: Asked how to plan a migration that does not leave many URLs unindexed, a Google panelist said the answer is…
A community speaker advised asking support and sales which pages make buyers buy, and preparing the destination with relevant content and internal links before a migration launches.
Speaker David Carrasco PamiesIn Day 2, 12:05 · Lightning session E: Managing Duplicates and Site MovesEvidence transcript
What Google's documentation says 3
Google's link best practices say Google can generally crawl a link only if it is an a element with an href attribute, and list routerLink without href, href on a span, onclick-only a elements and javascript: URLs as not recommended, while noting that Google may still attempt to parse them.
Publisher Google Search CentralAnnotates Day 2, 10:25 · How is HTML interpreted
Used byrequirements DEV-URL-01, DEV-URL-02
Google's JavaScript SEO basics guide says Googlebot extracts links twice, from the HTML response before rendering and again from the rendered HTML, so links injected with JavaScript can be found if they use crawlable <a href> markup.
Publisher Google Search CentralAnnotates Day 2, 10:40 · Lightning session D: Rendering and JavaScript
Used byrequirement DEV-URL-01
- Extends D1-C040 Day 1: URL discovery works through links: a homepage links to section pages, which link to further pages.
To make infinite scroll indexable, Google's lazy-loading guide says to support paginated loading: give each chunk its own persistent, unique URL, link sequentially to those URLs, and update the displayed URL with the History API when a new chunk becomes the main visible element.
Publisher Google Search CentralAnnotates Day 2, 11:15 · What is Google friendly JavaScript
Used byrequirement DEV-URL-07
- Extends D1-C115 Day 1: Google's crawlers do not click buttons. Each page in a series needs its own URL and an <a href> link to the…
Analysis by the author 6
Google's link-extraction slide put routerLink, href on a span, onclick-only links and javascript: URLs under 'can not extract', which is stricter than Google's link documentation saying Google may still try to parse them; either way they are not dependable links for discovery.
Author Ibrahim AnjroAnnotates Day 2, 10:25 · How is HTML interpreted
Audit every template and JavaScript component that outputs links, such as navigation, pagination, filters and product tiles: each needs a real a element with an href, because onclick handlers, routerLink without href, href on a span and javascript: URLs leave the target pages without a link Google can reliably extract.
Author Ibrahim AnjroAnnotates Day 2, 10:25 · How is HTML interpreted
Do not rely on plain-text URLs for discovery: even if Google sometimes picks them up, a proper a href link is what was described as feeding discovery, site structure and ranking.
Author Ibrahim AnjroAnnotates Day 2, 10:25 · How is HTML interpreted
Hash-fragment links are a problem only where Google should follow them: product, category and language links need a real URL in an <a href>, while fragments can deliberately keep filter combinations out of the crawl, as Google's faceted navigation guide allows.
Author Ibrahim AnjroAnnotates Day 2, 10:40 · Lightning session D: Rendering and JavaScript
Used byrequirement DEV-URL-08
- Extends D1-C101 Day 1: Google's faceted navigation guide prefers prevention: disallow filter URLs in robots.txt and keep crawlable…
Build market and language selectors as plain <a href> links to each alternate URL, not buttons or script handlers; otherwise the language versions have no internal links and depend on sitemaps to be found, which is slow.
Author Ibrahim AnjroAnnotates Day 2, 10:40 · Lightning session D: Rendering and JavaScript
Used byrequirement DEV-INT-06
- Extends D1-C067 Day 1: A page with no internal links depends on sitemaps alone to be found, so it is discovered slowly and attracts…
Audit a single-page app by searching both the templates and the rendered HTML for href="#..." routes, <a> elements without href and onclick navigation; every view that should rank needs an <a href> link to a real path.
Author Ibrahim AnjroAnnotates Day 2, 11:15 · What is Google friendly JavaScript