الرئيسية ‹ قاعدة المعرفة ‹ تحسين عناوين المواضيع والأرشفة لدى محركات البحث

تحسين عناوين المواضيع والأرشفة لدى محركات البحث

آخر تحديث: 2026-10-21 · الكاتب الأصلي: Saif Alhak
مرجع تاريخي: هذا الدرس من مكتبة phpBBArabia القديمة ويحتاج التحقق من توافق خطواته مع إصدارات phpBB الحديثة.

السلام عليكم أحبتي 😀

اليوم درسنا عن التودد لـ Google وصداقته أي سنتكلم عن موضوع متعلق بالـ SEO

إذن ماذا سنفعل في هذا الدرس لكسب صداقة محركات البحث وخصوصاً الفرعون

Google

1- إزالة عبارات “مشاهدة الموضوع” , “مشاهدة المنتدى” من عناوين الصفحات

2- اضافة رقم الصفحة في عناوين المواضيع عند تعدد الصفحات أي سيصبح العنوان كالتالي ” عنوان الموضوع – صفحة رقم 1 ” والفائدة من هذا الإجراء هو عدم تكرر العنوان لأكثر من رابط حتى مايزعل مننا Google

3- فصل العنواين عن بعضها فمثلاً : رئيسية المنتدى سيصبح عنوانها “اسم المنتدى” بدل “اسم المنتدى – قائمة المنتديات” الموضوع سيصبح عنوانه “عنوان الموضوع” بدل “اسم المنتدى – عنوان الموضوع” وهكذا بالنسبة لجميع الصفحات في المنتدى

4- أختيار وصف للمواضيع Meta Description بشكل تلقائي من محتوى الموضوع ذاته

5- أختيار كلمات دليلية للمواضيع Meta Keywords بشكل تلقائي من محتوى الموضوع ذاته

6- في بقية صفحات المنتدى (غير المواضيع) سيتم وضع وصف وكلمات دليلية افتراضية تحددها انت حتى لاتبقى فارغة

جهز نفسك وأحضر كوباً من الشاي أو القهوة أو المتة , مع محرر Notepad++ , وقليل من الصبر … 😉

على بركة الله نبدأ ….

تعديل ملفات اللغة

افتح ملف language/ar/common.php

ابحث عن:

?>

أضف قبلها:

$lang = array_merge($lang, array(
'TITLE_PAGE_NUMBER'   => 'صفحة رقم %s',
'TITLE_PAGE_S_DESC'   => 'ضع هنا الوصف الإفتراضي للموقع',
'TITLE_PAGE_S_KEYW'   => 'ضع هنا الكلمات الدليلية الإفتراضية لصفحات الموقع مع ملاحظة الفصل بين الكلمات برمز الفاصلة',
));

* طبعاً ضع الوصف الخاص بمنتداك وأيضاً كلماته الدليلية

تعديل الملفات البرمجية

افتح ملف faq.php

ابحث عن:

page_header($l_title, false);

أضف قبله:

$template->assign_vars(array(
  'S_META_DESCRIPTION'        => $user->lang['TITLE_PAGE_S_DESC'],
  'S_META_KEYWORDS'           => $user->lang['TITLE_PAGE_S_KEYW'],
));

افتح ملف index.php

ابحث عن:

// Output page
page_header($user->lang['INDEX']);

أضف قبله:

$template->assign_vars(array(
  'S_META_DESCRIPTION'        => $user->lang['TITLE_PAGE_S_DESC'],
  'S_META_KEYWORDS'           => $user->lang['TITLE_PAGE_S_KEYW'],
));

ابحث عن:

page_header($user->lang['INDEX']);

استبدله بالتالي:

page_header($config['sitename']);

افتح ملف memberlist.php

ابحث عن:

// Output the page
page_header($page_title, false);

أضف قبله:

$template->assign_vars(array(
  'S_META_DESCRIPTION'        => $user->lang['TITLE_PAGE_S_DESC'],
  'S_META_KEYWORDS'           => $user->lang['TITLE_PAGE_S_KEYW'],
));

افتح ملف posting.php

ابحث عن:

// Output page ...
page_header($page_title, false);

أضف قبله:

$template->assign_vars(array(
  'S_META_DESCRIPTION'        => $user->lang['TITLE_PAGE_S_DESC'],
  'S_META_KEYWORDS'           => $user->lang['TITLE_PAGE_S_KEYW'],
));

افتح ملف report.php

ابحث عن:

// Start output of page
page_header($page_title);

أضف قبله:

$template->assign_vars(array(
  'S_META_DESCRIPTION'        => $user->lang['TITLE_PAGE_S_DESC'],
  'S_META_KEYWORDS'           => $user->lang['TITLE_PAGE_S_KEYW'],
));

افتح ملف search.php

ابحث عن:

page_header(($l_search_title) ? $l_search_title : $user->lang['SEARCH']);

أضف قبله:

$template->assign_vars(array(
  'S_META_DESCRIPTION'        => $user->lang['TITLE_PAGE_S_DESC'],
  'S_META_KEYWORDS'           => $user->lang['TITLE_PAGE_S_KEYW'],
));

