SEO (Search Engine Optimierungen) für phpBB2

Du suchst einen bestimmten Mod, weißt aber nicht genau wo bzw. ob er überhaupt existiert? Wenn dir dieser Artikel nicht weiterhilft, kannst du hier den von dir gewünschten/gesuchten Mod beschreiben ...
Falls ein Mod-Autor eine der Anfragen hier aufnimmt um einen neuen Mod zu entwicklen, geht's in phpBB 2.0: Mods in Entwicklung weiter.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
ExarKun2000
Mitglied
Beiträge: 11
Registriert: 17.04.2004 12:59
Wohnort: Wunsiedel
Kontaktdaten:

Beitrag von ExarKun2000 »

hi,

100 inzwischen nicht mehr ;) hab ich vorhin scho geändert...

das mit LIMIT ist mysql spezifisch. ich verwend ja wie gesagt postgresql. ist glaub ich bei dem forum auch programm ;)

cu tb.
hardware runs the world, software controls the hardware, code generates the software, have you coded today?
traumjob: dynamic durcheinander producer
Das deutschsprachige PostgreSQL Forum: http://www.pg-forum.de
Benutzeravatar
Harki
Mitglied
Beiträge: 144
Registriert: 25.04.2005 16:03
Wohnort: Hannover
Kontaktdaten:

Beitrag von Harki »

Ahoi, ;)
IPB_Flüchtling hat geschrieben:

Code: Alles auswählen

$sql = "SELECT w.word_text 
                FROM " . TOPICS_TABLE . " t, " . SEARCH_MATCH_TABLE . " m, " . SEARCH_WORD_TABLE . " w 
                WHERE t.topic_first_post_id = m.post_id 
                AND m.word_id = w.word_id 
                AND t.topic_id = $topic_id 
                AND LENGTH(w.word_text) >= 4
                LIMIT 20"; 
Vielen Dank für diesen Hinweis - finde ich überzeugend. :)

Vielleicht wäre es noch sinnvoll, die Auswahl der Schlüsselwörter nach ihrer Länge zu sortieren, da man wohl davon ausgehen kann, daß die längeren Wörter etwas eher sinntragend sein werden als die im Alphabet vorne stehenden. Also so:

Code: Alles auswählen

$sql = "SELECT w.word_text
			FROM " . TOPICS_TABLE . " t, " . SEARCH_MATCH_TABLE . " m, " . SEARCH_WORD_TABLE . " w
			WHERE t.topic_first_post_id = m.post_id
			AND m.word_id = w.word_id
			AND t.topic_id = $topic_id
			AND LENGTH(w.word_text) >= 4
			ORDER BY LENGTH(w.word_text) DESC
			LIMIT 50";
IPB_Flüchtling
Mitglied
Beiträge: 1862
Registriert: 23.12.2004 22:46

Beitrag von IPB_Flüchtling »

Ahoi Harki,

zunächst einmal vielen Dank für Deine kleine, aber wirklich feine Modifikation, dass dynamische Metatags nur für Gäste/Suchmaschinen erzeugt werden:

Code: Alles auswählen

if ( $topic_id && !$userdata['session_logged_in'] )
Schön langsam wird der Mod ja wirklich gut. :grin: Auch Deine jetzige Idee hat durchaus etwas für sich - werde sie wohl beherzigen (aber diesmal wirklich erst heute Abend)! Was mich mehr stört, ist, dass manchmal ein und dasselbe Keyword doppelt auftaucht. Da aber zumindest Google die Metatags Description und Keyword ohnehin nur sehr schwach wertet (wenn überhaupt), ist das auch nicht weiter schlimm.

LG, IPB_Flüchtling
ExarKun2000
Mitglied
Beiträge: 11
Registriert: 17.04.2004 12:59
Wohnort: Wunsiedel
Kontaktdaten:

Beitrag von ExarKun2000 »

wie doppelt? ist bei mir nicht der fall und sollte ja auch nicht sein...

alternativ

Code: Alles auswählen

$sql = "SELECT DISTINCT(w.word_text )
                FROM...
