- noindexStaticRoutes: requiresAuth, noindex/none seo.robots and static
pages under seo.noindexRoutes, i18n copies included, never patterns or
the layer's HTML sitemap pages (G1, gap-2 contract)
- #seo-routes exports noindexPaths; routeReportBody(paths, noindex) answers
{routes, noindex} with the same limits and keeps the JSON body within the
older plugin's 4,113,024 bytes, dropping noindex entries first
- smoke grammar noindex= and lacksnoindex=; README carries the contract
With prefix_except_default (or prefix_and_default) @nuxtjs/i18n adds a copy
of every page per other locale (/pl/contact next to /contact). The route
report sent them as pages of their own, so the CMS registry got a second,
untranslated page for each. They are the page's translations: the report
now skips routes named with another locale's suffix (contact___pl).
- autolink, applyOutbound and imageAttrs: the body link rules a content
layer runs at SSR on sanitized HTML (UI-SPEC L7)
- htmlSitemap: an app without pages sets false, since the sitemap pages
would turn the router on
- the purge route's copies in the journal, menu and FAQ layers are gone
- README: build guard, noindex routes and page meta keys, route report,
drift check, the new module options, the Components section
(SeoBreadcrumbs, SeoPagination, usePagination, the HTML sitemap pages
and their override, SeoSitemapLink), useSeoSite and the new helpers,
guard:check and the new smoke grammar
With the SEO backend unreachable since start, /robots.txt and /sitemap.xml
answered 503 where v0.1.1 left them to the app (a consumer's smoke expects
the app's 404). The root proxies now need a site answer; the last one seen
is kept while the backend is down, so a failure after it is still 503.
- options (cms alias of public.seo.enabled, breadcrumbs, links.newTabHint,
rootFiles, resolveFiles), the new runtime keys and the moved purge keys
- the resolve and site answer contract, one JSON-LD graph, root files,
the purge route, 404 report, labels and tokens, the smoke runs