ابحث عن:

// Output the basic page
page_header($user->lang['SEARCH']);

أضف قبله:

$template->assign_vars(array(
  'S_META_DESCRIPTION'        => $user->lang['TITLE_PAGE_S_DESC'],
  'S_META_KEYWORDS'           => $user->lang['TITLE_PAGE_S_KEYW'],
));

افتح ملف viewforum.php

ابحث عن:

// Dump out the page header and load viewforum template
page_header($user->lang['VIEW_FORUM'] . ' - ' . $forum_data['forum_name'], true, $forum_id);

أضف قبله:

$template->assign_vars(array(
  'S_META_DESCRIPTION'        => $user->lang['TITLE_PAGE_S_DESC'],
  'S_META_KEYWORDS'           => $user->lang['TITLE_PAGE_S_KEYW'],
));

ابحث عن:

page_header($user->lang['VIEW_FORUM'] . ' - ' . $forum_data['forum_name'], true, $forum_id);

استبدله بالتالي:

page_header($forum_data['forum_name'] . ($start ? ' - ' . sprintf($user->lang['TITLE_PAGE_NUMBER'], floor($start / $config['topics_per_page']) + 1) : ''), true, $forum_id);

افتح ملف viewonline.php

ابحث عن:

	// Output the page
	page_header($user->lang['WHO_IS_ONLINE']);

أضف قبله:

$template->assign_vars(array(
  'S_META_DESCRIPTION'        => $user->lang['TITLE_PAGE_S_DESC'],
  'S_META_KEYWORDS'           => $user->lang['TITLE_PAGE_S_KEYW'],
));

ابحث عن:

// We do not need to load the who is online box here. ;)
$config['load_online'] = false;

أضف بعده:

$template->assign_vars(array(
  'S_META_DESCRIPTION'        => $user->lang['TITLE_PAGE_S_DESC'],
  'S_META_KEYWORDS'           => $user->lang['TITLE_PAGE_S_KEYW'],
));

افتح ملف viewtopic.php

ابحث عن:

	// Parse the message and subject
	$message = censor_text($row['post_text']);

أضف بعده:

          if( !$sMetaDescription ) {
                $sMetaDescription= preg_replace
                        ( array
                                ( '#[([^/]=]+)[^]]*]#'
                                , '#[/[^]]*]#'
                                , '#]+>#'
                                , '#[nrt]#s'
                                , '# +#'
                                , '#[a-z]+(:|:)S+#i'
                                )
                        , array
                                ( ' '
                                , ' '
                                , ' '
                                , ' '
                                , ' '
                                , ' '
                                )
                        , $message
                        );
				$sKeyWord= ucwords( strtolower (substr ( $sMetaDescription , 0, 150) ) );
                $aKeyWord= explode( ' ', $sKeyWord );
                $aDistinct= array();
                foreach( $aKeyWord as $v1 ) if( !isset( $aDistinct[$v1] )&& strlen( $v1 )> 3 ) $aDistinct[$v1]= 0;
                $sKeyWord= implode( ', ', array_keys( $aDistinct ) );
                if( ( strlen( $sMetaDescription )> 150 )&& ( $iSpace= strpos( $sMetaDescription, ' ', 150 ) )!== FALSE ) $sMetaDescription= substr( $sMetaDescription, 0, $iSpace );
            }

ابحث عن:

// Output the page
page_header($user->lang['VIEW_TOPIC'] . ' - ' . $topic_data['topic_title'], true, $forum_id);

أضف قبله:

  $template-> assign_vars
        ( array
            ( 'S_META_DESCRIPTION'=> $sMetaDescription
            , 'S_META_KEYWORDS'=> $sKeyWord
            ) 
        );

ابحث عن:

page_header($user->lang['VIEW_TOPIC'] . ' - ' . $topic_data['topic_title'], true, $forum_id);

استبدله بالتالي:

page_header($topic_data['topic_title'] . ($start ? ' - ' . sprintf($user->lang['TITLE_PAGE_NUMBER'], floor($start / $config['posts_per_page']) + 1) : ''), true, $forum_id);

تعديل ملفات الستايل

طبق هذه التعديلات على جميع الستايلات لديك

إفتح ملف overall_header.html

ابحث عن:


استبدله بالتالي:


ابحث عن:

{SITENAME} • {L_MCP} • {L_UCP} • {PAGE_TITLE}

استبدله بالتالي:

{PAGE_TITLE} - {L_MCP} - {L_UCP}

هكذا نكون انتهينا من التعديلات بعون الله تعالى 😯

طبعاً لاتنس حفظ التغييرات على ملف اللغة بترميز utf-8 without BOM

بعد حفظ التغييرات قم بتحديث القوالب لكل ستايل قمت بتعديله

أتمنى لكم الفائدة والتوفيق وأن تحظو بصداقة Google 😉

* تم التعديل لتسهيل عملية التركيب وأيضاً توفير فعالية أكبر لإنتقاء الكلمات الدليلية العربية