Frage von FloPinguin, 144

Schöne URL mit Minus?

Für Leerzeichen in schönen URLs sollte man ja Minuszeichen verwenden.

Also der Titel "tolle seite" wird zu "example.com/tolle-seite".

Aber wie mache ich es, wenn der Titel "interessante seite - sehr empfehlenswert" ist? Das Minuszeichen, das schon enthalten ist, würde mit den umliegenden leerzeichen im endeffekt drei leerzeichen bedeuten. Sollte ich es dann so machen?: "example.com/interessante-seite-_-sehr-empfehlenswert"?

Dabei ist es in meinem Fall nicht möglich, einfach das vorher enthaltene Minuszeichen wegzulassen / den Titel umzuformen. Und das das nichtssagende Seitentitel sind, weiß ich ;)

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von aurata, 60

Du solltest einfach eins wissen: ein Bindestrich ist für Google ein Trennzeichen, ein Unterstrich ein Verbindungszeichen und wird als "Unterstrich" gelesen. Das ist zwar nicht so tragisch, aber der Bindestrich ist eben besser, weil der nicht die Begriffe auseinander schlägt.

Den eigentlichen (schönen) Titel, also den Namen der Seite, schreibst du im title-Tag, im head der Datei.

<title>Hauptthema - interessante seite  sehr empfehlenswert</title>

Oder eben was du möchtest, das ist dir freigestellt.

Und denke dran: Dateiname sollte den Kern der Sache treffen. Und immer, wenn du einen Dateinamen vergibst, denk dran, was DU als Kunde suchen würdest, wenn du dein Produkt/Dienstleistung/Angebot brauchen würdest.

Und nicht vergessen: auch Bilder/Grafiken sind von Relevanz! Sinnvolle Dateinamen (nicht img_12345.jpg, sondern eben produkt-xy.jpg), sowie alt- und title-Attribut im img-Tag bringen dich auch weiter.

Welches CMS verwendest du?

Mehr zu dem Thema z.B. hier:

http://www.seologen.ch/blog/sprechende-urls

http://googlewebmastercentral-de.blogspot.de/2011/09/sind-unterstriche-oder-bind...

Kommentar von FloPinguin ,

Ein CMS macht solche URLs doch automatisch? Ich habe keins, desswegen frage ich.

Momentan läuft es auf der Seite wie folgt:
1. Nutzer können eine eigene Seite erstellen, diese hat einen Titel welchen sie sich selbst aussuchen können
2. Für die Links werden die Minuszeichen im Titel zu Unterstrichen umgewandelt, dann Leerzeichen zu Minuszeichen.
3. Beim Aufruf der Seite wird das ganze umgedreht, Minuszeichen werden zu Leerzeichen und Unterstriche zu Minuszeichen. So finde ich die Seite in der Datenbank wieder, dort ist der Titel ja mit Leerzeichen gespeichert.

Dabei frage ich mich ob das mit dem Unterstrich als Gedankenstrich für Google sinn macht, in der wie im Beispiel oben gezeigten Link.

Kommentar von aurata ,

Ja, ein CMS macht das automatisch. Du hast aber auch Korrekturmöglichkeit, wenn dir der Name der Datei nicht gefällt. 
... 

Heißt das, du hast ein CMS selbst erstellt?

"Für die Links werden die Minuszeichen im Titel zu Unterstrichen umgewandelt, dann Leerzeichen zu Minuszeichen."

Hm, woher kommen die Minuszeichen im Titel? Werden die von den Nutzer eingefügt? Wenn ja, dann unterbinde das und verwandle einfach nur die Leerzeichen in Bindestriche.

Hast du den Text aus dem Link gelesen (Googleblog...)?

Kommentar von FloPinguin ,

Ja, ich habe so etwas ähnliches wie ein CMS geschrieben, aber mit Bezug auf Performance, damit der TTFB der Seite nicht länger als 100 Millisekunden dauert und ich alles ändern kann.

Bindestriche könnte ich verbieten, wäre aber blöd da dieser bestimmt von vielen Leuten als Gedankenstrich verwendet werden möchte.

Den Link habe ich inspiziert, danke dafür nochmal :)