cu tb[/code]
hardware runs the world, software controls the hardware, code generates the software, have you coded today?
traumjob: dynamic durcheinander producer
Das deutschsprachige PostgreSQL Forum: http://www.pg-forum.de
IPB_Flüchtling
Mitglied
Beiträge: 1862
Registriert: 23.12.2004 22:46

Beitrag von IPB_Flüchtling »

ExarKun2000 hat geschrieben:wie doppelt? ist bei mir nicht der fall und sollte ja auch nicht sein...
Sollte wirklich nicht sein, war bei mir aber manchmal (nicht bei jedem Thread) der Fall... Deine Lösung hat aber funktioniert! :grin: Für mich funktioniert der Mod nun in folgender Form perfekt:

Code: Alles auswählen

$sql = "SELECT DISTINCT (w.word_text)
FROM " . TOPICS_TABLE . " t, " . SEARCH_MATCH_TABLE . " m, " . SEARCH_WORD_TABLE . " w
WHERE t.topic_first_post_id = m.post_id
AND m.word_id = w.word_id
AND t.topic_id = $topic_id
AND LENGTH(w.word_text) >= 4
LIMIT 20";
Auch Harkis Vorschlag zur Sortierung der Keywords funktioniert tadellos. Habe die entsprechende Zeile aber nicht eingebaut, weil es - zumindest in meinem Forum - auch kurze Keywords gibt, die mir wichtig sind.

Herzlichen Dank an alle, die an der Entwicklung und Verbesserung dieses Mods mitgearbeitet haben!

LG, IPB_Flüchtling

<editiert von mir, weil ich manchmal plemplem bin.>
Zuletzt geändert von IPB_Flüchtling am 29.11.2005 15:41, insgesamt 1-mal geändert.
ExarKun2000
Mitglied
Beiträge: 11
Registriert: 17.04.2004 12:59
Wohnort: Wunsiedel
Kontaktdaten:

Beitrag von ExarKun2000 »

klar bekommst du da andere suchwörter. ORDER BY sortiert das ergebnis. hier nach der länge der wörter in absteigender reihenfolge...

mit der LIMIT funktion sagst du ja dann auch nur das du eine bestimmte anzahl von treffern haben möchtest und dadurch kommen die unterschiede zustande...

cu tb.
hardware runs the world, software controls the hardware, code generates the software, have you coded today?
traumjob: dynamic durcheinander producer
Das deutschsprachige PostgreSQL Forum: http://www.pg-forum.de
IPB_Flüchtling
Mitglied
Beiträge: 1862
Registriert: 23.12.2004 22:46

Beitrag von IPB_Flüchtling »

Hallo,

habe mich schlecht ausgedrückt: Hatte gemeint, dass ich mit bzw. ohne folgende Zeile unterschiedliche Keywords erhalte:

Code: Alles auswählen

ORDER BY LENGTH(w.word_text) DESC
Habe jetzt versucht, das Ganze zu reproduzieren, was mir aber nicht gelungen ist. Muss da etwas durcheinandergebracht haben. Deshalb mein vorheriges Posting bitte einfach ignorieren. Werde die dämlichen Teile davon einfach löschen.

Mit verwirrtem Gruß
IPB_Flüchtling
Benutzeravatar
Harki
Mitglied
Beiträge: 144
Registriert: 25.04.2005 16:03
Wohnort: Hannover
Kontaktdaten:

Beitrag von Harki »

IPB_Flüchtling hat geschrieben:Auch Harkis Vorschlag zur Sortierung der Keywords funktioniert tadellos. Habe die entsprechende Zeile aber nicht eingebaut, weil es - zumindest in meinem Forum - auch kurze Keywords gibt, die mir wichtig sind.
Ja, ich habe auch nochmal drüber nachgedacht - wenn es in einem Thread um PHP oder um die UNO geht, ist eine Sortierung nach Länge natürlich nicht überzeugend. Also ist sie es generell nicht.

