Bruno Thomann: Relaunch Website: .htm zu .html

Guten Tag!

Habe als Gelegenheitsprogrammierer hier schon manche kompetente, hilfreiche Tipps bekommen. Hier nochmals Danke!

Nun habe ich folgendes Problem:

Eine ca. 10 Jahre alte Website verwendet für alle (ca. 20 Unter-)Seiten das Suffix .htm. Und so erscheinen sie in Google auch. Eine modernere (responsive) Website ist mittlerweile erstellt: Inhalte, Struktur und Unterseiten sind weitestgehend gleich geblieben, nur die Endungen sind jetzt alle .html.

Wie gehe ich korrekt bei einem Relaunch vor, damit das bisherige, in Jahren gewachsene, ausgezeichnete Google-Ranking nicht beeinträchtigt wird?

Danke für jeden Hinweis!

  1. Hallo

    Eine ca. 10 Jahre alte Website verwendet für alle (ca. 20 Unter-)Seiten das Suffix .htm. Und so erscheinen sie in Google auch. Eine modernere (responsive) Website ist mittlerweile erstellt: Inhalte, Struktur und Unterseiten sind weitestgehend gleich geblieben, nur die Endungen sind jetzt alle .html.

    Wie gehe ich korrekt bei einem Relaunch vor, damit das bisherige, in Jahren gewachsene, ausgezeichnete Google-Ranking nicht beeinträchtigt wird?

    Das einfachste wird sein, den neuen Seiten die alten Dateinamen inklusive „.htm“ als Endung zuzuweisen. Dazu solltes es natürlich zu jedem alten Dokument eine neue Entsprechung geben. Andernfalls kannst du mit Redirects in einer .htaccess-Datei arbeiten, wenn du denn den Apachen als Webserver verwendest. Bei anderen Webservern werden andere, aber vergleichbare Mechanismen verwendet.

    Beispiel (ungetestet):

    Redirect 301 /index.htm https://example.com/index.html
    Redirect 301 pfad/zum/impressum.htm https://example.com/rechtliches/index.html
    

    Tschö, Auge

    --
    Ein echtes Alchimistenlabor musste voll mit Glasgefäßen sein, die so aussahen, als wären sie beim öffentlichen Schluckaufwettbewerb der Glasbläsergilde entstanden.
    Hohle Köpfe von Terry Pratchett
    1. Hallo Auge,

      Beispiel (ungetestet):

      Redirect 301 /index.htm https://example.com/index.html
      Redirect 301 pfad/zum/impressum.htm https://example.com/rechtliches/index.html
      

      Das würde ich allgemeiner fomulieren:

      RewriteEngine on
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule (.*)\.htm$ $1.html [L,R=301]
      

      Im Grunde müsste man noch eine Absicherung einbauen, ob die Ziel-URL existiert, aber da hab ich gerade nicht im Kopf, wie man das umsetzen würde; das müsste ich erst nachlesen.

      LG,
      CK

      1. Hallo

        Das würde ich allgemeiner fomulieren:

        RewriteEngine on
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule (.*)\.htm$ $1.html [L,R=301]
        

        Im Grunde müsste man noch eine Absicherung einbauen, ob die Ziel-URL existiert, aber da hab ich gerade nicht im Kopf, wie man das umsetzen würde; das müsste ich erst nachlesen.

        Das setzt aber voraus, dass sich die Dateinamen abseits der Endung nicht verändert haben, oder?

        Tschö, Auge

        --
        Ein echtes Alchimistenlabor musste voll mit Glasgefäßen sein, die so aussahen, als wären sie beim öffentlichen Schluckaufwettbewerb der Glasbläsergilde entstanden.
        Hohle Köpfe von Terry Pratchett
        1. Hallo Auge,

          Das setzt aber voraus, dass sich die Dateinamen abseits der Endung nicht verändert haben, oder?

          Ja. Das war doch die Ausgangslage? Ich zitiere aus dem OP:

          Inhalte, Struktur und Unterseiten sind weitestgehend gleich geblieben, nur die Endungen sind jetzt alle .html.

          Hervorhebung von mir.

          LG,
          CK

          1. Hallo

            Das setzt aber voraus, dass sich die Dateinamen abseits der Endung nicht verändert haben, oder?

            Ja. Das war doch die Ausgangslage? Ich zitiere aus dem OP:

            Inhalte, Struktur und Unterseiten sind weitestgehend gleich geblieben, nur die Endungen sind jetzt alle .html.

            Hervorhebung von mir.

            Die Nachfrage war auch eher für mich, ob ich den Code richtig verstanden habe. Ich arbeite äußerst selten mit solchen Regeln.

            Tschö, Auge

            --
            Ein echtes Alchimistenlabor musste voll mit Glasgefäßen sein, die so aussahen, als wären sie beim öffentlichen Schluckaufwettbewerb der Glasbläsergilde entstanden.
            Hohle Köpfe von Terry Pratchett
        2. Hallo Auge,

          Das setzt aber voraus, dass sich die Dateinamen abseits der Endung nicht verändert haben, oder?

          nur die Endungen sind jetzt alle .html.

          Bis demnächst
          Matthias

          --
          Pantoffeltierchen haben keine Hobbys.
          ¯\_(ツ)_/¯
      2. Tach!

        RewriteEngine on
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule (.*)\.htm$ $1.html [L,R=301]
        

        Im Grunde müsste man noch eine Absicherung einbauen, ob die Ziel-URL existiert, aber da hab ich gerade nicht im Kopf, wie man das umsetzen würde; das müsste ich erst nachlesen.

        Wenn du auf existierende Dateien umschreibst, muss ja nur die Datei existrieren. Aber eigentlich müsste man sich das sparen können, denn ob man den 404 nach dem Rewriten oder vorher bekommt, bleibt sich doch gleich.

        dedlfix.

        1. Hallo dedlfix,

          Wenn du auf existierende Dateien umschreibst, muss ja nur die Datei existrieren.

          Ja. Und das müsste man in dem Regelsatz noch prüfen.

          Aber eigentlich müsste man sich das sparen können, denn ob man den 404 nach dem Rewriten oder vorher bekommt, bleibt sich doch gleich.

          Nein, IMHO macht das einen Unterschied. 301 => 404 ist etwas anderes als direkt 404.

          LG,
          CK

          1. Tach!

            Wenn du auf existierende Dateien umschreibst, muss ja nur die Datei existrieren.

            Ja. Und das müsste man in dem Regelsatz noch prüfen.

            Entweder denke ich zu kurz, oder die Lösung ist schon fast da. Wenn Datei oder Verzeichnis existieren, verhindern die beiden RewriteCond das umschreiben. Es muss nur ein

            RewriteCond %{REQUEST_FILENAME}l -f
            

            ergänzt werden, damit nur existierende Ziele umgeschrieben werden. Man beachte das angehängte l. Und es muss bei dieser einfachen Regel sichergestellt sein, dass keine anderen auf l endende Dateien existieren.

            dedlfix.

            1. Hallo dedlfix,

              Es muss nur ein

              RewriteCond %{REQUEST_FILENAME}l -f
              

              ergänzt werden, damit nur existierende Ziele umgeschrieben werden.

              Darauf wollte ich hinaus. Ich bin gerade nur zu krank, um darauf zu kommen 😉

              LG,
              CK

              1. Hej Christian,

                Darauf wollte ich hinaus. Ich bin gerade nur zu krank, um darauf zu kommen 😉

                Gute Besserung!

                Marc

                --
                Ceterum censeo Google esse delendam
                1. Hallo marctrix,

                  Darauf wollte ich hinaus. Ich bin gerade nur zu krank, um darauf zu kommen 😉

                  Gute Besserung!

                  Danke – heute ist es schon wieder besser. Krank sein nervt mich ungemein 😜

                  LG,
                  CK

                  1. Hallo Christian Kruse,

                    Danke – heute ist es schon wieder besser.

                    😀

                    Dann schon dich trotzdem.

                    Bis demnächst
                    Matthias

                    --
                    Pantoffeltierchen haben keine Hobbys.
                    ¯\_(ツ)_/¯
  2. Hello @all,

    mal ganz dumm gefragt:

    wäre das nicht eine Aufgabe für Mod Negotiiation?

    Glück Auf
    Tom vom Berg

    --
    Es gibt nichts Gutes, außer man tut es!
    Das Leben selbst ist der Sinn.
    1. Tach!

      mal ganz dumm gefragt:

      wäre das nicht eine Aufgabe für Mod Negotiiation?

      Seh ich nicht so. "Content negotiation, or more accurately content selection, is the selection of the document that best matches the clients capabilities, from one of several available documents." Die Änderung ist nichts, was von Client beeinflusst werden soll, wie beispielsweise das Auswählen einer passenden Sprachversion.

      dedlfix.

      1. Moin,

        mal ganz dumm gefragt:

        wäre das nicht eine Aufgabe für Mod Negotiiation?

        Seh ich nicht so. "Content negotiation, or more accurately content selection, is the selection of the document that best matches the clients capabilities, from one of several available documents." Die Änderung ist nichts, was von Client beeinflusst werden soll, wie beispielsweise das Auswählen einer passenden Sprachversion.

        [•••] aber die Auswahl einer passenden Client-Version. Obn nun Antik-HTM-PC, aktueller mit CSS und Trallala, oder Mobile mit Anzeigefähigkeiten X-Y-Z. Ein Modul, das die

        Die Suchmaschinenmimositäten sind selbstverständlich zu berücksichtigen. Aber dafür steht dann hoffentlich ein "moved permanentlty" bereit,

        Was ist mit den speziellen Resposive-Features?

        Glück Auf
        Tom vom Berg

        --
        Es gibt nichts Gutes, außer man tut es!
        Das Leben selbst ist der Sinn.
  3. Wie gehe ich korrekt bei einem Relaunch vor, damit das bisherige, in Jahren gewachsene, ausgezeichnete Google-Ranking nicht beeinträchtigt wird?

    Die URLs nicht ändern! Welchen Grund sollte es denn geben von .htm auf .html zu ändern!? MFG

  4. Besten Dank an alle!

    Bei .htm zu bleiben, scheint offenkundig am Sinnvollsten und Einfachsten zu sein. Ich meinte irgendwann mal gehört zu haben, dass Seiten mit dem veralteten (?) .htm gegenüber .html von Google im Ranking benachteiligt würden (wie immer sich das konkret zeigen würde ...). Dem ist offensichtlich nicht so.

    Freundliche Grüsse

    Bruno Thomann

    1. Hallo Bruno,

      Ich meinte irgendwann mal gehört zu haben, dass Seiten mit dem veralteten (?) .htm gegenüber .html von Google im Ranking benachteiligt würden (wie immer sich das konkret zeigen würde ...). Dem ist offensichtlich nicht so.

      Nein, das ist völlig egal. Am besten ist es, wenn sich die URL nicht ändert. „Cool URIs don't change.“

      LG,
      CK