Garść przydatnych skryptów i informacji w kwestii SEO dla forum opartym na phpbb3. Uwaga! Zakładam, że masz wdrożone SEO urle za pomocą modyfikacji, jeżeli nie to zrób to najpierw.
Poniższe instrukcje są tylko dla forów dyskusyjnych które mają urle typu: domena.pl/nazwa-tematu-t26.html
Plik robots.txt
Aby uniknąć duplicate contetnt a także aby dobrze wykorzystać crowl budgnet polecam na swoje forum dodać taki plik robots.txt:
User-agent: *
Disallow: /ucp.php
Disallow: /mcp.php
Disallow: /memberlist.php
Disallow: /search.php
Disallow: /viewonline.php
Disallow: /faq.php
Disallow: /download/file.php
Disallow: /posting.php
Disallow: /*&view=next
Disallow: /*&view=previous
Disallow: /post*.html
Disallow: /topic*.html
Sitemap: tu link do sitemapy
Wdrożenie takiego pliku robots.txt ma też jeszcze jedną zaletę. Nasze forum staje się mniej widoczne dla spam robotów, ukrywamy część charakterystycznych podstron z wyszukiwarek.
Ja u siebie jeszcze dodałem:
Disallow: /viewtopic.php
ale nie dodaję tego do kodu powyżej, aby w razie czego ktoś nie wstawił tego na swoje forum bez SEO mod.
Sitemapa xml
Stwórz pusty plik sitemap.php i dodaj w nim kod:
<?php
// sitemap.php – SEO Sitemap z tematami i forami dla phpBB z obsługą polskich znaków
define('IN_PHPBB', true);
$phpbb_root_path = './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
$user->session_begin();
$auth->acl($user->data);
$user->setup();
header('Content-Type: application/xml; charset=utf-8');
$forum_base_url = generate_board_url();
// Funkcja slugify – zamiana polskich znaków i formatowanie URL
function slugify($text)
{
$polish = [
'ą' => 'a',
'ć' => 'c',
'ę' => 'e',
'ł' => 'l',
'ń' => 'n',
'ó' => 'o',
'ś' => 's',
'ż' => 'z',
'ź' => 'z',
'Ą' => 'A',
'Ć' => 'C',
'Ę' => 'E',
'Ł' => 'L',
'Ń' => 'N',
'Ó' => 'O',
'Ś' => 'S',
'Ż' => 'Z',
'Ź' => 'Z',
];
$text = strtr($text, $polish);
$text = strtolower($text);
$text = preg_replace('/[^a-z0-9]+/i', '-', $text);
return trim($text, '-');
}
echo '<?xml version="1.0" encoding="UTF-8"?>' . "\n";
echo '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">' . "\n";
// TEMATY
$sql = 'SELECT topic_id, topic_title, topic_last_post_time
FROM ' . TOPICS_TABLE . '
WHERE topic_visibility = 1 AND topic_status <> 2
ORDER BY topic_last_post_time DESC';
$result = $db->sql_query($sql);
while ($row = $db->sql_fetchrow($result)) {
$slug = slugify($row['topic_title']);
$url = $forum_base_url . '/' . $slug . '-t' . $row['topic_id'] . '.html';
$lastmod = date('Y-m-d', $row['topic_last_post_time']);
echo " <url>\n";
echo " <loc>" . htmlspecialchars($url) . "</loc>\n";
echo " <lastmod>$lastmod</lastmod>\n";
echo " <changefreq>weekly</changefreq>\n";
echo " <priority>0.6</priority>\n";
echo " </url>\n";
}
$db->sql_freeresult($result);
// FORA
$sql = 'SELECT forum_id, forum_name, forum_last_post_time
FROM ' . FORUMS_TABLE . '
WHERE forum_type = 1 AND forum_password = \'\'';
$result = $db->sql_query($sql);
while ($row = $db->sql_fetchrow($result)) {
$slug = slugify($row['forum_name']);
$url = $forum_base_url . '/' . $slug . '-f' . $row['forum_id'] . '.html';
$lastmod = ($row['forum_last_post_time'] > 0) ? date('Y-m-d', $row['forum_last_post_time']) : false;
echo " <url>\n";
echo " <loc>" . htmlspecialchars($url) . "</loc>\n";
if ($lastmod) {
echo " <lastmod>$lastmod</lastmod>\n";
}
echo " <changefreq>weekly</changefreq>\n";
echo " <priority>0.5</priority>\n";
echo " </url>\n";
}
$db->sql_freeresult($result);
echo "</urlset>\n";
Dodaj ten plik do głównego katalogu Twojego forum. Umieść donośnik do sitemapy w pliku robots.txt i lub dodaj go do google search console i bing webmaster tools.
Dzięki tym zabiegom twoje fora będą lepiej widoczne w wyszukiwarkach internetowych. Przedstawione tu rozwiązania stosuję w phpbb3 w wersji 3.0.x i 3.3.x na swoich forach: https://prestaforum.pl i https://babskiesprawy.pl
Dodaj komentarz