Sitemapa i SEO w phpbb3

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.plhttps://babskiesprawy.pl

Komentarze

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *