User-agent: * Allow: / # Block admin area from indexing Disallow: /admin/ # NOTE: /listings/ is deliberately NOT blocked. Every /listings/* URL now 301s to # /inventory, and Google can only act on a redirect it is allowed to crawl. While # this path was disallowed, the already-indexed /listings/ entry could never be # reprocessed, so it sat in the index under its old WordPress title competing with # /inventory. Blocking only makes sense for URLs Google has never indexed. # Block leftover WordPress query-param URLs. These all canonicalize to / # but waste crawl budget — Google has crawled ~80 of these and parked them # in "crawled — currently not indexed". None of these params are used by # the current app, so blocking is safe. # # No "?" in these patterns, deliberately. A literal ? only ever appears once in a # URL, so "/*?posts_per_page=" matched solely when the param came FIRST: # /?posts_per_page=12 was blocked but /?body=sedan&posts_per_page=12 was not, # because there the param follows an "&". Dropping the ? makes * cover both. Disallow: /*taxonomy= Disallow: /*security= Disallow: /*featured_top= Disallow: /*posts_per_page= # Other dead params from the old WordPress car-listing theme. Kept to params the # current app does NOT read. Do not add make=, model=, bodyType=, minPrice=, # maxPrice=, minYear=, maxYear=, features= or sort= — those are live inventory # filters, and every one of them canonicalizes to a page we want indexed # (/inventory?make=Honda -> /inventory/make/Honda). Blocking a URL stops Google # reading its canonical, which is the same reason /listings/ is not blocked above. Disallow: /*serie= Disallow: /*ca-year= Disallow: /*condition= # Sitemap Sitemap: https://legacyautos.ca/sitemap.xml