Technical SEO: Crawling, Indexing, Robots.txt, Meta Robots, XML Sitemaps, Canonicalization, HTTP Status Codes & JS Rendering

Crawl budget (capacity and demand), Googlebot two-phase Web Rendering Service (WRS), robots.txt precedence, meta robots vs. X-Robots-Tag, XML sitemap limits, canonicalization signals, HTTP status codes (3xx/4xx/5xx), SSR/CSR/SSG/ISR, and log-file verification.

Level
basic
Languages
en → en
Cards
32
Markdown
Technical SEO: Crawling, Indexing, Robots.txt, Meta Robots, XML Sitemaps, Canonicalization, HTTP Status Codes & JS Rendering (.md)

Flashcards (32)

#Front (Term / Question)Back (Definition / Answer)ExampleMultiple-Choice Options
1How does Googlebot's two-phase indexing pipeline process JavaScript-heavy web pages?In Phase 1, Googlebot fetches the raw HTTP response and parses the initial server-rendered HTML and links immediately. Unless blocked by 'noindex', the page enters the Web Rendering Service (WRS) queue (Phase 2), where headless evergreen Chromium executes JavaScript and parses the rendered DOM.
2What is a Soft 404 error in Google Search Console, and why does it harm technical SEO?A Soft 404 occurs when a non-existent, empty, or error page returns an HTTP 200 OK status code (or redirects in bulk to the homepage) instead of 404/410. It wastes crawl budget on dead pages and pollutes index coverage reporting.
3Which XML Sitemap tags does Google officially use vs ignore for crawling and scheduling?Google uses <loc> (the canonical URL) and <lastmod> (only if consistently and verifiably accurate when significant content changes occur). Google completely ignores <priority> and <changefreq>.
4Why does blocking a URL with 'Disallow' in robots.txt fail to reliably remove an already-indexed URL from Google Search, and what is the proper procedure?Robots.txt only blocks crawling, not indexing; if external or internal links point to the URL, Google can still index it as an uncrawled URL reference and cannot read any on-page 'noindex' directive because crawling is blocked. To remove it, allow crawling in robots.txt and serve '<meta name="robots" content="noindex">' or an 'X-Robots-Tag: noindex' HTTP header (or return HTTP 404/410).
5Which HTTP status code and response header should be returned during planned website maintenance to prevent Googlebot from de-indexing pages?HTTP 503 Service Unavailable accompanied by a 'Retry-After' HTTP header (specifying either a date or seconds until recovery). However, leaving a 503 active for many days will eventually cause Google to treat it as a permanent outage and de-index the URL.
6What is the SEO difference between Cloaking and valid Geotargeting/Personalization?Cloaking is the deceptive practice of serving substantially different content or URLs to search engine crawlers (identified via User-Agent or IP) than to human users to manipulate rankings, which violates Google Spam Policies. Valid geotargeting adapts locale/currency consistently for both users and bots from the same IP region (while keeping content accessible via crawlable URLs).
7How do you cryptographically verify that an incoming request claiming the 'Googlebot' User-Agent in server log files is genuinely from Google?Perform a reverse DNS lookup (PTR record) on the source IP address to confirm it resolves to '*.googlebot.com', '*.google.com', or '*.googleusercontent.com', and then perform a forward DNS lookup (A/AAAA record) on that hostname to verify it resolves back to the exact same source IP (or match against Google's published 'googlebot.json' IP ranges).
8What happens if a page has both 'Disallow: /page' in robots.txt and '<meta name="robots" content="noindex">' in its HTML <head>?Because robots.txt prevents Googlebot from requesting the URL, Googlebot never sees the HTML <head> and therefore never reads the 'noindex' tag, meaning the URL can remain in the index if linked elsewhere.
9Why should canonical URLs be self-referential on unique indexable pages?A self-referential '<link rel="canonical">' explicitly defends the page against accidental query parameter duplication (such as '?utm_source=...', '?fbclid=...', or session IDs) and scraped copies by declaring the clean base URL as canonical.
10Why does Google classify Dynamic Rendering as a deprecated workaround rather than a recommended long-term solution?Dynamic rendering (serving pre-rendered static HTML to crawler user-agents while serving client-side rendered JS to human users) adds infrastructure complexity, frequently drifts out of sync between bot and user views (risking cloaking issues), and is superseded by SSR, SSG, or ISR with hydration.
11Compare Client-Side Rendering (CSR), Server-Side Rendering (SSR), Static Site Generation (SSG), and Incremental Static Regeneration (ISR) for SEO.CSR sends a minimal HTML shell and relies on browser/WRS JS execution to populate content and metadata; SSR renders full HTML on every request on the server; SSG pre-builds static HTML at deploy time for lowest TTFB; ISR serves cached static HTML while regenerating stale pages in the background on a revalidation interval.
12What causes 'Crawled - currently not indexed' vs 'Discovered - currently not indexed' in Google Search Console's Page Indexing report?'Discovered - currently not indexed' means Google knows the URL exists (via sitemaps or links) but deferred crawling due to crawl budget/demand constraints or thin sitewide quality expectations. 'Crawled - currently not indexed' means Googlebot fetched the page but judged its content too thin, duplicate, or low-value to retain in the search index.
13How must internal links be marked up in HTML so that Googlebot reliably discovers and crawls them?Links must be standard '<a>' anchor elements with a resolvable 'href' attribute containing an HTTP/HTTPS URL (relative or absolute). Googlebot does not reliably trigger 'onclick' handlers, '<button>' routers, '<span>' links, or 'href="javascript:void(0)"'.
14What are the maximum file size and URL count limits for a single XML Sitemap file (uncompressed), and how do you scale beyond those limits?A single XML sitemap is limited to 50 MB (uncompressed) and 50,000 URLs. Sites exceeding either limit must split URLs across multiple child sitemaps and reference them in a Sitemap Index file (<sitemapindex>).
15In robots.txt syntax, what are the functions of the '*' wildcard and the '#39; end-of-URL anchor?'*' matches any sequence of zero or more characters, while '#39; anchors the match to the exact end of the URL string (for example, 'Disallow: /*.pdf#39; blocks URLs ending in '.pdf' without blocking '/report.pdf?download=false').
16What happens when you combine '<meta name="robots" content="noindex">' with a '<link rel="canonical" href="https://example.com/other-page">' pointing to a different URL?They send conflicting signals ('do not index this page' vs 'this page is an alternate version of other-page'). If Google honors the canonical clustering, the 'noindex' signal can inadvertently transfer to or suppress the canonical target. Use either a 301 redirect or a clean rel='canonical' (without noindex) when consolidating duplicate pages.
17Why should URLs blocked in robots.txt or marked 'noindex' NEVER be included in XML Sitemaps?XML Sitemaps are an explicit signal of canonical, indexable URLs you want Google to crawl and index. Including 'noindex', redirected (3xx), missing (4xx), or robots.txt-blocked URLs wastes crawl budget, triggers GSC 'Submitted URL marked noindex/blocked' errors, and erodes trust in the sitemap.
18When should you use the 'X-Robots-Tag' HTTP response header instead of an HTML '<meta name="robots">' tag?Use 'X-Robots-Tag' for non-HTML resources (such as PDFs, images, videos, or XML feeds) where HTML <meta> tags cannot be placed, or for applying rules at scale via CDN/server configuration across URL patterns.
19Why are redirect chains (e.g., URL A -> URL B -> URL C -> URL D) detrimental to Technical SEO, and what is Googlebot's redirect hop limit?Each redirect hop adds network latency (increasing TTFB for users), consumes crawl budget, and risks signal loss if a link in the chain breaks. Googlebot follows up to 10 redirect hops across a couple of crawl sessions before abandoning the chain and reporting a redirect error in GSC.
20In robots.txt pattern matching, how does Google resolve a conflict when both an 'Allow' and a 'Disallow' directive match the same URL?Google applies longest-match precedence based on the character length of the path pattern (more specific rule wins). If the matching 'Allow' and 'Disallow' patterns have the exact same character length, the less restrictive 'Allow' directive wins.
21What is the purpose of the 'max-image-preview:large' meta robots directive, and which Google surface strongly relies on it?'max-image-preview:large' permits Google to display large high-resolution image previews in Google Search and Google Discover (especially when paired with images at least 1,200 px wide). Without 'max-image-preview:large', pages are restricted to small thumbnail previews in Discover, substantially reducing click-through rates.
22How does Googlebot handle URL fragments (the '#section' hash portion of a URL), and why is hash-based routing ('/#/') problematic for SEO?Per RFC 3986, URL fragments are processed exclusively client-side and are never sent in HTTP requests; Googlebot strips everything from '#' onward, seeing 'example.com/#/products' and 'example.com/#/about' as the exact same root URL ('example.com/'). Modern SPAs must use the HTML5 History API ('pushState') with clean path URLs.
23How do HTTP 301, 302, 307, and 308 redirects differ in HTTP semantics and SEO canonicalization?301 (Moved Permanently) and 308 (Permanent Redirect, which prohibits changing the HTTP request method such as POST to GET) pass canonical indexing signals to the destination URL. 302 (Found) and 307 (Temporary Redirect, method-preserving) signal a temporary move and keep the original URL canonical unless left in place long enough for Google to treat them as permanent.
24In server log file analysis for SEO, what does a high crawl frequency on HTTP 304 (Not Modified) responses indicate?HTTP 304 indicates that Googlebot sent a conditional request ('If-Modified-Since' or 'If-None-Match' ETag) and the server confirmed the resource has not changed since the last crawl. This saves bandwidth and speeds up crawl throughput by avoiding full payload transfers.
25What is the difference between HTTP 404 (Not Found) and HTTP 410 (Gone) in terms of Googlebot de-indexing behavior?Both ultimately remove a previously indexed URL from Google's index and stop passing signals from it, but 410 Gone signals intentional permanent removal so Googlebot drops the URL from its crawl queue and index slightly faster than a 404, which Google retries for a grace period.
26Where can '<link rel="canonical">' be placed for an HTML document, and what happens if a '<link>' or '<script>' closes the '<head>' early?An HTML '<link rel="canonical">' is only valid inside the '<head>' section (or as an HTTP 'Link: <url>; rel="canonical"' response header). If invalid HTML elements (such as '<div>', '<img>', or '<iframe>') are injected inside '<head>', the HTML5 parser implicitly closes '<head>' and opens '<body>', causing Google to ignore any canonical or meta robots tags declared afterward.
27In a Single-Page Application (SPA), why does injected '<meta name="robots" content="noindex">' in initial HTML fail to get overridden if JavaScript later removes it?If the initial raw HTML response contains 'noindex', Googlebot reads the 'noindex' during Phase 1 (raw HTML parsing) and skips running the Web Rendering Service (WRS) completely, so JavaScript that removes the 'noindex' tag never executes.
28Does Googlebot preserve state across page loads using 'localStorage', 'sessionStorage', HTTP cookies, or Service Workers?No. Googlebot's Web Rendering Service runs statelessly across page loads: it clears 'localStorage', 'sessionStorage', IndexedDB, and HTTP cookies between page fetches, and skips Service Worker registration. Content that depends on stored client state will fail to render for Googlebot.
29Why is '<link rel="canonical">' considered a strong hint rather than an absolute directive by Google, and what signals can cause Google to ignore your declared canonical?Google treats rel='canonical' as a hint alongside 40+ signals (HTTPS preference, sitemap inclusion, internal link anchor targets, redirect targets, and content similarity). If a declared canonical points to a substantially different page, a 4xx/5xx page, or contradicts internal links and redirects, Google may select a different user-declared vs Google-selected canonical.
30What are the two components that determine Crawl Budget according to Google's documentation?Crawl Capacity Limit (how many parallel connections and how fast Googlebot can crawl without overloading the server, governed by server health/TTFB and error rates) and Crawl Demand (how much Google wants to crawl the site based on URL popularity, staleness, and update frequency).
31What do the meta robots directives 'nosnippet', 'max-snippet:[number]', and 'data-nosnippet' control?'nosnippet' prevents any text snippet or video preview from showing in search results; 'max-snippet:[number]' caps the text snippet at a maximum character length (-1 for no limit, 0 for no snippet); 'data-nosnippet' is an HTML attribute on '<span>', '<div>', or '<section>' that excludes only that specific DOM subtree from snippets and AI Overviews.
32What happens to Googlebot's crawling behavior when a site's '/robots.txt' endpoint returns a 4xx error vs a 5xx server error?If '/robots.txt' returns a 4xx status (except 429 Too Many Requests), Google treats it as if no robots.txt exists and crawls the site without restrictions. If '/robots.txt' returns a 5xx status (or 429), Google assumes a temporary server failure and halts crawling of the entire host for a safety period (returning to a cached copy if available for up to 30 days).