Everything the adaptive question bank can teach and test in SEO, from foundations through advanced practice. Work through it in order, or start practicing and let the questions find your level.
Diagnose in that order. A page absent from results has failed at exactly one of them, and the fix differs: unblock the crawler, earn selection into the index, or compete for the query. Treating a ranking problem as a crawling problem wastes the entire effort.
There is no queue you join. A URL nothing points at — no internal link, no sitemap entry, no redirect from an old address — is one the crawler has no route to, so a launch that only changes the CMS leaves the page undiscoverable.
Selection is a judgment about whether the page is worth storing, so a crawled page can sit unindexed indefinitely. Search Console distinguishes the two states; reading 'crawled, currently not indexed' as a crawl bug sends you to fix the wrong layer.
The engine picks a representative for a duplicate cluster using redirects, internal links, sitemaps and your tag together. Because the tag is one input, a page can be dropped in favor of a sibling you never nominated, and the chosen URL is what reports and results show.
The same page is ordered differently for two queries, so 'our ranking dropped' is meaningless without naming the query. There is no stored site score to raise; the unit of ranking is a page against an intent.
The documentation describes eligibility and mechanisms, never placement — which is why a vendor promising position one is either selling ads or claiming access nobody has. Treat the guarantee itself as the diagnostic.
Location, language and history all shape what is served, so a rank you check from your own office is a sample of one. Field data and Search Console's averages exist precisely because a single manual look is not evidence.
B. Search Essentials and quality expectations
This is the floor, not the strategy: a 200 response, no robots block, no noindex, and content a crawler can read. Most 'we are invisible' cases fail here, and no amount of content work moves a page that never clears it.
These are enforcement rules rather than ranking advice, so the consequence is demotion or removal rather than a lost position. A tactic that merely underperforms is a waste of time; one that trips a policy costs the site.
The test is whether the page would be worth publishing if search did not exist. Content assembled from what ranks, for the purpose of ranking, tends to answer the query set rather than the person, and reads that way to reviewers too.
The report names the scope — whole site or one section — and the violation type, and those two together define the fix. Republishing is not the documented route back: a reconsideration request, read by a person, is. Check it before diagnosing anything else.
No notice arrives for a systems change, so most drops have no report to read. Assuming a penalty sends you rewriting or disavowing when the real cause may be a competitor, a layout change or falling demand.
The request is reviewed by a person, so it must show the problem fixed rather than promise it: what was wrong, what was changed, where. A request filed before the cleanup is finished usually costs another review cycle.
C. Crawling and Googlebot
Different crawlers fetch for different products, so a rule written against one string leaves the others untouched. Blocking a specific crawler is how you keep images or ads out without disturbing the web crawl — and how you break it by accident.
A user-agent string is self-reported and trivially forged, so treating it as identity lets a scraper claim crawler privileges. Confirm the IP resolves to the crawler's own domain and back before granting anything on the strength of the header.
Rate emerges from what your server can take and how much the engine wants your URLs — neither is a dial you set. Asking for more crawling without earning demand or improving response times changes nothing.
Sustained slowness and 5xx bursts are read as the host being under strain, so the crawler backs off to avoid harming you. The damage outlasts the outage: crawling ramps back gradually, and fresh pages wait meanwhile.
The raw HTML is processed first and rendering happens later with its own backlog, so content that only exists after script execution is indexed on a delay, if at all. Anything time-sensitive belongs in the initial response.
Following links is how most of a site is found, so the link graph is the crawl path. A section reachable only through a search box, a form or a filter has no route in, however many pages sit behind it.
A page in the CMS is not a page on the web. With nothing linking to it, only a sitemap entry can expose it — and a sitemap is a hint, so an orphan is often crawled late, ranked poorly, or never found.
D. robots.txt and crawl control
The file governs only its own origin, so https and http, www and bare, and each port are separate. A rule that works on the canonical host silently does nothing on a staging subdomain or a legacy scheme.
Rules apply per user-agent group, and the longest matching path wins rather than the first — so ordering rules to be safe does not work. An Allow for a narrower path can legitimately override a broad Disallow.
Blocking stops the fetch, not the listing: if other pages link to the URL, it can appear in results on that evidence, usually with no description. To keep a page out of the index you must let it be crawled and serve a noindex.
A directive the crawler cannot fetch cannot be obeyed. Blocking a page that carries noindex is the classic self-defeating configuration — the instruction to remove it is exactly what the block hides.
The crawler renders what it can load, so a blocked stylesheet or bundle produces a page that looks broken or empty to it. The page's own HTML is fine; what fails is everything the render depended on.
The line is independent of any user-agent group and simply advertises where the sitemaps live, which helps crawlers that were never given the URL. It is an aid to discovery, not permission to crawl anything.
The file is a public request that well-behaved crawlers honor, so it hides nothing: anyone can read it, and listing a private path advertises it. Use authentication for anything that actually must not be reached.
E. Indexing control and noindex
The page must be fetchable for the tag to be read, which is why noindex and a robots block are mutually defeating. Removal follows the next crawl, so the disappearance is not immediate and re-adding a page has the same lag.
A PDF, image or feed has nowhere to put a meta tag, so the directive travels in the response header instead. It is also the only route when the same rule must cover a whole directory served by the web server.
Indexing is not the only thing you can control: the snippet, the cached copy and image previews each have their own directive. Reaching for noindex to suppress a bad snippet removes the page when a narrower control would have done.
When a meta tag and a header disagree, expect the more restrictive to apply rather than the more recent. A permissive tag added later does not override a restrictive header nobody remembered was there.
A removal hides a URL from results for a limited period and changes nothing about the page. Used as the fix, it expires and the problem returns; it buys time while noindex, a 404 or authentication is put in place.
Near-identical pages generated per city, per keyword or per combination funnel users to the same destination and add nothing at the stop. They are a spam-policy matter, not merely low quality.
A 200 that says 'nothing here' asks the engine to store an empty page and keeps the URL alive as a redirect target. Return 404 or 410 so the outcome is unambiguous — the status code is the signal, not the wording.
F. Canonicalisation and duplicate content
Most duplication is accidental: tracking parameters, sort orders, session IDs, and the four host-and-scheme variants that serve the same content. Nothing was copied, which is why teams look for a culprit and find a configuration.
It is a signal weighed against redirects, internal links and sitemaps, so the engine may pick a different URL. When the tag is ignored, the useful question is which of those other signals contradicts it.
Declaring a page its own canonical gives the parameterized copies a target to point at and removes ambiguity when URLs are generated. It is a default worth having rather than a fix for a specific problem.
Syndicated copies pointing back to the original consolidate the signals on the publisher's URL. Without it, the larger republisher can be chosen as the representative, and the originator disappears from results for their own work.
Signals are read together, so a tag naming one URL while the sitemap lists another and internal links point at a third gives the engine no coherent answer. Audit all four before changing the tag again.
The ordinary outcome is consolidation onto one representative, not punishment. Believing otherwise leads to noindexing or deleting pages that were only ever going to be merged.
Filter combinations multiply into vast numbers of near-identical URLs. Decide which combinations deserve their own indexed page, and make the rest non-crawlable or canonical to the base — the choice is about crawl waste as much as duplication.
G. Sitemaps
It tells a crawler which URLs exist and roughly when they changed; it does not argue that any of them deserve indexing. A page that is thin or duplicated is not rescued by being listed.
Only the location is required; the change date is optional and the file has caps on URL count and uncompressed size. Exceeding a cap does not truncate gracefully — the file is rejected, so large sites must split it.
A date that moves on every build carries no information, and a crawler that learns yours is meaningless stops using it. The value is in marking the pages that genuinely changed, which is the whole reason to send the field.
An index file lists sitemap files rather than URLs, which is how a site stays inside the per-file caps. It also makes the reporting readable: errors are attributed to a section instead of one enormous list.
Listing a redirected, blocked or noindexed URL sends contradictory instructions — here is a page worth crawling, and also do not have it. Keep the file to canonical URLs that return 200, and the quality reports become diagnostic.
Extra fields carry media facts no crawler can infer from the page: a video's duration, an image's license, a story's publication date. Without them the media may be indexed as an ordinary page and lose the richer result.
H. Redirects and site moves
Permanent says to replace the old URL with the new one; temporary says keep the old and serve this for now. Marking a finished migration temporary keeps the old URLs in the index and consolidates nothing.
A status-code redirect is understood before any content loads. A meta refresh or a script hop depends on rendering, so it is slower to be seen and weaker as a signal — and invisible if the script does not run.
Each hop is another request and another chance to break; a loop never resolves at all. Chains commonly build up from successive migrations, so re-point the old URLs at the final destination rather than adding another link.
A redirect claims the destination replaces the original. Sending every retired page to the homepage makes that claim falsely, and it is typically treated as a soft 404 — the same outcome as doing nothing, with the URL history spent.
Every URL changes, so it is a site move rather than a certificate task: redirect each old URL to its exact https counterpart, update internal links and canonicals, and expect a recrawl period rather than an instant switch.
The redirects are the easy half. Sitemaps, the change-of-address notification, internal links, canonicals and external references all still name the old host, and the ones missed are where the recovery stalls.
Both mean the page is not there, and either is fine; 410 asserts the removal is intentional and tends to drop the URL sooner. Choose it when you know the page is never coming back and want the cleanup to settle faster.
I. URL structure and site architecture
Words in a path give a person scanning results, and anyone writing a link, a reason to click it. That is the documented benefit — not a ranking bonus for the keyword, which is why rewriting URLs for keywords alone rarely repays the churn.
Parameters are fine for genuine variation such as sort or page. They become a problem when they multiply into combinations that return the same content, which is a crawl-waste question rather than a formatting preference.
What matters is how many links from an entry point a page sits behind, not how many slashes its URL has. A flat URL buried six clicks deep is still hard to reach; a deep path linked from a hub is not.
A hub page that links the related pages together gives them a discovery route and gives the topic a single entry point. It also stops the individual pages competing, because the hub owns the broad intent.
The documentation does not state a ranking preference, so the honest case for a subfolder is operational — shared infrastructure, simpler measurement, one property to manage. Claiming a documented ranking rule overstates what is known.
Every change costs the redirect chain, the external links that now hop, and the recrawl. Change a URL when the old one is genuinely wrong, not to tidy it, and keep the redirect in place indefinitely rather than for a season.
J. Titles and snippets
The element is the main input, but a heading or anchor text can be used instead when the title is generic, duplicated or does not describe the page. A rewritten title is feedback: the supplied one did not say what the page was.
Each page needs a title that distinguishes it from its siblings. Templated titles differing only by a trailing brand name give the generator nothing to work with, which is exactly when it goes looking at the page instead.
Truncation depends on pixel width and the device, so there is no character count that is safe or optimal. Front-load what identifies the page, and treat a cut-off tail as a display cost rather than a ranking penalty.
Repeating a phrase or chaining locations in the title is a documented spam signal, and it also reads badly in the result. The usual visible consequence is a rewritten title link, which removes whatever the repetition was for.
It is an input to the snippet, not a ranking input, so writing one is a click-through decision. A missing description costs nothing directly; a duplicated one across a whole site is why every result reads the same.
The snippet is assembled per query from whatever on the page answers it, so the same page shows different text for different searches. Your description is used when it fits the query and ignored when the page has something better.
Length caps, a no-snippet directive and a per-element exclusion let you limit what is shown without removing the page. Reach for them for paywalled or sensitive passages — noindex would remove the page entirely.
Both are drawn from the site rather than the page: the name from markup on the home page, the icon from a declared file that must be crawlable and square. A blocked icon file is the common reason the default placeholder appears.
K. On-page content and structure
Headings give the page an outline a reader and a parser can both follow. Choosing a level for its size, or repeating a phrase across every heading, destroys the structure without buying anything the documentation describes.
Link text and surrounding words tell both a reader and a crawler what is at the other end. 'Click here' repeated across a page makes every destination look identical, and screen-reader users lose the same information.
Two pages covering one intent split the internal links and external references that would otherwise back a single page, and the engine picks one anyway. Merging usually beats optimizing both.
Repetition beyond what the sentence needs is a documented policy matter, and no density figure appears anywhere in the documentation. The targets circulating as best practice are inferred from correlation, not from any stated rule.
A phrase baked into a graphic is invisible as text: it cannot be indexed, translated, selected or read aloud. Alt text names what the image is for, so it is not a place to paste the paragraph the image replaced.
Recrawling follows real change, so re-stamping the date on untouched pages teaches the engine your dates mean nothing. Freshness matters where the answer itself expires; elsewhere a stable page is not a stale one.
No minimum length is documented. Sufficiency is set by the query — a definition can be two sentences and a comparison may need a table — so padding to a target adds material the page did not need in order to answer.
L. Internal linking and navigation
The crawler follows an anchor with a real href attribute. A button, a span with a click handler, or an href of hash-nothing is not a link, so the destination has no discovery route however prominent it looks.
Routing that only happens on click produces destinations nothing points at. The fix is not to remove the handler but to render real anchors underneath it, so the same element works for a crawler and for a middle-click.
The words in the link describe the destination to someone deciding whether to follow it, and give the target page context it cannot state about itself. Generic text wastes that; identical text everywhere blurs distinct pages together.
A trail shows where a page sits, which helps a user who landed mid-site from a search result rather than from the home page. Marked up, it can also replace the raw URL in the result.
Deep list pages need real links to be reachable. Infinite scroll that appends on a scroll event leaves everything past the first screen with no route in, so a large catalog can be mostly undiscoverable.
Site-wide navigation is the path by which most of a site is crawled and the main way importance is expressed. Navigation that changes shape per section leaves pockets reachable from only one place.
Linking says a page matters, and every page links somewhere. A footer that links a hundred low-value URLs from every page spreads attention thinly, while the pages you actually want found may be linked once.
M. Images and media SEO
The text exists so someone who cannot see the image still gets what it conveys, which is why a decorative image takes an empty attribute rather than a description. Search use follows from that; it is not a second keyword field.
An image is understood largely from what surrounds it — the caption, the nearby paragraph, the page it sits on. A descriptive filename helps at the margin; it cannot compensate for an image dropped into unrelated text.
A source set offers several candidates and the browser picks one, so all of them need to be crawlable. Serving the real image only through a script, with a placeholder in the markup, leaves nothing indexable behind.
Deferral that waits for a scroll event never fires for a crawler that does not scroll, so the image is simply absent. Native lazy loading, or loading on viewport intersection, keeps the deferral without hiding the file.
A crawler cannot infer license terms from a picture. Declaring the license URL is what makes the usage rights show alongside the image; without it the image can still appear, with nothing said about reuse.
N. Video SEO
Three things must line up: a video file the crawler can fetch, a player it recognizes on a page it can render, and a thumbnail it can load. Any one missing and the video is a page that happens to mention a video.
The markup states what the page cannot: the title, the description, the upload date, the duration, and where the file and thumbnail actually live. Those facts are what make the video eligible for a video result at all.
Marking the sections of a long video lets a result link straight to the relevant minute. It only helps where the video genuinely has parts; applied to a short continuous clip it adds markup nobody can use.
The image must be at a crawlable URL, in a supported format, and large enough to render. A thumbnail generated by script, or served from a blocked path, is the common reason a technically correct video markup produces nothing.
Speech is opaque to a crawler, so a transcript is what makes the words on the soundtrack searchable, and captions are what make them usable without audio. One artifact serves accessibility and indexing at once.
Where markup describes a video on a page, the sitemap enumerates them across the site with the same facts — location, duration, publication date. It is the practical route for a library too large to rely on discovery.
O. Structured data fundamentals
The page says things a parser can only guess at: that a number is a price, a date is an event start, a name is an author. Marking them up is what makes the page eligible for a result that shows those facts.
A block of JSON sits apart from the markup, so it survives template changes that would break attributes woven through the HTML. The alternatives remain supported; the argument for JSON-LD is maintainability.
A missing required property makes the item ineligible outright — the result is not degraded, it is absent. Recommended properties enrich a result that already qualifies, which is why the two failures look nothing alike in the report.
Markup describes the page, so a price, rating or date that is not on the page is a false statement about it. This is a policy matter rather than a technical one, and it is the reason 'add the markup anyway' is bad advice.
Valid markup puts the page in the pool of candidates; whether a rich result is shown is decided per query and per layout. Treating a lost rich result as a validation bug sends you debugging markup that is already correct.
The tool shows what was parsed from the page as fetched, which is how you tell a markup error from content that never rendered. Read which items were detected before reading the error list — an absent item is a different problem.
Marking up content that is not present, or ratings the business awarded itself, is a spam-policy matter with site-level consequences. The upside is one enhanced result; the downside is losing the enhancement everywhere.
P. Rich result types and schema vocabulary
The vocabulary is a shared hierarchy of types with defined properties, so specificity matters: a recipe is a kind of article, and using the narrower type is what exposes the fields that recipe results use.
Headline, author and publication date are the fields an article result shows. The author needs to be a person or organization rather than a bare string if it is to connect to anything else you have published.
Price, currency and availability travel together in the offer, so a price with no currency is incomplete. Stale availability is the common failure: the result says in stock long after the page stopped saying it.
Ratings must come from genuine users and be visible on the page. A business rating itself, or an aggregate assembled from nowhere the reader can see, is self-serving markup and is excluded by policy.
Eligibility for these has narrowed over time, so markup that once produced a rich result may now produce none. Keep the markup honest and the page useful without it, rather than building the page around a feature that can be withdrawn.
The trail is an ordered list, so each item carries its position as well as its name and URL. Positions that skip or repeat are the usual reason a correct-looking trail does not render.
Both are dominated by fields with formats: start and end times with time zones, durations, quantities. A date written the way the page displays it, rather than in the required format, fails validation while looking right to a reader.
Q. Search intent and keyword research
The same words can carry different intents, so the question is what the searcher wants to do next — learn, reach a known site, compare, or buy. A page that answers the wrong one of those is competing in a race it did not enter.
What already ranks is the engine's own reading of the query. If the page one results are all comparisons and yours is a product page, that is a mismatch you can see before writing anything.
Short queries carry volume and competition; longer ones carry specificity and a clearer intent. The practical consequence is sequencing — specific pages are winnable early and are what make the broad page credible later.
Covering a subject properly means several pages that each own a question, linked together. That gives each page a distinct intent to hold, which is the thing that stops them competing with each other.
Two pages aimed at one intent divide the links and references that would otherwise back one, and the engine picks a representative anyway — sometimes the weaker page. Merge, or differentiate them by intent rather than by wording.
One page, one primary intent. A page that tries to serve several answers each of them partly, which is both a ranking problem and a reading one — the visitor has to work out which section is theirs.
No documented ranking benefit attaches to keywords in the domain. The correlation people notice comes from exact-match domains also attracting matching anchor text and links, which are the documented mechanisms.
R. Helpful content, expertise and trust
Operationally: does the page come from real knowledge of the subject, does it leave the reader satisfied, and would it exist if there were no search traffic in it. Those are assessment questions, not a checklist to tick.
Experience is having done the thing; expertise is knowing the field. A review by someone who used the product and an explanation by someone who studies the subject are different claims, and pages usually need one or the other.
Trust is the one the others serve: expertise and reputation matter because they make a page trustworthy for its purpose. A page can be written by an expert and still fail on trust — an unclear owner or a hidden commercial motive will do it.
Where a page can affect health, finances, safety or rights, the bar for who is saying it and on what basis rises. It is the same quality framework applied more strictly, not a separate ranking system.
A named author with real credentials, a contact route, and a page explaining who publishes the site let a reader judge the source. Anonymity is not penalized as such; it removes the evidence that would support the claim.
The policy is about producing many pages primarily to catch queries rather than to help anyone — which is a question of purpose and value, not of production method or volume alone.
Third-party content published on a trusted domain to borrow its standing — a coupon section grafted onto a news site, say — is treated as abuse of that reputation, independently of the host's own content.
Automation is not itself a violation; producing bulk pages with little value is, whoever or whatever wrote them. The test is the same as for any content, which is why 'written by a human' is not the defense people expect.
S. JavaScript SEO and rendering
The initial HTML is indexed first; rendering happens later from a queue. Anything that exists only after script runs — content, links, canonical, title — is on that delayed path, and a render failure loses all of it silently.
The trade is where the work happens. Server rendering puts content in the first response at a server cost; client rendering shifts it to the browser and to the render queue. Hydration pays for both, which is the usual compromise.
A canonical or title injected after load is only seen if the render succeeds, and it can conflict with whatever was in the initial HTML. Contradictory values are worse than a plain one, because the engine resolves the conflict for you.
Routes need real URLs the server can answer directly, because a crawler requests them cold rather than clicking through your app. A fragment after a hash is not a separate URL, so those views cannot be indexed apart.
The document loads, the bundle does not, and what gets indexed is the shell. It is a robots configuration failure rather than a JavaScript one — and it presents as a page that looks fine to every human tester.
A crawler does not scroll, hover, click tabs or dismiss overlays, so content gated behind those interactions may never exist for it. Content hidden but present in the markup is fine; content not yet fetched is not.
The rendered HTML in the inspection tool is the evidence — it shows what the engine actually got, rather than what your browser assembles with your cache and extensions. Read it before theorizing about why a page is thin.
T. Page experience and Core Web Vitals
The metric times the largest text block or image in the initial viewport, so it is usually a hero image, a font, or a render-blocking request upstream of it. Optimizing a smaller element that is not the candidate moves nothing.
It measures the delay between an interaction and the next visual update, across the whole visit rather than the first input alone. Long tasks on the main thread are the usual cause, and they are invisible in a load-time metric.
Content that moves after the reader has started is the defect — late-loading images without dimensions, injected banners, fonts that swap metrics. Reserving the space up front is the fix; there is nothing to optimize afterwards.
Field data is what real visitors experienced on their devices and networks; a lab run is one synthetic environment you control. They disagree routinely, and the field number is the one that describes your users.
Assessment is at the 75th percentile, so a quarter of visits may be worse and the page still passes — and a good median can sit behind a failing score. Improving the slow tail is what moves the assessment.
A secure connection and the absence of deceptive interstitials are baseline expectations rather than differentiators. Their absence is a problem; their presence is not an advantage over every other site that has them.
A fast page does not outrank a better answer. The documented role is closer to a tie-breaker among comparable results, which is why a technical program alone rarely moves a page that answers the query less well.
U. Mobile-first indexing and rendering parity
Indexing works from the mobile rendering, so that version defines what the page contains — for every device. A desktop layout carrying content the mobile one omits is simply not the page being indexed.
Text dropped from the small layout to save space is text you may not be found for, on any device. Collapsing it behind an accordion keeps it in the markup; removing it from the response does not.
Markup omitted from the mobile template is markup that is not there, so the rich result disappears even though the desktop page still carries it. The same applies to canonicals, titles and hreflang annotations.
One URL serving both layouts has nothing to keep in sync. Separate mobile URLs need paired annotations in both directions and doubled maintenance — which is why parity drift is their characteristic failure.
A declared viewport is what lets a page use the device width instead of being scaled down; adequate spacing between controls is what makes it operable. Both are usability requirements, not ranking levers.
An overlay that hides the content a visitor arrived for, on the screen with least room, is the documented case. Consent notices and age gates are treated differently — the distinction is legal obligation, not size.
V. International and multilingual SEO
The annotations say these pages are the same content for different audiences, so the right one can be served. They do not rank a page higher in a country; they swap which of your equivalents is shown.
A language code alone is valid and usually right; a region may be added but never stands alone. The codes come from defined standards, and an invented one such as a made-up country pairing invalidates the annotation silently.
Each page in a set must reference every page in the set, including itself. A one-way reference is discarded, so a new locale added without updating its siblings joins nothing and reports as unclustered.
It names where to send a visitor whose language and region match nothing in the set — usually a selector or the primary locale. Without it, an unmatched visitor gets whichever page ranked, which may be the wrong currency entirely.
Each locale page must be its own canonical. Pointing them all at one master tells the engine the others are duplicates to consolidate, which removes the very pages the annotations are trying to distinguish.
A country domain signals a locale unambiguously but splits the operation; subfolders keep everything together and rely on the annotations to do the signaling. Both are supported, so choose on operations rather than on a ranking claim.
Redirecting by inferred location traps anyone traveling, and traps the crawler in whichever locale it happens to appear from — so the other versions may never be seen. Offer a suggestion and let the visitor choose.
A locale page that reads as machine output serves the audience badly and is assessed as thin content. Translating the words without localizing currency, examples and conventions produces a page that is technically present and practically useless.
W. Ecommerce SEO
A page assembled from the manufacturer's feed is identical to every competitor's, so there is nothing to choose between them. Your own photographs, description and specifics are the only content that is actually yours.
Give a variant its own URL when people search for it specifically — a size, a color with its own demand. Otherwise consolidate, because a URL per combination multiplies into near-identical pages nobody searches for.
Temporarily out of stock means keep the page and say so; discontinued with a successor means redirect; discontinued with nothing to offer means let it 404. Deleting a page that still has demand is the costly version.
Filters combine multiplicatively, so a handful of facets generates more URLs than the catalog has products. Decide which combinations deserve crawling and close the rest off, or crawling is spent on permutations.
A category serves a broader intent than any product on it, so it needs its own content to answer that — what to consider, how the options differ. A grid of links with a heading answers nothing on its own.
Reviews are content the page earns and cannot write for itself. The markup rules follow from that: ratings must be genuine, visible on the page, and not the business's own assessment of itself.
X. Local search
The profile, not the website, is what the local pack is drawn from, so verification is the gating step. A site can rank well organically while being absent locally because the profile was never claimed.
The business is identified by matching details across the web, so a suite number present in one place and missing elsewhere splits the evidence. Old addresses on directory listings are the usual source of the conflict.
The primary category carries the most weight in deciding which searches the business is a candidate for. Choosing a broader one to cover more ground reliably matches less precisely than naming the actual service.
A storefront customers visit shows its address; a business that travels to customers hides it and declares the area served. Declaring an address for a service-area business to seem local is a common and disqualifying error.
Markup on the site restates the business facts in machine-readable form and helps corroborate the profile. It does not replace the profile — the listing is the source for local results, and markup alone will not produce one.
Asking customers to review you is fine; selecting who is asked by how happy they are, or offering anything in return, is not. Replies are public and are read by future customers more often than by the reviewer.
A location page earns its place by carrying what is true of that branch — staff, hours, directions, local stock. A template with the city name substituted is the doorway pattern with a street address on it.
Local results weigh how close the business is, how well it matches the query, and how well known it is. Distance cannot be optimized, which is why the durable work sits in matching the query and being genuinely known.
Y. Links and spam policies
A link does two jobs at once: it is a route a crawler can follow, and it is one site vouching for another. Confusing them leads to chasing links from pages nobody reads, which serves the first purpose and not the second.
Paying for links, swapping them at scale, or generating them automatically are policy violations regardless of how natural the result looks. The exposure sits with the site receiving them, which is what makes bought links a liability.
It marks a link you do not want read as an endorsement. It is a hint rather than a barrier, and it was never a way to control how crawling is distributed inside your own site — that idea has been obsolete for years.
Paid placements and links your users posted are different things, and the attributes say which is which. Labeling honestly is the documented way to carry advertising without the links being treated as bought endorsements.
A network of sites existing to link to each other is identifiable by its pattern rather than by any one page, so the risk is collective. Guest posts written for the link rather than the audience fall under the same policy.
Editorial links use the page's name, the brand, or ordinary phrasing, so a profile where a commercial phrase dominates the anchors does not look editorial. The tell is the distribution, not any single link.
It exists for links you cannot remove and genuinely believe are harming you, typically alongside a manual action. Routine use risks disavowing links that were helping, and there is no report that tells you which those were.
Serving a crawler different content than a user is a violation whatever the motive, including well-intentioned attempts to help indexing. Detecting the crawler in order to change the response is the line, not the content difference itself.
Redirects that fire only for certain referrers or devices, and spam pages injected into a legitimate site, are the same pattern: what the owner tests is not what a visitor gets. Both often appear on a site the owner believes is clean.
Buying a domain for its accumulated history and publishing unrelated content on it is a documented abuse. The signals attach to a site's identity, so repurposing the shell does not transfer what made it credible.
Z. Search Console and measurement
A domain property covers every subdomain and scheme; a URL-prefix property covers exactly one, so data missing from a prefix property may simply be on a variant it does not include. Choose before drawing conclusions from gaps.
An impression counts the result being shown, which includes positions nobody scrolled to. Click-through rate is derived from the two, so it falls when impressions rise — a wider reach reads as a worsening rate.
It averages the positions where you actually appeared, so it says nothing about queries where you did not appear at all. Gaining visibility on a hard query lowers the average, which is why it moves opposite to progress.
One impression can involve several queries and one query several pages, so filtering by page and summing queries does not reproduce the total. The dimensions are different cuts of the same events, not subsets of one number.
Rare queries are withheld to protect the people who made them, and tables are capped, so the rows shown will not sum to the totals. The discrepancy is designed, and hunting for the missing traffic finds nothing.
It reports the indexed state, which canonical was chosen, and when the page was last crawled — the three facts that separate not crawled, crawled but not indexed, and indexed under a different URL.
The states are diagnoses, not error counts. Discovered but not crawled points at crawl capacity or demand; crawled but not indexed points at selection; excluded by a directive points at your own configuration.
Errors disqualify an item, warnings do not, and valid items are the ones actually eligible — so a page with warnings may be performing exactly as intended. Fixing every warning is often work with nothing at the end of it.
A session groups a visitor's hits with a timeout and its own boundary rules, so it is a construct rather than a person or a visit. Comparing sessions with search impressions compares two different definitions of an event.
AA. Diagnosing traffic changes
A serving failure cuts impressions sharply and usually across the board; a ranking change moves position on particular queries. Impressions tell you which one you have, and it is the first split to make.
Before rewriting anything, confirm the drop is real: a removed tag, a property that stopped covering a subdomain, or a reporting delay produce the same shape as a collapse and take minutes to rule out.
One glance answers whether a person penalized the site, and the answer changes the entire plan. Skipping it is how weeks go into content work while a documented, fixable action sits unread.
Impressions falling while position holds means fewer people are searching, not that you lost ground. Comparing against the same period last year separates a seasonal trough from an actual decline.
When the layout gains an answer block or a pack of images, a result at the same position sits lower on the screen and gets fewer clicks. Position steady with clicks down is the signature, and no site change caused it.
Migration damage surfaces late: a redirect rule that misses a section, canonicals left pointing at the old host, internal links still hopping. Compare the old URL set against the new one rather than spot-checking pages.
Injected pages, cloaked redirects and a safe-browsing warning all cut traffic quickly, and the owner is usually the last to see them because they target other visitors. Check for them before treating a sudden loss as a ranking event.
A burst of server errors, timeouts or DNS failures during crawling reduces crawling for a while afterwards, so recovery lags the fix. Server logs date the incident precisely, which reporting delays cannot.
AB. Large sites, crawl budget and hygiene
It is a constraint for sites with very many URLs or very frequent change. On a site of a few thousand stable pages, crawling is not the limit — treating it as one substitutes busywork for the selection problem that is actually binding.
Capacity is what your server will tolerate; demand is how much the engine wants your URLs. Raising capacity on a site nobody is interested in changes nothing, which is why hardware alone rarely increases crawling.
Every parameter combination fetched is a fetch not spent on a real page. The waste is invisible in a page count and obvious in logs, which is where a catalog of thousands turns out to be crawled as millions.
Answering an unchanged-since request with a not-modified status ends the exchange without sending the body, so the crawler learns nothing changed at almost no cost. It requires honest timestamps to be worth anything.
Codes steer subsequent crawling: persistent server errors slow it down, a permanent redirect retires the old URL over time, and a gone status drops it faster than a not-found. The code is the instruction, not the page body.
An accurate change date is what lets a crawler prioritize the handful of pages that moved over the thousands that did not. The value depends entirely on the date being true, which is why a build-stamped date is worse than none.
Logs record what was actually requested, which is the only direct evidence of where crawling went. They routinely show it spent on parameters, old redirects and blocked paths rather than on the pages anyone cared about.
Sequencing matters: redirects live before the announcement, sitemaps updated to the new URLs, the old ones kept accessible long enough to be recrawled. Moving everything at once turns one migration into months of drift.
Keentune is not affiliated with or endorsed by the organizations whose documentation informs these maps.
All exam, test, and product names and trademarks are the property of their respective owners and are used here for identification and reference only. Keentune is independent study practice — not affiliated with, authorized, or endorsed by any of these organizations.