Schöne URL mit Minus?

4 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

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-bindestriche.html

FloPinguin 
Fragesteller
 20.06.2016, 11:12

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.

0
aurata  20.06.2016, 17:53
@FloPinguin

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...)?

5
FloPinguin 
Fragesteller
 21.06.2016, 02:28

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 :)

0
  • 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.

FloPinguin 
Fragesteller
 20.06.2016, 00:13

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

2
regex9  20.06.2016, 00:25

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

0
aurata  20.06.2016, 10:33

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.

1

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ß

Woher ich das weiß:Berufserfahrung – Entwickle seit > 20 Jahren Anwendungen mit PHP.
FloPinguin 
Fragesteller
 20.06.2016, 00:36

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 ...

0
regex9  20.06.2016, 02:50
@FloPinguin

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.

2
Babelfish  20.06.2016, 08:52
@FloPinguin

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.

0

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

SimonKoehler  09.01.2017, 15:48
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');
?>
0