Beim phpBB3 sind oftmals derselben Seite verschiedene URLs zugeordnet, was Google zwar nicht als Täuschungsmanöver wertet. Aber besser ist es, wenigstens bei Threadseiten, Forumsübersichten und der Indexseite eine kanonische URL ausschließlich für den Bot anzuzeigen.
Festlegen der kanonischen (bevorzugten) URL-Version • Webmaster-Tools-Hilfe • http://www.google.com
Kanonische URLs funktionieren so, dass eine Webseite, die mehrere URLs hat, die zu dieser Seite führen; oben im Head-Bereich (nur) eine bevorzugte URL anzeigt; nämlich die kanonische URL, welche für Suchmaschinenbots bestimmt ist.
Bei nachfolgender Beschreibung habe ich mich an nachfolgendem Forumsthread von phpbb.de orientiert. Bei Threadseiten werden bei der Version von phpbb.de als kanonische Url immer die Url mit Thread-ID plus Nummer der Threadseite erzeugt.
Duplicate Content entfernen (PostID zu ThemenID) • phpBB.de
Anti-Double-Content – Kanonische URL-Umschreibung • phpBB.de
Einige der Beschreibungen beziehen sich ausschließlich auf Foren, wo kurze URLs nach dieser Anleitung installiert sind: (klick). Auch erschien es mir in diesem Fall auch besser, bei der Anzeige von Threadseiten als kanonische URL, die mit der Beitrags-ID zum letzten (unteren) Beitrag zu verwenden.
Damit die kanonische URL im Head-Bereich angezeigt wird, in der Template-Datei /styles/prosilver/template/overall_header.html unter dem Titel
Folgendes einfügen, damit im Falle des Aufrufs einer kanonischen URL über eine andere Datei und nur für Suchmaschinenbots die kanonische URL angezeigt wird!
Unter Umständen kann es besser sein, dass man in der Template-Datei overall_header.html die Anzeige der kanonischen URL bei allen Besuchern zulässt.
Damit die kanonische URL auch in der Druckansicht erscheint, füge man dies entsprechend auch in der Datei /styles/prosilver/template/viewtopic_print.html ein.
Aber nur vorige Änderung bewirkt nichts, weil der Platzhalter {U_CANONICAL}" noch in keiner php-Datei definiert ist. Damit dies für alle Seiten von Beitragsübersichten verwendet werden, also Thread-URLs, in der Datei viewtopic.php unter
Folgende Zeile einfügen!
Oder, damit sich die kanonische URL auf die Beitrags-ID des jeweils letzten Beitrags von Threadseiten bezieht, nachfolgende Zeile einfügen anstatt der vorigen! Diese Variante ist besser als die vorige, wenn das Forum auf einen Beitrag je Threadseite eingestellt ist, weil die kanonische URL sich auf den Beitrag bezieht.
Aber bei der anderen Variante zuvor bezieht sie sich auf die Threadseite. Und Beiträge können durch Löschen von Beiträgen oder Änderung der Einstellung für die Anzahl der Beiträge je Threadseite auf eine andere Threadseite wechseln, sodass sich dadurch leider kanonische URLs für Beiträge ändern können.
Oder stattdessen folgende Zeile, falls im Forum kurze URLs installiert sind, wo sich die kanonische URL auf den jeweils letzten Beitrag einer Threadseite bezieht.
Für Forenübersichten in der Datei viewforum.php unter
Folgende Zeile einfügen!
Oder wenn die Seitenzahl am Ende der URL bei der ersten Seite nicht erscheinen soll, stattdessen nachfolgende Zeile einfügen!
Festlegen der kanonischen (bevorzugten) URL-Version • Webmaster-Tools-Hilfe • http://www.google.com
Kanonische URLs funktionieren so, dass eine Webseite, die mehrere URLs hat, die zu dieser Seite führen; oben im Head-Bereich (nur) eine bevorzugte URL anzeigt; nämlich die kanonische URL, welche für Suchmaschinenbots bestimmt ist.
Bei nachfolgender Beschreibung habe ich mich an nachfolgendem Forumsthread von phpbb.de orientiert. Bei Threadseiten werden bei der Version von phpbb.de als kanonische Url immer die Url mit Thread-ID plus Nummer der Threadseite erzeugt.
Duplicate Content entfernen (PostID zu ThemenID) • phpBB.de
Anti-Double-Content – Kanonische URL-Umschreibung • phpBB.de
Einige der Beschreibungen beziehen sich ausschließlich auf Foren, wo kurze URLs nach dieser Anleitung installiert sind: (klick). Auch erschien es mir in diesem Fall auch besser, bei der Anzeige von Threadseiten als kanonische URL, die mit der Beitrags-ID zum letzten (unteren) Beitrag zu verwenden.
Damit die kanonische URL im Head-Bereich angezeigt wird, in der Template-Datei /styles/prosilver/template/overall_header.html unter dem Titel
- Code: Alles auswählen
<title><!-- IF S_IN_MCP -->{L_MCP} • <!-- ELSEIF S_IN_UCP -->{L_UCP} • <!-- ENDIF -->{PAGE_TITLE}</title>
Folgendes einfügen, damit im Falle des Aufrufs einer kanonischen URL über eine andere Datei und nur für Suchmaschinenbots die kanonische URL angezeigt wird!
- Code: Alles auswählen
<!-- IF U_CANONICAL and S_IS_BOT --><link rel="canonical" href="{U_CANONICAL}" />
<!-- ENDIF -->
Unter Umständen kann es besser sein, dass man in der Template-Datei overall_header.html die Anzeige der kanonischen URL bei allen Besuchern zulässt.
- Code: Alles auswählen
<!-- IF U_CANONICAL --><link rel="canonical" href="{U_CANONICAL}" />
<!-- ENDIF -->
Damit die kanonische URL auch in der Druckansicht erscheint, füge man dies entsprechend auch in der Datei /styles/prosilver/template/viewtopic_print.html ein.
Aber nur vorige Änderung bewirkt nichts, weil der Platzhalter {U_CANONICAL}" noch in keiner php-Datei definiert ist. Damit dies für alle Seiten von Beitragsübersichten verwendet werden, also Thread-URLs, in der Datei viewtopic.php unter
- Code: Alles auswählen
// Output the page
Folgende Zeile einfügen!
- Code: Alles auswählen
$template->assign_var('U_CANONICAL', $phpbb_root_path . 'viewtopic.' . $phpEx . "?t=$topic_id" . (($start) ? "&start=$start" : ''));
Oder, damit sich die kanonische URL auf die Beitrags-ID des jeweils letzten Beitrags von Threadseiten bezieht, nachfolgende Zeile einfügen anstatt der vorigen! Diese Variante ist besser als die vorige, wenn das Forum auf einen Beitrag je Threadseite eingestellt ist, weil die kanonische URL sich auf den Beitrag bezieht.
Aber bei der anderen Variante zuvor bezieht sie sich auf die Threadseite. Und Beiträge können durch Löschen von Beiträgen oder Änderung der Einstellung für die Anzahl der Beiträge je Threadseite auf eine andere Threadseite wechseln, sodass sich dadurch leider kanonische URLs für Beiträge ändern können.
- Code: Alles auswählen
$template->assign_var('U_CANONICAL', $phpbb_root_path . 'viewtopic.' . $phpEx . '?p=' . $row['post_id']);
Oder stattdessen folgende Zeile, falls im Forum kurze URLs installiert sind, wo sich die kanonische URL auf den jeweils letzten Beitrag einer Threadseite bezieht.
- Code: Alles auswählen
$template->assign_var('U_CANONICAL', $phpbb_root_path . 'b' . $row['post_id']);
Für Forenübersichten in der Datei viewforum.php unter
- Code: Alles auswählen
$template->assign_vars(array(
'MODERATORS' => (!empty($moderators[$forum_id])) ? implode(', ', $moderators[$forum_id]) : '',
Folgende Zeile einfügen!
- Code: Alles auswählen
'U_CANONICAL' => $phpbb_root_path . 'viewforum.' . $phpEx . "?f=$forum_id&start=$start",
Oder wenn die Seitenzahl am Ende der URL bei der ersten Seite nicht erscheinen soll, stattdessen nachfolgende Zeile einfügen!
- Code: Alles auswählen
'U_CANONICAL' => $phpbb_root_path . 'viewforum.' . $phpEx . "?f=$forum_id" . (($start) ? "&start=$start" : ''),
Oder falls kurze URLs installiert sind (weil inzwischen auch alle Seiten von Forumübersichtsseiten als kurze URLs möglich sind), stattdessen nachfolgende Zeile einfügen!
- Code: Alles auswählen
'U_CANONICAL' => $phpbb_root_path . "f$forum_ids$start",
Oder damit die Seitenzahl unnötiger Weise nicht bei der ersten Seite angezeigt wird:
- Code: Alles auswählen
'U_CANONICAL' => $phpbb_root_path . "f$forum_id" . (($start) ? "s$start" : ''),
Für die Forum-Übersicht (Indexseite des Boards) in der Datei index.php unter
- Code: Alles auswählen
// Assign index specific vars
$template->assign_vars(array(
'TOTAL_POSTS' => sprintf($user->lang[$l_total_post_s], $total_posts),
'TOTAL_TOPICS' => sprintf($user->lang[$l_total_topic_s], $total_topics),
'TOTAL_USERS' => sprintf($user->lang[$l_total_user_s], $total_users),
'NEWEST_USER' => sprintf($user->lang['NEWEST_USER'], get_username_string('full', $config['newest_user_id'], $config['newest_username'], $config['newest_user_colour'])),
folgende Zeile einfügen!
- Code: Alles auswählen
'U_CANONICAL' => $phpbb_root_path . 'i',
Dies ungetestet, weil ich das bei diesem Forum nicht so machte. Bei meinem Forum (klick) habe ich eine (weitere) Datei overall_header2.html; die dafür sorgt, dass oben der Header nur auf der Indexseite angezeigt wird; sodass ich nur bei dieser Template-Datei wie bei der ersten Einfügung unter
- Code: Alles auswählen
<!-- IF S_CONTENT_DIRECTION eq 'rtl' --><link href="{T_THEME_PATH}/bidi.css" rel="stylesheet" type="text/css" media="screen, projection" />
<!-- ENDIF -->
Folgendes einfügte, sodass ich (auch) die Datei index.php nicht änderte.
- Code: Alles auswählen
<!-- IF S_IS_BOT --><link rel="canonical" href="./i" />
<!-- ENDIF -->
Falls die kanonische URL für alle erscheinen soll; also nicht nur für Suchmaschinenbots, stattdessen folgende Zeile einfügen!
- Code: Alles auswählen
<link rel="canonical" href="./i" />
Man sollte bei den Webmaster-Tools von Google (klick) seine Seite hinzufügen; dann auf den Link dieser Seite klicken, um insbesondere bei den Crawling-Fehlern und den Html-Vorschlägen zu schauen, was man alles verbessern kann.
So hatte ich bei den Crawling-Fehlern eine Liste von nicht gefundenen Seiten meines Forums. Ein Teil von diesen waren in meinem Forum fehlerhaft verlinkt: Klick! Und andere waren auf externen Seiten falsch verlinkt. Letztere URLs schloss ich dann aus durch entsprechende Einträge in der Datei robots.txt: Klick!
Bei den Html-Vorschlägen wurden mir viele URLs mit doppelten Titel-Tags angezeigt. Die meisten von diesen beseitigte ich durch mehr Angaben im Titel: Klick! Auch bei der "Wer ist online?" – und der Mitgliederliste gibt es mehrfache Titel-Tags je Seite.
Weil aber die aufgerufenen Seiten jeweils identisch oder ähnlich sind, lohnt es sich meines Erachtens nicht, die Titel entsprechend zu erweitern, um doppelte zu vermeiden. Stattdessen reicht es aber meines Erachtens, wenn man für diese Seiten kanonische URLs einfügt.
Wenn nämlich durch jeweils verschiedene URLs aufgerufene Mitgliederlisten alle dieselbe kanonische URL haben, kann Google diese als dieselbe Seite betrachten; wodurch es dann kein Problem mehr ist, wenn alle diese Seiten denselben Titel haben. Füge in der Datei memberlist.php unter
- Code: Alles auswählen
// Generate page
$template->assign_vars(array(
folgende Zeile ein, um in allen Mitgliederlisten eine kanonische URL einzufügen!
- Code: Alles auswählen
'U_CANONICAL' => $phpbb_root_path . 'memberlist.' . $phpEx,
Füge in der Datei viewonline.php unter
- Code: Alles auswählen
// Send data to template
$template->assign_vars(array(
folgende Zeile ein, um in allen "Wer ist online?" – Seiten eine kanonische URL einzufügen!
- Code: Alles auswählen
'U_CANONICAL' => $phpbb_root_path . 'viewonline.' . $phpEx,