Man denke auch nur an Wörter wie "beziehungsweise" oder "nichtsdestoweniger". Ein langes Wort ist eben nicht immer ein wichtiges Wort.

Ich mache das jetzt doch wieder so:

Code: Alles auswählen

$sql = "SELECT DISTINCT (w.word_text)
FROM " . TOPICS_TABLE . " t, " . SEARCH_MATCH_TABLE . " m, " . SEARCH_WORD_TABLE . " w
WHERE t.topic_first_post_id = m.post_id
AND m.word_id = w.word_id
AND t.topic_id = $topic_id";
Die kurzen Sinnlos-Wörter (der, die, das, ein etc...) bleiben ja durch die Stopwortliste unberücksichtigt. Hier z.B. meine Stopwortliste :

http://konjunktiv2.de/language/lang_ger ... pwords.txt

Ferner habe ich bei mir - aus anderen Gründen - das MOD ShowBotsInOnlineList_120_Beta eingebaut. Das ermöglicht mir hinsichtlich des Keyword-MODs, dessen Aufruf so zu starten:

Code: Alles auswählen

if ( $topic_id && (areyouabot($_SERVER["HTTP_USER_AGENT"], TRUE) == 1) )
Ich finde das ganz sinnvoll: So werden die Keywords eben nur für SuMas und ähnliche Wesen generiert, nicht aber für menschliche User - letzteren (und dann auch dem Server...) bleiben also die zusätzlichen MySQL-Abfragen erspart. Hat jemand - ich meine damit besonders die SEO-Experten - eine Idee, ob das Nachteile haben könnte? Mir fielen keine ein...
IPB_Flüchtling
Mitglied
Beiträge: 1862
Registriert: 23.12.2004 22:46

Beitrag von IPB_Flüchtling »

Harki hat geschrieben:Ich finde das ganz sinnvoll: So werden die Keywords eben nur für SuMas und ähnliche Wesen generiert, nicht aber für menschliche User - letzteren (und dann auch dem Server...) bleiben also die zusätzlichen MySQL-Abfragen erspart. Hat jemand - ich meine damit besonders die SEO-Experten - eine Idee, ob das Nachteile haben könnte? Mir fielen keine ein...
Moin moin, Harki!

Im Prinzip ist das eine glänzende Idee; und Du kannst das meines Erachtens so lassen - auch wenn es schon eine Form von Cloaking ist: Suchmaschinen und menschliche Besucher erhalten unterschiedliche Versionen Deiner Seite.
Wenn es sich dabei um unterschiedliche Versionen von sichtbarem Text handelte, würde ich dringend davon abraten. Da es aber nur um die Meta-tags geht, die sowieso nur für Sumas interessant sind (wenn überhaupt), sehe ich keine Gefahr, dass Deine Seite abgestraft werden könnte. (Google hat ganz andere Probleme...) Der Nutzen überwiegt das Risiko bei weitem.

Was sagen die anderen dazu?

Da ich mir den ShowBotsInOnlineList-Mod (vorerst) nicht einbauen will, bleibe ich bei folgender Variante, die dafür sorgt, dass die Keywords wenigstens für eingeloggte Mitglieder nicht dynamisch erzeugt werden:

Code: Alles auswählen

if ( $topic_id && !$userdata['session_logged_in'] )
Deine jetzige Lösung ist aber sicher eleganter und serverfreundlicher!

LG, IPB_Flüchtling
Benutzeravatar
mgutt
Mitglied
Beiträge: 2999
Registriert: 31.08.2004 16:44
Wohnort: Hennef
Kontaktdaten:

Beitrag von mgutt »

nur per login switch. ich persönlich habe das wieder ganz rausgeschmissen. die sumas lesen meiner meinung nach mehr inhalt wenn die meta's möglichst klein bleiben bzw. ich konnte ohne meta's keinen unterschied erkennen.
meine Foren: http://www.maxrev.de/communities.htm
Ich kaufe Dein Forum! Angebote bitte an marc at gutt punkt it
Antworten

Zurück zu „phpBB 2.0: Mod Suche/Anfragen“