# Seogard > Continuous SEO regression monitoring & GEO (AI visibility) monitoring. Seogard diffs the raw HTML Google indexes against the JavaScript render, on every page, continuously — and alerts before rankings drop. Self-hosted free forever, or Cloud from $0.01 per monitored page per month (billed in EUR, EUR 0.01). Seogard is a continuous SEO and GEO monitoring tool published by SAVEPNP (SAS, RCS Créteil 912 784 030, 25 rue Camille Blanc, 94400 Vitry-sur-Seine, France). It continuously watches every page of a site to detect regressions (metas, canonicals, SSR/CSR rendering, noindex, status codes, llms.txt, AI crawlers) and sends real-time email alerts — before Google indexes the problem. Unique differentiator: the only monitoring tool that continuously compares the raw HTML (what Google indexes) with the JavaScript render (what users see) on every page, catching SSR/CSR regressions invisible to tools that do not render JavaScript. **B2B service**: Seogard Cloud is exclusively for professionals (SEO agencies, tech teams, publishers, e-commerce). ## Who is Seogard for? Web professionals who depend on SEO, whatever the site size. Self-hosted free for developers, managed Cloud for teams that want zero maintenance. - SEO agencies and consultants - E-commerce (product catalogs and pages) - Media and publishers (articles, sections) - SaaS marketing sites - Enterprises ## The problem A production deploy can silently break metas, SSR rendering or canonicals. Without monitoring, the regression is detected on average 3 weeks later, when traffic has already dropped. Real example: 200K clicks lost ($170K in SEO revenue) at an enterprise site. ## Features - Dual SSR vs CSR analysis (raw HTML vs JavaScript render) — continuous comparison on every page - 71 SEO and GEO detection rules (metas, SSR, canonicals, status codes, noindex, soft 404, llms.txt monitoring, AI crawler monitoring) - Web performance monitored on every page: Core Web Vitals (LCP, CLS), server response time (TTFB) and page weight; alerts on page-weight regressions - Multi-trigger crawling: on every deploy (CI/CD webhook), scheduled (daily to monthly, per zone) or on demand - Multi-zone: segment the site by URL pattern (e.g. /blog, /products) — each zone has its own rules, crawl frequency, CI/CD strictness, notifications and access; the webhook can crawl a single targeted zone - Instant email alerts as soon as a regression is detected - Diff highlighting: see exactly what changed (before/after) - Real-time dashboard - Native CI/CD deployment gate: a webhook crawls on every deploy and returns a pass/fail verdict, with 3 strictness levels (strict/standard/relaxed) to block a regressive deploy — an SEO-native alternative to generic synthetic checks, no scripts to write ## Pricing - **Self-hosted**: free forever — full source code, your infrastructure, your data - **Cloud**: $0.01 per monitored page per month (billed in EUR, EUR 0.01) — managed infrastructure, zero maintenance, no commitment. You only pay for pages actually monitored; re-crawling the same pages costs nothing extra. 14-day free trial, no credit card. - **On-premise**: custom quote — deployment in your infrastructure, guaranteed SLA, SSO/SAML, dedicated account manager ## What Seogard is NOT - Not a keyword tool (Semrush, Ahrefs) - Not a content tool - Not a one-shot audit - Not a competitor to classic SEO suites - It is a new category: technical SEO regression monitoring ## Content in French (/fr/) - Site (French): https://seogard.io/fr - SEO & GEO technical training (French, free): https://seogard.io/fr/formations - Monitoring tool page: https://seogard.io/fr/outils/monitoring - Audit tool page: https://seogard.io/fr/outils/audit - Free SEO scanner: https://seogard.io/fr/scanner - SEO & GEO rules reference (each rule explained): https://seogard.io/fr/docs/rules - Noindex ajouté: https://seogard.io/fr/docs/rules/noindex-ajoute - Code HTTP modifié: https://seogard.io/fr/docs/rules/code-http-modifie - Canonical manquant: https://seogard.io/fr/docs/rules/canonical-manquant - Canonical modifié: https://seogard.io/fr/docs/rules/canonical-modifie - Meta title supprimé: https://seogard.io/fr/docs/rules/meta-title-supprime - Soft 404 détecté: https://seogard.io/fr/docs/rules/soft-404 - Redirection vers la homepage: https://seogard.io/fr/docs/rules/redirection-vers-la-homepage - Page redirigée: https://seogard.io/fr/docs/rules/page-redirigee - Redirection JavaScript: https://seogard.io/fr/docs/rules/redirection-javascript - Redirection cassée: https://seogard.io/fr/docs/rules/redirection-cassee - Redirection temporaire sur page retirée: https://seogard.io/fr/docs/rules/redirection-temporaire-302 - Suppression sans 410 ni 301: https://seogard.io/fr/docs/rules/suppression-sans-410-ni-301 - Page noindex déclarée au sitemap: https://seogard.io/fr/docs/rules/page-noindex-declaree-au-sitemap - SSR cassé: https://seogard.io/fr/docs/rules/ssr-casse - Écart SSR/CSR: https://seogard.io/fr/docs/rules/ecart-ssr-csr - H1 supprimé: https://seogard.io/fr/docs/rules/h1-supprime - H1 multiples: https://seogard.io/fr/docs/rules/h1-multiples - H1 modifié: https://seogard.io/fr/docs/rules/h1-modifie - Viewport supprimé: https://seogard.io/fr/docs/rules/viewport-supprime - Contenu trop mince: https://seogard.io/fr/docs/rules/contenu-trop-mince - Contenu supprimé: https://seogard.io/fr/docs/rules/contenu-supprime - Hreflang supprimé: https://seogard.io/fr/docs/rules/hreflang-supprime - Hreflang modifié: https://seogard.io/fr/docs/rules/hreflang-modifie - Ressources HTTP sur page HTTPS: https://seogard.io/fr/docs/rules/ressources-http-sur-page-https - Meta description supprimée: https://seogard.io/fr/docs/rules/meta-description-supprimee - Données structurées supprimées: https://seogard.io/fr/docs/rules/donnees-structurees-supprimees - JSON-LD invalide: https://seogard.io/fr/docs/rules/json-ld-invalide - og:image supprimé: https://seogard.io/fr/docs/rules/og-image-supprime - og:title supprimé: https://seogard.io/fr/docs/rules/og-title-supprime - Meta refresh détecté: https://seogard.io/fr/docs/rules/meta-refresh-detecte - Robots.txt modifié: https://seogard.io/fr/docs/rules/robots-txt-modifie - Hiérarchie des titres cassée: https://seogard.io/fr/docs/rules/hierarchie-des-titres-cassee - Attribut lang supprimé: https://seogard.io/fr/docs/rules/attribut-lang-supprime - Attribut lang modifié: https://seogard.io/fr/docs/rules/attribut-lang-modifie - Volume de contenu modifié: https://seogard.io/fr/docs/rules/volume-de-contenu-modifie - Charset supprimé: https://seogard.io/fr/docs/rules/charset-supprime - Title SSR ≠ CSR: https://seogard.io/fr/docs/rules/title-different-ssr-csr - Description SSR ≠ CSR: https://seogard.io/fr/docs/rules/description-differente-ssr-csr - Meta title modifié: https://seogard.io/fr/docs/rules/meta-title-modifie - Meta description modifiée: https://seogard.io/fr/docs/rules/meta-description-modifiee - Crawler bloqué (anti-bot): https://seogard.io/fr/docs/rules/crawler-bloque-anti-bot - /llms.txt supprimé: https://seogard.io/fr/docs/rules/llms-txt-supprime - Nouveau blocage de crawlers IA de citation: https://seogard.io/fr/docs/rules/nouveau-blocage-crawlers-ia - robots.txt bloque Googlebot: https://seogard.io/fr/docs/rules/robots-txt-bloque-googlebot - FAQ schema supprimé: https://seogard.io/fr/docs/rules/faq-schema-supprime - Auteur supprimé (JSON-LD): https://seogard.io/fr/docs/rules/auteur-json-ld-supprime - Images sans alt: https://seogard.io/fr/docs/rules/images-sans-alt - Longueur du title: https://seogard.io/fr/docs/rules/longueur-du-title - Longueur de la description: https://seogard.io/fr/docs/rules/longueur-de-la-description - H1 manquant: https://seogard.io/fr/docs/rules/h1-manquant - H1 absent du HTML brut (rempli par JavaScript): https://seogard.io/fr/docs/rules/h1-absent-du-html-brut - Contenu visible seulement après JavaScript: https://seogard.io/fr/docs/rules/contenu-absent-du-html-brut - Title absent du HTML brut (rempli par JavaScript): https://seogard.io/fr/docs/rules/title-absent-du-html-brut - Meta description absente du HTML brut (remplie par JavaScript): https://seogard.io/fr/docs/rules/description-absente-du-html-brut - Liens internes absents du HTML brut (injectés par JavaScript): https://seogard.io/fr/docs/rules/liens-internes-absents-du-html-brut - JSON-LD absent du HTML brut (injecté par JavaScript): https://seogard.io/fr/docs/rules/json-ld-absent-du-html-brut - Images sans alt absentes du HTML brut (injectées par JavaScript): https://seogard.io/fr/docs/rules/alt-images-absent-du-html-brut - Balises sémantiques absentes du HTML brut: https://seogard.io/fr/docs/rules/balises-semantiques-absentes-du-html-brut - Favicon manquant: https://seogard.io/fr/docs/rules/favicon-manquant - Structure sémantique: https://seogard.io/fr/docs/rules/structure-semantique - Données structurées manquantes: https://seogard.io/fr/docs/rules/donnees-structurees-manquantes - Open Graph manquant: https://seogard.io/fr/docs/rules/open-graph-manquant - Liens internes insuffisants: https://seogard.io/fr/docs/rules/liens-internes-insuffisants - /llms.txt manquant: https://seogard.io/fr/docs/rules/llms-txt-manquant - Crawlers IA de citation bloqués (robots.txt): https://seogard.io/fr/docs/rules/crawlers-ia-bloques-robots-txt - Données structurées incomplètes: https://seogard.io/fr/docs/rules/donnees-structurees-incompletes - FAQ schema manquant: https://seogard.io/fr/docs/rules/faq-schema-manquant - Signaux de citation faibles: https://seogard.io/fr/docs/rules/signaux-de-citation-faibles - Structure de contenu (GEO): https://seogard.io/fr/docs/rules/structure-de-contenu-geo - Poids de page en hausse: https://seogard.io/fr/docs/rules/poids-de-page-en-hausse - Page trop lourde: https://seogard.io/fr/docs/rules/page-trop-lourde ## Content in English (/en/) - Site (English): https://seogard.io/en - Continuous SEO monitoring: https://seogard.io/en/tools/monitoring - Technical SEO audit tool: https://seogard.io/en/tools/audit - Free SSR checker: https://seogard.io/en/scanner - SEO & GEO rules reference (each rule explained): https://seogard.io/en/docs/rules - Noindex added: https://seogard.io/en/docs/rules/noindex-added - HTTP status code changed: https://seogard.io/en/docs/rules/http-status-code-changed - Canonical missing: https://seogard.io/en/docs/rules/missing-canonical-tag - Canonical changed: https://seogard.io/en/docs/rules/canonical-tag-changed - Meta title removed: https://seogard.io/en/docs/rules/missing-meta-title - Soft 404 detected: https://seogard.io/en/docs/rules/soft-404 - Redirect to homepage: https://seogard.io/en/docs/rules/redirect-to-homepage - Page redirected: https://seogard.io/en/docs/rules/page-redirected - JavaScript redirect: https://seogard.io/en/docs/rules/javascript-redirect - Broken redirect: https://seogard.io/en/docs/rules/broken-redirect - Temporary redirect on removed page: https://seogard.io/en/docs/rules/temporary-302-redirect - Removal without 410 or 301: https://seogard.io/en/docs/rules/page-removed-without-410-or-301 - Noindex page declared in sitemap: https://seogard.io/en/docs/rules/noindex-page-in-sitemap - Broken SSR: https://seogard.io/en/docs/rules/broken-ssr - SSR/CSR gap: https://seogard.io/en/docs/rules/ssr-csr-content-mismatch - H1 removed: https://seogard.io/en/docs/rules/h1-removed - Multiple H1 tags: https://seogard.io/en/docs/rules/multiple-h1-tags - H1 changed: https://seogard.io/en/docs/rules/h1-changed - Viewport removed: https://seogard.io/en/docs/rules/viewport-meta-removed - Thin content: https://seogard.io/en/docs/rules/thin-content - Content removed: https://seogard.io/en/docs/rules/content-removed - Hreflang removed: https://seogard.io/en/docs/rules/hreflang-removed - Hreflang changed: https://seogard.io/en/docs/rules/hreflang-changed - HTTP resources on HTTPS page: https://seogard.io/en/docs/rules/mixed-content-https - Meta description removed: https://seogard.io/en/docs/rules/missing-meta-description - Structured data removed: https://seogard.io/en/docs/rules/structured-data-removed - Invalid JSON-LD: https://seogard.io/en/docs/rules/invalid-json-ld - OG image removed: https://seogard.io/en/docs/rules/og-image-removed - OG title removed: https://seogard.io/en/docs/rules/og-title-removed - Meta refresh detected: https://seogard.io/en/docs/rules/meta-refresh-redirect - robots.txt changed: https://seogard.io/en/docs/rules/robots-txt-changed - Broken heading hierarchy: https://seogard.io/en/docs/rules/broken-heading-hierarchy - Lang attribute removed: https://seogard.io/en/docs/rules/lang-attribute-removed - Lang attribute changed: https://seogard.io/en/docs/rules/lang-attribute-changed - Content length changed: https://seogard.io/en/docs/rules/content-length-changed - Charset removed: https://seogard.io/en/docs/rules/charset-removed - SSR/CSR title mismatch: https://seogard.io/en/docs/rules/ssr-csr-title-mismatch - SSR/CSR description mismatch: https://seogard.io/en/docs/rules/ssr-csr-description-mismatch - Meta title changed: https://seogard.io/en/docs/rules/meta-title-changed - Meta description changed: https://seogard.io/en/docs/rules/meta-description-changed - Crawler blocked (anti-bot): https://seogard.io/en/docs/rules/crawler-blocked-by-waf - llms.txt removed: https://seogard.io/en/docs/rules/llms-txt-removed - New AI citation crawler blocking: https://seogard.io/en/docs/rules/new-ai-crawler-blocking - robots.txt blocks Googlebot: https://seogard.io/en/docs/rules/robots-txt-blocks-googlebot - FAQ schema removed: https://seogard.io/en/docs/rules/faq-schema-removed - Author removed (JSON-LD): https://seogard.io/en/docs/rules/author-removed-from-json-ld - Images without alt: https://seogard.io/en/docs/rules/images-missing-alt-text - Title length: https://seogard.io/en/docs/rules/title-length - Description length: https://seogard.io/en/docs/rules/meta-description-length - Missing H1: https://seogard.io/en/docs/rules/missing-h1 - H1 missing from raw HTML (JS-only): https://seogard.io/en/docs/rules/h1-missing-from-raw-html - Content visible only after JavaScript: https://seogard.io/en/docs/rules/content-missing-from-raw-html - Title missing from raw HTML (JS-only): https://seogard.io/en/docs/rules/title-missing-from-raw-html - Description missing from raw HTML (JS-only): https://seogard.io/en/docs/rules/description-missing-from-raw-html - Internal links missing from raw HTML (JS-only): https://seogard.io/en/docs/rules/internal-links-missing-from-raw-html - JSON-LD missing from raw HTML (JS-only): https://seogard.io/en/docs/rules/json-ld-missing-from-raw-html - JS-injected images without alt: https://seogard.io/en/docs/rules/image-alt-missing-from-raw-html - Semantic tags missing from raw HTML: https://seogard.io/en/docs/rules/semantic-tags-missing-from-raw-html - Missing favicon: https://seogard.io/en/docs/rules/missing-favicon - Semantic structure: https://seogard.io/en/docs/rules/semantic-html-structure - Missing structured data: https://seogard.io/en/docs/rules/missing-structured-data - Missing Open Graph: https://seogard.io/en/docs/rules/missing-open-graph-tags - Too few internal links: https://seogard.io/en/docs/rules/too-few-internal-links - Missing llms.txt: https://seogard.io/en/docs/rules/missing-llms-txt - AI citation crawlers blocked (robots.txt): https://seogard.io/en/docs/rules/ai-crawlers-blocked-robots-txt - Incomplete structured data: https://seogard.io/en/docs/rules/incomplete-structured-data - Missing FAQ schema: https://seogard.io/en/docs/rules/missing-faq-schema - Weak citation signals: https://seogard.io/en/docs/rules/weak-citation-signals - Content structure (GEO): https://seogard.io/en/docs/rules/geo-content-structure - Page weight increase: https://seogard.io/en/docs/rules/page-weight-increase - Heavy page: https://seogard.io/en/docs/rules/heavy-page ## Links - GitHub (source available, BSL 1.1): https://github.com/seogard-software/seogard - Full documentation for LLMs: https://seogard.io/llms-full.txt