Skip to content

3.9 Public Web Pages

Every page that the public can reach is built to be found and to be shared (decided 2026-11-05): the website at www.moonitoring.com, the articles of MooNitoring News at news.moonitoring.com, and the public pages of the web apps, such as the landing pages of MooGrant. Search engines and link previews read the HTML a page sends, not what a script draws afterwards, so the rules below are checked on the built HTML, in the pull request that changes it.

3.9.1 One Domain, Clean Addresses

  • Every public site has one host under moonitoring.com: the website www.moonitoring.com, News news.moonitoring.com, with the language as the first segment of the path (news.moonitoring.com/it/<slug>). moonitoring.com answers a permanent redirect (308) to www.
  • The sites link to each other: the website links to News in its navigation and footer, every News page links back to the website and to the product pages it mentions, so search engines see one company across its hosts.
  • An address is lowercase words joined by hyphens, in the language of the page, and it never changes without a permanent redirect (301) from the old one. A page that is gone answers 410; an address that never existed answers 404 with noindex.
  • Every page has one canonical address, absolute, on its site's host. Copies of a site on other hosts (stage, previews, the hosts of our providers) send X-Robots-Tag: noindex and never become canonical.

3.9.2 Every Language Is Its Own Page

  • Each language has its own address, with lang on the page and hreflang links to the versions that exist, plus x-default for the fallback language. A page never links to a translation that does not exist.
  • The language is never chosen by a redirect on a deep link. Only the bare domain follows the reader's language; an article whose language is missing redirects (302) to the first translation that exists, and the page says which language it is in.
  • The sitemap lists every page with its language alternatives and the date its content last changed; there is one sitemap index for the domain, which robots.txt names.

3.9.3 What Every Page Sends

What Rule
Title Unique, up to 60 characters, the subject first and · MooNitoring last
Description 50 to 160 characters, a sentence that makes someone want to read on
Headings One h1, then h2 and down, in order
Images alt text in the language of the page, width and height, AVIF or WebP in several sizes, lazy below the first screen
Structured data JSON-LD written into the HTML: Organization and WebSite on the home page, NewsArticle on an article (headline, images in 16:9, 4:3 and 1:1, datePublished, dateModified, authors, publisher with its logo), BreadcrumbList on every page below the home page
Feeds An RSS feed per language for News, linked from every News page

Every page carries the tags that X, LinkedIn, WhatsApp, Slack and the others read to draw a preview card:

  • Open Graph: og:type (article for an article, website otherwise), og:title, og:description, og:url (the canonical address), og:site_name, og:locale with og:locale:alternate for the other languages, and for an article article:published_time, article:modified_time and article:tag.
  • The image: og:image of 1200×630 pixels, under 1 MB, with og:image:width, og:image:height and og:image:alt. An article uses the social image of its translation; without one, the build draws one from the cover and the title on the brand template, so no article is shared without a picture. Every other page has its own.
  • X: twitter:card set to summary_large_image, with twitter:site set to the company's account.

3.9.5 Fast on a Phone

Pages are static HTML, served from the edge, with only the script a page needs to work. On a mid-range phone over 4G they keep the good thresholds of the Core Web Vitals: Largest Contentful Paint under 2.5 s, Cumulative Layout Shift under 0.1, Interaction to Next Paint under 200 ms. The main image of a page is preloaded; fonts are self-hosted and do not block text.

3.9.6 Checked Before Merge, Watched After

  • The pull request runs Lighthouse on the built pages, failing below 95 for SEO, performance and accessibility, and a check that every page has its title, description, canonical address, language links, structured data that parses and a valid social image.
  • Search Console and Bing Webmaster Tools watch the whole domain moonitoring.com as one Domain property, which covers every host, with each site's sitemap submitted; new and changed News articles are announced through IndexNow at every build.
  • Analytics stay cookieless, so no consent banner stands between a reader and the first screen.