Antwort
von regex9, 96
  • Nimm einen Unterstrich
  • Verwende Leerzeichen (die werden eh in %20 umgewandelt
  • Suche eine Lösung, den Namen doch umzuformen / unabhängig von der URL zu halten

Dabei würde ich eigentlich auf Stringenz achten. Das bedeutet, entweder du verwendest immer einen Unterstrich statt Leerzeichen oder du lässt es gleich bleiben und verwendest immer Leerzeichen.

Kommentar von FloPinguin ,

Zu 1: Unterstrich anstatt Minus für die Leerzeichen ist nicht SEO friendly
Zu 2: encodete Leerzeichen sind auch nicht SEO friendly
Zu 3: Es gibt keine Möglichkeit, da die Seiten von Nutzern erstellt wurden. Ich fordere einen Titel, kann aber schlecht sagen: Schreib mir eine schöne URL

Kommentar von regex9 ,

URLs mit encodeten Leerzeichen haben keinen Einfluss auf Suchmaschinen.

John Mueller bietet als weitere Alternative das Pluszeichen an. (https://www.seroundtable.com/google-spaces-in-urls-20820.html)

Kommentar von regex9 ,

Um meine Antwort nochmal besser zu formulieren: Statt Leerzeichen zu verwenden, sind + oder %20 eine Ersatzmöglichkeit, wenn der Bindestrich nicht zur Wahl steht.

Kommentar von aurata ,

Ein CMS-System wandelt in der Regel ein Leerzeichen in ein Bindestrich, zumindest die, die ich kenne.
Wenn es kein CMS ist, sollte man NIE die Datei mit Leerzeichen, Sonderzeichen (darunter fallen auch % oder Pluszeichen), oder Umlauten benennen. Denn, das kann auch schief gehen und die Datei wird schlicht nicht gefunden.

Antwort
von abbrechen, 18

Kannst du mit php lösen, weiss jetzt aber leider selbst nicht wie genau.

Kommentar von SimonKoehler ,
Ungefähr so: <?php
function create_url_slug($string){
$slug=preg_replace('/[^A-Za-z0-9-]+/', '-', $string);
return $slug;
}

echo create_url_slug('Mein Super Seitentitel - Sehr lang');
?>
Antwort
von Babelfish, 77

Am sinnvollsten ist es wohl, die URL in »example.com/interessante-seite-sehr-empfehlenswert« umzuwandeln.

Das geht mit PHP auch relative problemlos, indem du einfach nach dem Umwandeln von Leerzeichen in den Bindestrich noch so lange nach -- suchst und mit - ersetzt, bis nichts mehr gefunden wird.

Gruß

Kommentar von FloPinguin ,

Problem ist dann nur, das ich die Seite nicht mehr in der Datenbank finde, weil der Titel mit dem Minus abgespeichert ist.

Und in der DB eine extra Spalte für die URL anzulegen ist eigentlich Speicherplatzverschwendung ...

Kommentar von regex9 ,

Wenn nach dem Decoding der gleiche Wert herauskommt, wie er für das Encoding verwendet wurde, ist er in der DB wieder auffindbar.

Und der Speicherplatz sollte heutzutage das geringste Problem sein, vor allem, ob man eine Spalte mehr oder weniger nutzt (ansonsten würde ich mir einmal Gedanken über das Modell im Ganzen machen). Das Hauptaugenmerk bei Datenbanken liegt eher in der Struktur, um Informationen so schnell wie möglich wiederzufinden.

Kommentar von Babelfish ,

Bei vielen Foren oder Blogs wird das so gelöst:

»example.com/42-interessante-seite-sehr-empfehlenswert«

Die 42 ist die ID des Beitrags und beim Aufruf der Seite suchst du dir nur die ID und lieferst dann die Seite aus. Alles andere an der URL ist nur für Suchmaschinen interessant und sieht besser aus. Besucher merken sich die URL sowieso nicht.

Wenn du es wie GF hier machen willst (was ich eher für problematisch halte), musst du entweder a) die schon normalisierte URL zusätzlich mit speichern oder b) bspw. einen MD5-Hash der normalisierten Form speichern. Vorteil von b: Die Länge ist immer gleich (bei MD5 sind es 32 Zeichen).

Problem in beiden Fällen: Du kannst das Schema nie wieder (oder nur mit viel Aufwand) ändern und musst gleiche Namen ausschließen.

Der Speicherplatz wäre dabei kein Problem, da du ja nun kaum Millionen von Seiten haben wirst und andere Inhalte deutliche mehr Speicher verbrauchen.

Keine passende Antwort gefunden?

Fragen Sie die Community